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
  7. | Unknown of int
    (*

    The type of currently supported DNS key algorithms.

    *)
val int_to_algorithm : int -> algorithm

int_to_algorithm i decodes i to an algorithm.

  • raises Invalid_argument

    if i does not fit in one octet.

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 ]) Stdlib.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 ]) Stdlib.result

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

val pp_name_key : ([ `raw ] Domain_name.t * t) Fmt.t

pp_name_key (name, key) pretty-prints the dnskey and name pair.