package key-parsers

  1. Overview
  2. Docs

The format for private keys is:

  • 4 bytes: size of d encoded in big endian
  • d
  • 3 bytes: e (0x01 0x00 0x01)
  • p
  • q

d, p and q are encoded with a leading 0x00. The size of p and q is determined from that of d (|p| = |q| = |d|/2 + 1).

The format is a bit ambiguous if e is not 0x010001, so an error will be raised in that case.

type t = {
  1. e : Z.t;
  2. d : Z.t;
  3. p : Z.t;
  4. q : Z.t;
}
val compare : t -> t -> Ppx_deriving_runtime.int
val equal : t -> t -> Ppx_deriving_runtime.bool
val pp : Ppx_deriving_runtime.Format.formatter -> t -> Ppx_deriving_runtime.unit
val show : t -> Ppx_deriving_runtime.string
val to_yojson : t -> Yojson.Safe.t
val of_yojson : Yojson.Safe.t -> t Ppx_deriving_yojson_runtime.error_or
val bin_t : t Bin_prot.Type_class.t
val bin_read_t : t Bin_prot.Read.reader
val __bin_read_t__ : (int -> t) Bin_prot.Read.reader
val bin_reader_t : t Bin_prot.Type_class.reader
val bin_size_t : t Bin_prot.Size.sizer
val bin_write_t : t Bin_prot.Write.writer
val bin_writer_t : t Bin_prot.Type_class.writer
val decode : Cstruct.t -> (t, string) Result.result
OCaml

Innovation. Community. Security.