module Crypto::GenericHash
Constants
- BYTES
- BYTES_MAX
- BYTES_MIN
- KEYBYTES
- KEYBYTES_MAX
- KEYBYTES_MIN
- PRIMITIVE
Public Instance Methods
final(state, blake2b)
click to toggle source
# File lib/crypto/generic_hash.rb, line 87 def final(state, blake2b) if crypto_generichash_final(state, blake2b, blake2b.bytesize) == -1 raise Sodium::CryptoError end blake2b end
generichash(message, hash_size = BYTES, key = nil)
click to toggle source
# File lib/crypto/generic_hash.rb, line 47 def generichash(message, hash_size = BYTES, key = nil) if key key_len = get_size(key) else key_len = 0 end blake2b = zeros(hash_size) key.readonly if key.is_a?(Sodium::SecretBuffer) if crypto_generichash(blake2b, hash_size, message, get_size(message), key, key_len) == -1 raise Sodium::CryptoError end blake2b ensure key.noaccess if key.is_a?(Sodium::SecretBuffer) end
init(key = nil, hash_size = BYTES)
click to toggle source
# File lib/crypto/generic_hash.rb, line 65 def init(key = nil, hash_size = BYTES) if key key_len = get_size(key) else key_len = 0 end state = State.new key.readonly if key.is_a?(Sodium::SecretBuffer) if crypto_generichash_init(state, key, key_len, hash_size) == -1 raise Sodium::CryptoError end [state, zeros(hash_size)] ensure key.noaccess if key.is_a?(Sodium::SecretBuffer) end
update(state, message)
click to toggle source
# File lib/crypto/generic_hash.rb, line 83 def update(state, message) crypto_generichash_update(state, message, get_size(message)) end