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)