Module: Melos::KeySchedule
Instance Method Summary collapse
- #epoch_secret(suite, joiner_secret, psk_secret, group_context) ⇒ Object
- #joiner_secret(suite, init_secret, commit_secret, group_context) ⇒ Object
- #welcome_key_and_nonce(suite, joiner_secret, psk_secret) ⇒ Object
- #welcome_secret(suite, joiner_secret, psk_secret) ⇒ Object
Instance Method Details
#epoch_secret(suite, joiner_secret, psk_secret, group_context) ⇒ Object
32 33 34 35 36 37 38 39 40 |
# File 'lib/melos/key_schedule.rb', line 32 def epoch_secret(suite, joiner_secret, psk_secret, group_context) Melos::Crypto.( suite, Melos::Crypto.kdf_extract(suite, joiner_secret, psk_secret), "epoch", group_context.raw, suite.kdf.n_h ) end |
#joiner_secret(suite, init_secret, commit_secret, group_context) ⇒ Object
6 7 8 9 10 11 12 13 14 |
# File 'lib/melos/key_schedule.rb', line 6 def joiner_secret(suite, init_secret, commit_secret, group_context) Melos::Crypto.( suite, Melos::Crypto.kdf_extract(suite, init_secret, commit_secret), "joiner", group_context.raw, suite.kdf.n_h ) end |
#welcome_key_and_nonce(suite, joiner_secret, psk_secret) ⇒ Object
24 25 26 27 28 29 30 |
# File 'lib/melos/key_schedule.rb', line 24 def welcome_key_and_nonce(suite, joiner_secret, psk_secret) ws = welcome_secret(suite, joiner_secret, psk_secret) [ Melos::Crypto.(suite, ws, "key", "", suite.hpke.n_k), Melos::Crypto.(suite, ws, "nonce", "", suite.hpke.n_n) ] end |
#welcome_secret(suite, joiner_secret, psk_secret) ⇒ Object
16 17 18 19 20 21 22 |
# File 'lib/melos/key_schedule.rb', line 16 def welcome_secret(suite, joiner_secret, psk_secret) Melos::Crypto.derive_secret( suite, Melos::Crypto.kdf_extract(suite, joiner_secret, psk_secret), # sometimes written as `member_secret` "welcome" ) end |