module Argon2::KDF
Constants
- VERSION
Attributes
ffi_lib[RW]
Public Class Methods
argon2d(pass, salt:, t:, m:, p:, length:)
click to toggle source
# File lib/argon2/kdf.rb, line 41 def argon2d(pass, salt:, t:, m:, p:, length:) kdf(:argon2d, pass, salt, t, m, p, length) end
argon2i(pass, salt:, t:, m:, p:, length:)
click to toggle source
# File lib/argon2/kdf.rb, line 37 def argon2i(pass, salt:, t:, m:, p:, length:) kdf(:argon2i, pass, salt, t, m, p, length) end
argon2id(pass, salt:, t:, m:, p:, length:)
click to toggle source
# File lib/argon2/kdf.rb, line 45 def argon2id(pass, salt:, t:, m:, p:, length:) kdf(:argon2id, pass, salt, t, m, p, length) end
Private Class Methods
check_status(status)
click to toggle source
# File lib/argon2/kdf.rb, line 59 def check_status(status) if status != 0 raise Error, FFI.argon2_error_message(status).to_s end end
kdf(variant, pass, salt, t, m, p, length)
click to toggle source
# File lib/argon2/kdf.rb, line 51 def kdf(variant, pass, salt, t, m, p, length) pwd = Fiddle::Pointer[pass.to_str] salt = Fiddle::Pointer[salt.to_str] hash = Fiddle::Pointer.malloc(length) check_status FFI.send("#{variant}_hash_raw", t, 1 << m, p, pwd, pwd.size, salt, salt.size, hash, hash.size) hash[0, hash.size] end