package dns

  1. Overview
  2. Docs

DNS keys

A DNS key record (DNSKEY) specifies flags, algorithm, and key data.

type algorithm =
  1. | MD5
  2. | SHA1
  3. | SHA224
  4. | SHA256
  5. | SHA384
  6. | SHA512
    (*

    The type of currently supported DNS key algorithms.

    *)
val int_to_algorithm : ?off:int -> int -> (algorithm, [> `Not_implemented of int * string ]) result

int_to_algorithm ~off i tries to decode i to an algorithm.

val algorithm_to_int : algorithm -> int

algorithm_to_int a encodes a to an integer.

val pp_algorithm : algorithm Fmt.t

pp_algorithm ppf a pretty-prints the algorithm.

type t = {
  1. flags : int;
  2. algorithm : algorithm;
  3. key : Cstruct.t;
}

The type of a DNSKEY record.

val pp : t Fmt.t

pp ppf t pretty-prints the DNSKEY.

val compare : t -> t -> int

comapre a b compares the DNSKEY a with b.

val of_string : string -> (t, [> `Msg of string ]) result

of_string str attempts to parse str to a dnskey. The colon character (:) is used as separator, supported formats are: algo:keydata and flags:algo:keydata, where keydata is a base64 string.

val name_key_of_string : string -> ([ `raw ] Domain_name.t * t, [> `Msg of string ]) result

name_key_of_string str attempts to parse str to a domain name and a dnskey. The colon character (:) is used as separator.