package uecc

  1. Overview
  2. Docs
Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source

Module UeccSource

Sourcetype secp160r1
Sourcetype secp192r1
Sourcetype secp224r1
Sourcetype secp256r1
Sourcetype secp256k1

Kinds of ECC curves.

Sourcetype _ t

Type of an ECC curve, parametrized by its kind.

Sourceval secp160r1 : secp160r1 t
Sourceval secp192r1 : secp192r1 t
Sourceval secp224r1 : secp224r1 t
Sourceval secp256r1 : secp256r1 t
Sourceval secp256k1 : secp256k1 t

Supported curves.

Sourceval sk_size : _ t -> int

sk_size curve is the size in bytes of secret keys from curve. Typically the same as the curve size, (i.e. 32 bytes for secp256r1) except for secp160r1 which is 21 bytes.

Sourceval pk_size : _ t -> int

pk_size curve is the size in bytes of public keys from curve. Equals to 2*curve_size.

Sourceval compressed_size : _ t -> int

compressed_size curve is the size in bytes of compressed public keys from curve. Equals to pk_size curve/2+1.

Sourcetype secret
Sourcetype public
Sourcetype (_, _) key

Type of a key, parametrized by its curve and kind.

Sourceval equal : ('a, 'b) key -> ('a, 'b) key -> bool

equal k1 k2 is true if k1 is represented by the same bytes as k2, and false otherwise.

Sourceval neuterize : ('a, _) key -> ('a, public) key

neuterize k is k if k is public, or is the associated public key of k if k is secret.

Sourceval sk_of_bytes : 'a t -> Bigstring.t -> (('a, secret) key * ('a, public) key) option

sk_of_bytes curve buf is Some (sk, pk) if buf contains a valid serialization of a curve secret key, or None otherwise.

Sourceval pk_of_bytes : 'a t -> Bigstring.t -> ('a, public) key option

pk_of_bytes curve buf is Some pk if buf contains a valid serialization of a curve public key, or None otherwise.

Sourceval to_bytes : ?compress:bool -> (_, _) key -> Bigstring.t

to_bytes ?compress k is a serialization of k. If compress is true (the default) and k is a public key, the public key will be in compressed format.

Sourceval write_key : ?compress:bool -> Bigstring.t -> (_, _) key -> int

write_key buf k writes k at buf and returns the number of bytes actually written.

Sourceval keypair : 'a t -> (('a, secret) key * ('a, public) key) option

keypair curve is Some (sk, pk) where sk and pk is freshly generated keypair for curve if everything went well, or None otherwise.

Sourceval dh : ('a, secret) key -> ('a, public) key -> Bigstring.t option

dh sk pk is Some buf where buf contains a shared secret value computed from your sk and someone else's pk if everything went well, or None otherwise.

Sourceval write_dh : ('a, secret) key -> ('a, public) key -> Bigstring.t -> int

write_dh sk pk buf writes a shared secret value computed from your sk and someone else's pk and returns the number of bytes actually written (0 in the case of an error).

Sourceval sign : (_, secret) key -> Bigstring.t -> Bigstring.t option

sign sk msg is Some signature where signature is a valid signature of msg with secret key sk, or None if an error occurred.

Sourceval write_sign : (_, secret) key -> Bigstring.t -> msg:Bigstring.t -> int

write_sign sk ~msg buf writes a signature of msg with sk to buf, and returns the number of bytes written (0 in the case of an error).

Sourceval verify : (_, public) key -> msg:Bigstring.t -> signature:Bigstring.t -> bool

verify pk ~msg ~signature is true if signature is a valid signature of msg corresponding to pk.

OCaml

Innovation. Community. Security.