Skip to content

Conversation

@Jim8y
Copy link

@Jim8y Jim8y commented Nov 17, 2025

Summary

  • add DNS-over-HTTPS oracle protocol and config wiring
  • document dns:// usage and add tests for certificate parsing

Testing

  • not run (not requested)

Copy link
Member

@shargon shargon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that it's better to define the dns server, and make a dns query, instead of http query

@erikzhang
Copy link
Member

I think that it's better to define the dns server, and make a dns query, instead of http query

We need DNS over HTTPS.

@shargon
Copy link
Member

shargon commented Nov 17, 2025

I think that it's better to define the dns server, and make a dns query, instead of http query

We need DNS over HTTPS.

Then it's DoH no Dns, we should rename the oracle protocol

CertificatePublicKey key = new()
{
Algorithm = cert.PublicKey.Oid?.FriendlyName ?? cert.PublicKey.Oid?.Value,
Encoded = Convert.ToBase64String(cert.GetPublicKey())
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that it's better to construct this object inside the try/catch clause, it's possible to throw CryptographicException during cert.GetPublicKey()

@cschuchardt88
Copy link
Member

cschuchardt88 commented Nov 22, 2025

I think that it's better to define the dns server, and make a dns query, instead of http query

DoH is very commom see https://www.rfc-editor.org/rfc/rfc8484.html

Can we follow rfc8484?

@github-actions github-actions bot added the N4 label Nov 26, 2025
ajara87 and others added 6 commits November 30, 2025 17:15
- Replace application/dns-json with standard application/dns-message
- Implement DNS wire format (RFC 1035) for query/response encoding
- Use HTTP POST method per RFC 8484 specification
- Add DNS name compression pointer support
- Support user-specified authority in URI (dns://resolver/domain)
- Fix CryptographicException handling in BuildPublicKey
- Move Accept header to constructor
- Add comprehensive unit tests for wire format handling
- Add integration tests for Cloudflare, Google, and Quad9 DoH endpoints
- Update documentation with RFC 8484 compliance details
@Jim8y
Copy link
Author

Jim8y commented Dec 3, 2025

  • ✅ application/dns-json → application/dns-message (RFC 8484)
  • ✅ HTTP GET → HTTP POST
  • ✅ JSON parsing → DNS wire format (RFC 1035)
  • ✅ Support user-specified authority (dns://resolver/domain)
  • ✅ Fix CryptographicException handling in BuildPublicKey
  • ✅ Move Accept header to constructor
  • ✅ Integration tests covering Cloudflare, Google, Quad9

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants