View Source dnssec (dns_erlang v3.1.2)

The dnssec module exports functions used for generating NSEC responses, signing and verifying RRSIGs, and adding keytags to DNSKEY records.

For example, the sign_rr/6 function can be given a collection of resource records, the signer name, keytag, signing algorithm, private key, and a collection of options and it will return a list of RRSIG records. Currently only DSA and RSA algorithms are supported for signing RRSETs.

Summary

Types

gen_nsec_opt()

-type gen_nsec_opt() :: {base_types, [dns:type()]}.

key()

-type key() :: [binary()].

keytag()

-type keytag() :: integer().

nsec3_hashalg()

-type nsec3_hashalg() :: 1.

nsec3_hashalg_fun()

-type nsec3_hashalg_fun() :: fun((iodata()) -> binary()).

nsec3_iterations()

-type nsec3_iterations() :: non_neg_integer().

nsec3_salt()

-type nsec3_salt() :: binary().

sigalg()

-type sigalg() :: 3 | 6 | 5 | 7 | 8 | 10.

sign_rr_opt()

-type sign_rr_opt() :: {inception | expiration, dns:unix_time()}.

verify_rrsig_opt()

-type verify_rrsig_opt() :: {now, dns:unix_time()}.

Functions

add_keytag_to_cdnskey/1

-spec add_keytag_to_cdnskey(dns:rr()) -> dns:rr().

add_keytag_to_dnskey/1

-spec add_keytag_to_dnskey(dns:rr()) -> dns:rr().

canonical_rrdata_form/1

-spec canonical_rrdata_form(dns:rrdata()) -> dns:rrdata().

gen_nsec3(RRs)

-spec gen_nsec3([dns:rr()]) -> [dns:rr()].

gen_nsec3(RR, ZoneName, Alg, Salt, Iterations, TTL)

-spec gen_nsec3([dns:rr()], dns:dname(), nsec3_hashalg(), nsec3_salt(), nsec3_iterations(), dns:ttl()) ->
                   [dns:rr()].

gen_nsec3(RRs, ZoneName, Alg, Salt, Iterations, TTL, Class)

-spec gen_nsec3([dns:rr()],
                dns:dname(),
                nsec3_hashalg(),
                nsec3_salt(),
                nsec3_iterations(),
                dns:ttl(),
                dns:class()) ->
                   [dns:rr()].

gen_nsec(RR)

-spec gen_nsec([dns:rr()]) -> [dns:rr()].

gen_nsec(ZoneName, RR, TTL)

-spec gen_nsec(dns:dname(), [dns:rr()], dns:ttl()) -> [dns:rr()].

gen_nsec(ZoneNameM, RR, TTL, Opts)

-spec gen_nsec(dns:dname(), [dns:rr()], dns:ttl(), [gen_nsec_opt()]) -> [dns:rr()].

ih/4

sign_rr(RR, SignerName, KeyTag, Alg, Key)

-spec sign_rr([dns:rr()], dns:dname(), keytag(), sigalg(), key()) -> [dns:rr()].

sign_rr(RR, SignerName, KeyTag, Alg, Key, Opts)

-spec sign_rr([dns:rr()], dns:dname(), keytag(), sigalg(), key(), [sign_rr_opt()]) -> [dns:rr()].

sign_rrset(RRSet, SignerName, KeyTag, Alg, Key)

-spec sign_rrset([dns:rr(), ...], dns:dname(), keytag(), sigalg(), key()) -> dns:rr().

sign_rrset/6

-spec sign_rrset([dns:rr(), ...], dns:dname(), keytag(), sigalg(), key(), [sign_rr_opt()]) -> dns:rr().

verify_rrsig/4

-spec verify_rrsig(dns:rr(), [dns:rr()], [dns:rr()], [verify_rrsig_opt()]) -> boolean().