package bls12-381
BLS signatures instantiation minimizing the size of the signatures (48 bytes) but use longer public keys (96 bytes).
val unsafe_pk_of_bytes : Stdlib.Bytes.t -> pk
Build a value of type pk
without performing any check on the input. It is safe to use this function when verifying a signature as the signature function verifies if the point is in the prime subgroup. Using unsafe_pk_of_bytes
removes a verification performed twice when used pk_of_bytes_exn
or pk_of_bytes_opt
.
The expected bytes format are the compressed form of a point on G2.
val pk_of_bytes_exn : Stdlib.Bytes.t -> pk
Build a value of type pk
safely, i.e. the function checks the bytes given in parameters represents a point on the curve and in the prime subgroup. Raise Invalid_argument
if the bytes are not in the correct format or does not represent a point in the prime subgroup.
The expected bytes format are the compressed form of a point on G2.
val pk_of_bytes_opt : Stdlib.Bytes.t -> pk option
Build a value of type pk
safely, i.e. the function checks the bytes given in parameters represents a point on the curve and in the prime subgroup. Return None
if the bytes are not in the correct format or does not represent a point in the prime subgroup.
The expected bytes format are the compressed form of a point on G2.
val pk_to_bytes : pk -> Stdlib.Bytes.t
Returns a bytes representation of a value of type pk
. The output is the compressed form a the point G2.t
the pk
represents.
val unsafe_signature_of_bytes : Stdlib.Bytes.t -> signature
Build a value of type signature
without performing any check on the input. It is safe to use this function when verifying a signature as the signature function verifies if the point is in the prime subgroup. Using unsafe_signature_of_bytes
removes a verification performed twice when used signature_of_bytes_exn
or signature_of_bytes_opt
.
The expected bytes format are the compressed form of a point on G1.
val signature_of_bytes_exn : Stdlib.Bytes.t -> signature
Build a value of type signature
safely, i.e. the function checks the bytes given in parameters represents a point on the curve and in the prime subgroup. Raise Invalid_argument
if the bytes are not in the correct format or does not represent a point in the prime subgroup.
The expected bytes format are the compressed form of a point on G1.
val signature_of_bytes_opt : Stdlib.Bytes.t -> signature option
Build a value of type signature
safely, i.e. the function checks the bytes given in parameters represents a point on the curve and in the prime subgroup. Return None
if the bytes are not in the correct format or does not represent a point in the prime subgroup.
The expected bytes format are the compressed form of a point on G1.
val signature_to_bytes : signature -> Stdlib.Bytes.t
Returns a bytes representation of a value of type signature
. The output is the compressed form a the point G1.t
the signature
represents.
aggregate_signature_opt signatures
aggregates the signatures signatures
, following https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-bls-signature-04#section-2.8. Return None
if INVALID
is expected in the specification
module Basic : sig ... end
Follow https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-bls-signature-04#section-3.1
module Aug : sig ... end
Follow https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-bls-signature-04#section-3.2
module Pop : sig ... end
Follow https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-bls-signature-04#section-3.3