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 equal : t -> t -> Ppx_deriving_runtime.bool
val compare : t -> t -> Ppx_deriving_runtime.int
val pp : Ppx_deriving_runtime.Format.formatter -> t -> Ppx_deriving_runtime.unit
val decode : Cstruct.t -> (t, string) Result.result