tezos-crypto

Tezos: library with all the cryptographic primitives used by Tezos
IN THIS PACKAGE
type public_key_hash =
| Ed25519 of Ed25519.Public_key_hash.t
| Secp256k1 of Secp256k1.Public_key_hash.t
| P256 of P256.Public_key_hash.t
type public_key =
| Ed25519 of Ed25519.Public_key.t
| Secp256k1 of Secp256k1.Public_key.t
| P256 of P256.Public_key.t
type secret_key =
| Ed25519 of Ed25519.Secret_key.t
| Secp256k1 of Secp256k1.Secret_key.t
| P256 of P256.Secret_key.t
type watermark =
| Block_header of Chain_id.t
| Endorsement of Chain_id.t
| Generic_operation
| Custom of Bytes.t
val bytes_of_watermark : watermark -> Bytes.t
val pp_watermark : Format.formatter -> watermark -> unit
include S.SIGNATURE with type Public_key_hash.t = public_key_hash and type Public_key.t = public_key and type Secret_key.t = secret_key and type watermark := watermark
module Public_key_hash : sig ... end
module Public_key : sig ... end
module Secret_key : sig ... end
type t
val pp : Format.formatter -> t -> unit
include Tezos_stdlib.Compare.S with type t := t
val (=) : t -> t -> bool
val (<>) : t -> t -> bool
val (<) : t -> t -> bool
val (<=) : t -> t -> bool
val (>=) : t -> t -> bool
val (>) : t -> t -> bool
val compare : t -> t -> int
val equal : t -> t -> bool
val max : t -> t -> t
val min : t -> t -> t
include S.B58_DATA 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
type Base58.data +=
| Data of t
val b58check_encoding : t Base58.encoding
include S.ENCODER with type t := t
val encoding : t Data_encoding.t
val rpc_arg : t Tezos_rpc.RPC_arg.t
val zero : t
val sign : ?watermark:watermark -> Secret_key.t -> Bytes.t -> t
val check : ?watermark:watermark -> Public_key.t -> t -> Bytes.t -> bool
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

val append : ?watermark:watermark -> secret_key -> Bytes.t -> Bytes.t

append sk buf is the concatenation of buf and the serialization of the signature of buf signed by sk.

val concat : Bytes.t -> t -> Bytes.t

concat buf t is the concatenation of buf and the serialization of t.

include S.RAW_DATA with type t := t
val size : int
val to_hex : t -> Hex.t
val of_hex_opt : Hex.t -> t option
val of_hex_exn : 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 -> Bytes.t
val of_bytes_opt : Bytes.t -> t option
val of_bytes_exn : Bytes.t -> t
val of_secp256k1 : Secp256k1.t -> t
val of_ed25519 : Ed25519.t -> t
val of_p256 : P256.t -> t
type algo =
| Ed25519
| Secp256k1
| P256
val generate_key : ?algo:algo -> ?seed:Bytes.t -> unit -> public_key_hash * public_key * secret_key