folbricht / routedns

DNS stub resolver, proxy and router with support for DoT, DoH, DoQ, and DTLS
BSD 3-Clause "New" or "Revised" License
473 stars 62 forks source link

Add support for DNSCRYPT protocol #72

Open cbuijs opened 4 years ago

cbuijs commented 4 years ago

See here: https://dnscrypt.info/

OpenDNS/Cisco-Umbrella heritage. Seems to be a quasi accepted standard for a long time already and has a pretty big fan base including tools, apps, etc. Lively community.

Both listener and resolver support.

folbricht commented 4 years ago

There doesn't seem to be a Go library for it yet. https://github.com/DNSCrypt/dnscrypt-proxy doesn't have it structured as a library. So I could either re-org the code upstream, or write a new implementation.

cbuijs commented 4 years ago

Gotcha. I was expected an easier approach as the dnsproxy was/is written in go. For me it is not a 'must' but it is the one missing besides all the other DNS related protocols :-).

folbricht commented 3 years ago

Looks like we might be able to use https://github.com/ameshkov/dnscrypt as that's a library.

iamsurfing commented 3 years ago

@folbricht @cbuijs

New resolver dnscrypt-tcp & dnscrypt-udp is here: iamsurfing/routedns

Is there anybody want to help me fix bugs?

cbuijs commented 3 years ago

@iamsurfing - Not an avid user/fan of DNSCrypt, but I'll try to test it over the weekend.

folbricht commented 3 years ago

Would you be able to turn that into a PR? It's very hard to review otherwise

iamsurfing commented 3 years ago

@folbricht It is not good to pull request because I want to add some feature.

Set local address(done) Bootstrap(doing) Resolve encrypted cert(doing)

If you want to review it, view this following files.

https://github.com/iamsurfing/routedns/blob/master/dnscrypt.go

https://github.com/iamsurfing/routedns/blob/master/cmd/routedns/resolver.go#L80 case "dnscrypt-udp","dnscrypt-tcp"