Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove custom DNS resolver #34

Merged
merged 2 commits into from
Dec 14, 2017
Merged

Remove custom DNS resolver #34

merged 2 commits into from
Dec 14, 2017

Conversation

lambdafu
Copy link
Collaborator

@lambdafu lambdafu commented Dec 14, 2017

GnuPG has its own DNS resolver. This is used to implement DNS-based features which we don't support:

  • SRV records for SKS keyserver pools (we will just rely on DNS A/AAAA records or switch to more reliable keyservers such as pgp.mit.edu or other alternatives)
  • DNS-based key retrieval (PKA, DNS CERT, OPENPGPKEYS), which have been removed for lack of adoption
  • WKD requires looking up a SRV record, because many email domains can be mapped to a single webserver domain. We have removed WKD for now. A plugin supporting it would have to find its own way to look up DNS entries.
    Because of this reliance on DNS features, GnuPG also requires special support for Tor, and can't use the simple SOCKS5H feature which does transparent DNS lookup for HTTP requests only. Also, GnuPG has its own DNS resolver to work over Tor (using TCP, not UDP, etc).
    There are other support costs. Because GnuPG does its own DNS lookups, it needs to be aware of changes to the nameserver configuration (which is platform specific), otherwise dirmngr needs to be restarted when roaming to a different network.

All of these features are intermingled in GnuPG, architectural and in the actual implementation. Dropping these features allows NeoPG to be "normal" in that it does simple HTTP/HTTPS lookups, optionally over a proxy (which can be a Tor SOCKS5H) proxy. No special configuration is needed, and the default operating system features are used. There will be another PR to remove tor mode.

All of this is also a precursor to eliminating libgpg-error and its I/O library.

@lambdafu lambdafu force-pushed the no-dns branch 3 times, most recently from 84012da to a1bb4d3 Compare December 14, 2017 14:38
@lambdafu lambdafu changed the title [WIP] Remove custom DNS resolver Remove custom DNS resolver Dec 14, 2017
@lambdafu lambdafu merged commit 7735b1f into master Dec 14, 2017
@lambdafu lambdafu deleted the no-dns branch December 14, 2017 15:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant