# package octez-libs

BLS signatures instantiation minimizing the size of the public keys (48 bytes) but use longer signatures (96 bytes).

Build a value of type `pk`

without performing any check on the input (hence the unsafe prefix because it might not give a correct inhabitant of the type `pk`

). 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 G1.

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 G1.

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 G1.

Returns a bytes representation of a value of type `pk`

. The output is the compressed form of the point `Bls12_381.G1.t`

the `pk`

represents.

Build a value of type `signature`

without performing any check on the input (hence the unsafe prefix because it might not give a correct inhabitant of the type `signature`

). 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 G2.

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 G2.

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 G2.

Returns a bytes representation of a value of type `signature`

. The output is the compressed form of a point `Bls12_381.G2.t`

the signature represents.

`aggregate_signature_opt signatures`

aggregates the signatures `signatures`

, following section 2.8. Return `None`

if `INVALID`

is expected in the specification

`module Basic : sig ... end`

Basic scheme described in section 3.1

`module Aug : sig ... end`

Augmentation scheme described in section 3.2

`module Pop : sig ... end`

Proof of possession scheme described in section 3.3