Function bls_on_arkworks::keygen

source ·
pub fn keygen(ikm: &Octets) -> SecretKey
Expand description

(spec link) Generates a secret key SK deterministically from a secret octet string IKM. IKM MUST be at least 32 bytes long, but it MAY be longer.

IKM should come from a good source of randomness, such as rand::rngs::OsRng. If you want to load known secret key bytes instead of generating a new key, use os2ip.

Implementation:

   1. while True:
   2.     PRK = HKDF-Extract(salt, IKM || I2OSP(0, 1))
   3.     OKM = HKDF-Expand(PRK, key_info || I2OSP(L, 2), L)
   4.     SK = OS2IP(OKM) mod r
   5.     if SK != 0:
   6.         return SK
   7.     salt = H(salt)