Tezos_baking_alpha.Signature
module Bls = Tezos_crypto.Signature.Bls
module Ed25519 = Tezos_crypto.Signature.Ed25519
module P256 = Tezos_crypto.Signature.P256
module Secp256k1 = Tezos_crypto.Signature.Secp256k1
include module type of struct include Tezos_crypto.Signature.V2 end
V2
supports Ed25519, Secp256k1, P256, and BLS (aug).
V2
supports Ed25519, Secp256k1, P256, and BLS (aug).
val version : Tezos_crypto.Signature.version
type public_key_hash = Tezos_crypto.Signature.V2.public_key_hash
type public_key = Tezos_crypto.Signature.V2.public_key
type secret_key = Tezos_crypto.Signature.V2.secret_key
val bytes_of_watermark : watermark -> Stdlib.Bytes.t
val pp_watermark : Stdlib.Format.formatter -> watermark -> unit
A signature prefix holds data only for signature that are more than 64 bytes long.
module Public_key_hash = Tezos_crypto.Signature.V2.Public_key_hash
module Public_key = Tezos_crypto.Signature.V2.Public_key
module Secret_key = Tezos_crypto.Signature.V2.Secret_key
type t = signature
val pp : Stdlib.Format.formatter -> t -> unit
include Tezos_stdlib.Compare.S with type t := t
val to_b58check : t -> string
val to_short_b58check : t -> string
val of_b58check : string -> t Tezos_error_monad.Error_monad.tzresult
val of_b58check_exn : string -> t
val of_b58check_opt : string -> t option
val b58check_encoding : t Tezos_crypto.Base58.encoding
val encoding : t Data_encoding.t
val rpc_arg : t Tezos_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 pop_verify :
Public_key.t ->
?msg:Bls12_381_signature.MinPk.pk ->
Stdlib.Bytes.t ->
bool
pop_verify pk proof
checks if proof
is a valid proof of possesssion for pk
(or msg
is provided). If pk
is not a BLS key, pop_verify pk _ = false
.
type splitted = Tezos_crypto.Signature.V2.splitted = {
prefix : prefix option;
suffix : Stdlib.Bytes.t;
}
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.
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 -> Tezos_stdlib.Hex.t
val of_hex : Tezos_stdlib.Hex.t -> t Tezos_error_monad.Error_monad.tzresult
val of_hex_opt : Tezos_stdlib.Hex.t -> t option
val of_hex_exn : Tezos_stdlib.Hex.t -> t
val to_string : t -> string
val of_string : string -> t Tezos_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 Tezos_error_monad.Error_monad.tzresult
val of_bytes_opt : Stdlib.Bytes.t -> t option
val of_bytes_exn : Stdlib.Bytes.t -> t
val size : t -> int
The size of the signature in bytes. Can be 64
for Ed25519, Secp256k1 and P256 signatures or 96
for BLS signatures.
val of_secp256k1 : Tezos_crypto__.Secp256k1.t -> t
of_secp256k1 s
returns a wrapped version of the Secp256k1 signature s
in t
.
val of_ed25519 : Tezos_crypto__.Ed25519.t -> t
of_ed25519 s
returns a wrapped version of the Ed25519 signature s
in t
.
val of_p256 : Tezos_crypto__.P256.t -> t
of_p256 s
returns a wrapped version of the P256 signature s
in t
.
The type of signing algorithms.
val generate_key :
?algo:algo ->
?seed:Stdlib.Bytes.t ->
unit ->
public_key_hash * public_key * secret_key
generate_key ~algo ~seed ()
generates a key pair for the signing algorithm algo
from the random seed seed
.
module Of_V0 = Tezos_crypto.Signature.V2.Of_V0
This module provides conversion functions for values (of keys and signatures) of the module Signature_V0
. Note that these functions are total because Signature_v1
supports more signature kinds than Signature_v0
.
module Of_V1 = Tezos_crypto.Signature.V2.Of_V1
This module provides conversion functions for values (of keys and signatures) of the module Signature_V1
. Note that these functions are total because Signature_v1
supports more signature kinds than Signature_v0
.
module Of_V_latest = Tezos_crypto.Signature.V2.Of_V_latest
Converting from signatures of V_latest
to V2
.