Method: RbNaCl::PasswordHash::Argon2#initialize

Defined in:
lib/rbnacl/password_hash/argon2.rb

#initialize(opslimit, memlimit, digest_size = nil) ⇒ RbNaCl::PasswordHash::Argon2

Create a new Argon2 password hash object

opslimit and memlimit may be an integer, or one of the following symbols:

[:interactive] Suitable for interactive online operations. This requires 32 Mb of dedicated RAM. [:moderate] A compromise between interactive and sensitive. This requires 128 Mb of dedicated RAM, and takes about 0.7 seconds on a 2.8 Ghz Core i7 CPU. [:sensitive] For highly sensitive and non-interactive operations. This requires 128 Mb of dedicated RAM, and takes about 0.7 seconds on a 2.8 Ghz Core i7 CPU

Parameters:

  • opslimit (Integer)

    the CPU cost (1..10)

  • memlimit (Integer)

    the memory cost (e.g. 2**24)

  • digest_size (Integer) (defaults to: nil)

    the byte length of the resulting digest



95
96
97
98
99
# File 'lib/rbnacl/password_hash/argon2.rb', line 95

def initialize(opslimit, memlimit, digest_size = nil)
  @opslimit    = self.class.opslimit_value(opslimit)
  @memlimit    = self.class.memlimit_value(memlimit)
  @digest_size = self.class.digest_size_value(digest_size) if digest_size
end