Bounded offline DNSSEC authentication and denial proofs for supplied RRsets
moon add Han-Wentao/moon-dnssec@0.1.0import {
"Han-Wentao/moon-dnssec" @dns,
}moon test --target js --deny-warn
moon run --target js examples/offlineresolver: signed child answer; cache TTL=40
authoritative: canonical signing bytes=66
audit: NSEC NXDOMAIN=Secure
audit: NSEC3 NXDOMAIN=Secure| Area | Enabled | Not enabled |
|---|---|---|
| Signatures | RSA/SHA256 (8), RSA/SHA512 (10), P256/SHA256 (13), P384/SHA384 (14), Ed25519 (15) | RSA/SHA1, Ed448, algorithm negotiation/network policy |
| RSA shape | 1024..4096-bit full-length odd modulus; bounded exponent; PKCS1 v1.5 | larger RSA keys, PSS DNSSEC variants |
| DS association | digest type 2 SHA256, reused from MoonZoneGuard | SHA1/SHA384 DS acceptance; non-ASCII DS owners |
| Name-bearing RDATA | NS, CNAME, PTR, DNAME, MX, SRV, SOA, NSEC | known unimplemented name-bearing types fail closed |
| Other RDATA | A/AAAA length checks, TXT character-string checks, opaque RFC3597 data | full semantic parsing of every IANA RR type |
| Denial | exact-name NODATA; explicit closest-encloser NXDOMAIN; exact insecure delegation | wildcard NODATA, inferred NSEC empty nonterminals, opt-out delegation discovery |
| NSEC3 | SHA1, salt/iterations limits, base32hex, one parameter set | opt-out general NXDOMAIN is Indeterminate |
| Trust | explicit anchor and supplied signed delegations | RFC5011 rollover, root bootstrap, online chain discovery |
fn AuthenticatedSet::cache_records(self : AuthenticatedSet, now : UInt) -> Result[Array[Record], DnsError]fn AuthenticatedSet::denial_record(self : AuthenticatedSet, zone : Name, rrtype : Int, now : UInt) -> Result[Record, DnsError]fn anchor_keys(zone : Name, anchor : Dnskey, records : Array[Record], signatures : Array[Rrsig], time : TimePolicy, limits : Limits) -> Result[TrustedKeys, DnsError]fn authenticate_rrset(records : Array[Record], signatures : Array[Rrsig], trusted : TrustedKeys, time : TimePolicy, limits : Limits) -> Result[AuthenticatedSet, DnsError]fn authenticate_with_key(records : Array[Record], signatures : Array[Rrsig], zone : Name, key : Dnskey, time : TimePolicy, limits : Limits) -> Result[AuthenticatedSet, DnsError]fn delegate_keys(parent : TrustedKeys, child : Name, ds_records : Array[Record], ds_signatures : Array[Rrsig], key_records : Array[Record], key_signatures : Array[Rrsig], time : TimePolicy, limits : Limits) -> Result[TrustedKeys, DnsError]fn nsec_nodata(proof : AuthenticatedSet, zone : Name, name : Name, rrtype : Int, now : UInt) -> Result[Denial, DnsError]fn supported_algorithm(algorithm : Int) -> BoolInstall
Download zipBounded offline DNSSEC authentication and denial proofs for supplied RRsets