Module: Noise::Functions::Hash
- Defined in:
- lib/noise/functions/hash.rb,
lib/noise/functions/hash/blake3.rb,
lib/noise/functions/hash/sha256.rb,
lib/noise/functions/hash/sha512.rb,
lib/noise/functions/hash/blake2b.rb,
lib/noise/functions/hash/blake2s.rb
Defined Under Namespace
Classes: Blake2b, Blake2bHMAC, Blake2s, Blake2sDigester, Blake2sHMAC, Blake3, Blake3HMAC, Sha256, Sha512
Class Method Summary
collapse
Class Method Details
.create_hkdf_fn(digest) ⇒ Object
27
28
29
30
31
|
# File 'lib/noise/functions/hash.rb', line 27
def self.create_hkdf_fn(digest)
lambda do |chaining_key, input_key_material, num_output|
hkdf(chaining_key, input_key_material, num_output, digest)
end
end
|
.hkdf(chaining_key, input_key_material, num_outputs, digest) ⇒ Object
33
34
35
36
37
38
39
40
41
|
# File 'lib/noise/functions/hash.rb', line 33
def self.hkdf(chaining_key, input_key_material, num_outputs, digest)
temp_key = hmac_hash(chaining_key, input_key_material, digest)
output1 = hmac_hash(temp_key, "\x01", digest)
output2 = hmac_hash(temp_key, "#{output1}\u0002", digest)
return [output1, output2] if num_outputs == 2
output3 = hmac_hash(temp_key, "#{output2}\u0003", digest)
[output1, output2, output3]
end
|
.hmac_hash(key, data, digest) ⇒ Object