package bls12-381-signature

  1. Overview
  2. Docs

Follow the BLS signature draft of CFRG, version 4

type sk

Type of the secret keys.

val sk_size_in_bytes : int

The size of a serialized value sk

val sk_of_bytes_exn : 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_of_bytes_opt : Bytes.t -> sk option

sk_of_bytes_opt bs is the same than sk_of_bytes_exn but returns an option instead of an exception.

val sk_to_bytes : sk -> Bytes.t

sk_to_bytes sk serialises the secret key into the little endian representation.

val generate_sk : ?key_info:Bytes.t -> 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).

OCaml

Innovation. Community. Security.