Bounded offline DNSSEC authentication and denial proofs for supplied RRsets
moon add Han-Wentao/moon-dnssec@0.1.1import {
"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| 领域 | 已支持 | 不支持或受限 |
|---|---|---|
| 签名 | RSA/SHA256(8)、RSA/SHA512(10)、P256/SHA256(13)、P384/SHA384(14)、Ed25519(15) | RSA/SHA1、Ed448、算法协商与网络策略 |
| RSA 参数 | 1024–4096 位完整长度的奇数模数、有界指数、PKCS1 v1.5 | 更大 RSA 密钥、PSS DNSSEC 变体 |
| DS 关联 | 摘要类型 2(SHA256),直接复用 MoonZoneGuard | SHA1/SHA384 DS 接受、非 ASCII 的 DS 所有者名称 |
| 含名称的 RDATA | NS、CNAME、PTR、DNAME、MX、SRV、SOA、NSEC | 对已知但尚未实现的含名称类型按安全失败处理 |
| 其他 RDATA | A/AAAA 长度检查、TXT 字符串检查、不透明 RFC3597 数据 | 全部 IANA RR 类型的完整语义解析 |
| 不存在证明 | 精确名称 NODATA、显式最近包围者 NXDOMAIN、精确不安全委派证明 | 通配符 NODATA、推断 NSEC 空非终结点、opt-out 委派发现 |
| NSEC3 | SHA1、盐与迭代次数限制、base32hex、单一参数集合 | opt-out 一般 NXDOMAIN 返回 Indeterminate |
| 信任 | 显式可信锚、调用方提供的已签名委派 | RFC5011 密钥轮换、根锚自动获取、在线发现信任链 |
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