View Source dnssec (dns_erlang v3.0.2)

Summary

Types

gen_nsec3_opt/0

-type gen_nsec3_opt() :: gen_nsec_opt().

gen_nsec_opt/0

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

key/0

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

keytag/0

-type keytag() :: integer().

nsec3_hashalg/0

-type nsec3_hashalg() :: 1.

nsec3_iterations/0

-type nsec3_iterations() :: non_neg_integer().

nsec3_salt/0

-type nsec3_salt() :: binary().

sigalg/0

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

sign_rr_opt/0

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

tree_key/0

-type tree_key() :: {dns:dname(), dns:class(), dns:type()}.

verify_rrsig_opt/0

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

Functions

add_keytag_to_cdnskey(Dns_rr)

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

add_keytag_to_dnskey(Dns_rr)

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

Generates and appends a DNS Key records key tag.

canonical_rrdata_form(Dns_rrdata_afsdb)

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

Converts a resource record data record to DNSSEC canonical form.

gen_nsec3(RRs)

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

Generate NSEC3 records from a list of #dns_rr{}.

The list must contain a SOA #dns_rr{} to source the zone name and TTL from as well as as an NSEC3Param #dns_rr{} to source the hash algorithm, iterations and salt from.

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()].

Equivalent to gen_nsec3(RR, ZoneName, Alg, Salt, Iterations, TTL, in, []).

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()].

Equivalent to gen_nsec3(RRs, ZoneName, Alg, Salt, Iterations, TTL, Class, []).

gen_nsec(RR)

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

Generate NSEC records from a list of #dns_rr{}.

The list must contain a SOA #dns_rr{} which is used to determine zone name and TTL.

gen_nsec(ZoneName, RR, TTL)

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

Equivalent to gen_nsec(ZoneName, RR, TTL, []).

gen_nsec(ZoneNameM, RR, TTL, Opts)

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

Generate NSEC records.

ih(H, Salt, X, I)

-spec ih(nsec3_hashalg() | fun((binary()) -> binary()), nsec3_salt(), binary(), non_neg_integer()) ->
            binary().

NSEC3 iterative hash function

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

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

Equivalent to sign_rr(RR, SignerName, KeyTag, Alg, Key, []).

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

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

Signs a list of #dns_rr{}.

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

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

Equivalent to sign_rrset(RRSet, SignerName, KeyTag, Alg, Key, []).

sign_rrset(RRs, SignersName, KeyTag, Alg, Key, Opts)

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

Signs a list of #dns_rr{} of the same class and type.

verify_rrsig(Dns_rr, RRs, RRDNSKey, Opts)

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

Provides primitive verification of an RR set.