Signature.V0
V0
supports Ed25519, Secp256k1, and P256.
V0
supports Ed25519, Secp256k1, and P256.
val bytes_of_watermark : watermark -> Stdlib.Bytes.t
val pp_watermark : Stdlib.Format.formatter -> watermark -> unit
module Public_key_hash : sig ... end
module Public_key : sig ... end
module Secret_key : sig ... end
type t = signature
val pp : Stdlib.Format.formatter -> t -> unit
include Mavryk_stdlib.Compare.S with type t := t
val to_b58check : t -> string
val to_short_b58check : t -> string
val of_b58check : string -> t Mavryk_error_monad.Error_monad.tzresult
val of_b58check_exn : string -> t
val of_b58check_opt : string -> t option
val b58check_encoding : t Base58.encoding
val encoding : t Data_encoding.t
val rpc_arg : t Mavryk_rpc.Arg.t
val zero : t
val sign : ?watermark:watermark -> Secret_key.t -> Stdlib.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 -> Stdlib.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 deterministic_nonce : Secret_key.t -> Stdlib.Bytes.t -> Stdlib.Bytes.t
deterministic_nonce sk msg
returns a nonce that is determined by sk
and msg
val deterministic_nonce_hash : Secret_key.t -> Stdlib.Bytes.t -> Stdlib.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
val append :
?watermark:watermark ->
secret_key ->
Stdlib.Bytes.t ->
Stdlib.Bytes.t
append sk buf
is the concatenation of buf
and the serialization of the signature of buf
signed by sk
.
val concat : Stdlib.Bytes.t -> t -> Stdlib.Bytes.t
concat buf t
is the concatenation of buf
and the serialization of t
.
val to_hex : t -> Mavryk_stdlib.Hex.t
val of_hex : Mavryk_stdlib.Hex.t -> t Mavryk_error_monad.Error_monad.tzresult
val of_hex_opt : Mavryk_stdlib.Hex.t -> t option
val of_hex_exn : Mavryk_stdlib.Hex.t -> t
val to_string : t -> string
val of_string : string -> t Mavryk_error_monad.Error_monad.tzresult
val of_string_opt : string -> t option
val of_string_exn : string -> t
val to_bytes : t -> Stdlib.Bytes.t
val of_bytes : Stdlib.Bytes.t -> t Mavryk_error_monad.Error_monad.tzresult
val of_bytes_opt : Stdlib.Bytes.t -> t option
val of_bytes_exn : Stdlib.Bytes.t -> t
val of_secp256k1 : Mavryk_crypto__.Secp256k1.t -> t
val of_ed25519 : Mavryk_crypto__.Ed25519.t -> t
val of_p256 : Mavryk_crypto__.P256.t -> t
val algos : algo list
The list of signing algorithm supported, i.e. all constructors of type algo{
.
val generate_key :
?algo:algo ->
?seed:Stdlib.Bytes.t ->
unit ->
public_key_hash * public_key * secret_key
module Of_V_latest :
Signature.CONV_OPT
with module V_from := Signature.V_latest
and module V_to := Mavryk_crypto__.Signature_v0