package bls12-381
Follow the BLS signature draft of CFRG, version 4
val sk_of_bytes_exn : Stdlib.Bytes.t -> sk
sk_of_bytes_exn bs
attempts to deserialize bs
into a secret key. bs
must be the little endian representation of the secret key. In this case, secret keys are scalars of BLS12-381 and are encoded on 32 bytes. The bytes sequence might be less of 32 bytes and in this case, the bytes sequence is padded on the right by 0's.
val sk_to_bytes : sk -> Stdlib.Bytes.t
sk_to_bytes sk
serialises the secret key into the little endian representation.
val generate_sk : ?key_info:Stdlib.Bytes.t -> Stdlib.Bytes.t -> sk
generate_sk ?key_info ikm
generates a new (random) secret key. ikm
must be at least 32 bytes (otherwise, raise Invalid_argument
). The default value of key_info
is the empty bytes sequence.
module MinPk : sig ... end
BLS signatures instantiation minimizing the size of the public keys (48 bytes) but use longer signatures (96 bytes).
module MinSig : sig ... end
BLS signatures instantiation minimizing the size of the signatures (48 bytes) but use longer public keys (96 bytes).