package octez-libs
include SIGNATURE
include COMMON_SIGNATURE
module Public_key_hash : sig ... end
module Public_key : sig ... end
module Secret_key : sig ... end
val pp : Format.formatter -> t -> unit
include Tezos_stdlib.Compare.S with type t := t
val zero : t
val sign : ?watermark:watermark -> Secret_key.t -> Bytes.t -> t
sign ?watermark sk message
produce the signature of message
(with possibly watermark
) using sk
.
val check : ?watermark:watermark -> Public_key.t -> t -> Bytes.t -> bool
check pk ?watermark signature message
check that signature
is the signature produced by signing message
(with possibly watermark
) with the secret key of pk
.
val generate_key :
?seed:Bytes.t ->
unit ->
Public_key_hash.t * Public_key.t * Secret_key.t
val deterministic_nonce : Secret_key.t -> Bytes.t -> Bytes.t
deterministic_nonce sk msg
returns a nonce that is determined by sk
and msg
val deterministic_nonce_hash : Secret_key.t -> Bytes.t -> Bytes.t
deterministic_nonce_hash sk msg
returns the BLAKE2b hash of a nonce that is determined by sk
and msg
.
In other words, Blake2b.digest (deterministic_nonce sk msg) =
deterministic_nonce_hash sk msg
A splitted signature is a binary representation of a signature with a fixed 64 bytes suffix and a possible prefix.
split_signature s
splits the signature s
into {prefix; suffix}
where suffix is the fixed 64 bytes suffix of s
and prefix are the remaining preceding bytes if any.
of_splitted s
reconstructs a signature from a splitted one, if possible.
val prefix_encoding : prefix Data_encoding.t
Encoding for signature prefixes.