You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-`domain` is the DNS owner name (relative or absolute). Percent-encoding and escaped dots (`%5c.`) follow RFC 4501 rules.
49
49
-`domain` must not include additional path segments; only the owner name belongs here.
50
50
-`authority` is the optional DoH server to use for this query (RFC 4501). When specified, the oracle connects to `https://{authority}/dns-query`. If omitted, the configured `EndPoint` is used.
51
51
-`CLASS` is optional and case-insensitive. Only `IN` (`1`) is supported; other classes are rejected.
52
52
-`TYPE` is optional and case-insensitive. Use mnemonics (`TXT`, `TLSA`, `CERT`, `A`, `AAAA`, …) or numeric values. Defaults to `A` per RFC 4501.
53
-
-`FORMAT` is an oracle extension; use `format=x509` (or `cert`) to parse TXT/CERT payloads into the `Certificate` field.
54
53
-`name` is an oracle extension; if present, it overrides `domain` entirely (useful for percent-encoding complex owner names).
55
54
56
55
Query parameters can be separated by `;` (RFC style) or `&`.
-`dns:simon.example.org?TYPE=CERT;FORMAT=x509` — extract the X.509 payload into `Certificate`.
60
+
-`dns:simon.example.org?TYPE=CERT` — CERT RDATA is returned as-is (type, key tag, algorithm, base64).
62
61
-`dns://dns.google/ftp.example.org?TYPE=A` — uses Google's DoH server (`https://dns.google/dns-query`) instead of the configured endpoint.
63
62
-`dns://cloudflare-dns.com/example.org?TYPE=TXT` — uses Cloudflare's DoH server for this specific query.
64
63
-`dns:ignored?name=weird%5c.label.example&type=TXT` — uses the `name` override (decoded to `weird.label.example`).
@@ -78,27 +77,12 @@ Successful queries return UTF-8 JSON. Attributes correspond to the `ResultEnvelo
78
77
"Ttl":299,
79
78
"Data":"\"k=rsa; p=...IDAQAB\""
80
79
}
81
-
],
82
-
"Certificate": {
83
-
"Subject":"CN=example.com",
84
-
"Issuer":"CN=Example Root",
85
-
"Thumbprint":"ABCD1234...",
86
-
"NotBefore":"2024-01-16T00:00:00Z",
87
-
"NotAfter":"2025-01-16T00:00:00Z",
88
-
"Der":"MIIC...",
89
-
"PublicKey": {
90
-
"Algorithm":"RSA",
91
-
"Encoded":"MIIBIjANBg...",
92
-
"Modulus":"B968DE...",
93
-
"Exponent":"010001"
94
-
}
95
-
}
80
+
]
96
81
}
97
82
```
98
83
99
84
-`Answers` mirrors the DoH response but normalizes record types and names.
100
-
-`Certificate` is present only when `TYPE=CERT` or `FORMAT=x509`. `Der` is the base64-encoded certificate, while `PublicKey` provides both the encoded SubjectPublicKeyInfo (`Encoded`) and algorithm-specific fields (`Modulus`/`Exponent` for RSA, `Curve`/`X`/`Y` for EC).
101
-
- For RSA keys the modulus/exponent strings are big-endian hex. For EC keys the X/Y coordinates are hex-encoded affine coordinates on the reported `Curve`.
85
+
- CERT records are returned verbatim in `Answers[].Data` (type, key tag, algorithm, base64 payload). Contracts can parse the certificate themselves if needed.
102
86
- If the DoH server responds with NXDOMAIN, the oracle returns `OracleResponseCode.NotFound`.
0 commit comments