Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
GnuPG has its own DNS resolver. This is used to implement DNS-based features which we don't support:
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.