1
0
Fork 0
mirror of git://git.gnupg.org/gnupg.git synced 2025-07-02 22:46:30 +02:00

dirmngr: Support Tor hidden services.

* dirmngr/dns-stuff.c (is_onion_address): New.
* dirmngr/ks-engine-hkp.c (hostinfo_s): Add field "onion".
(map_host): Special case onion addresses.
(ks_hkp_print_hosttable): Print an 'O' for an onion address.
* dirmngr/http.c (connect_server): Special case onion addresses.
--

Note that this requires the latest libassuan from git.  Onion addresses
are always support regardless of the --use-tor flag.

Signed-off-by: Werner Koch <wk@gnupg.org>
This commit is contained in:
Werner Koch 2015-10-26 16:32:03 +01:00
parent 7735bbe539
commit 4524a2a371
No known key found for this signature in database
GPG key ID: E3FDFF218E45B72B
4 changed files with 62 additions and 2 deletions

View file

@ -2212,6 +2212,32 @@ connect_server (const char *server, unsigned short port,
init_sockets ();
#endif /*Windows*/
/* Onion addresses require special treatment. */
if (is_onion_address (server))
{
#ifdef ASSUAN_SOCK_TOR
my_unprotect ();
sock = assuan_sock_connect_byname (server, port, 0, NULL,
ASSUAN_SOCK_TOR);
my_protect ();
if (sock == ASSUAN_INVALID_FD)
{
if (errno == EHOSTUNREACH)
*r_host_not_found = 1;
log_error ("can't connect to '%s': %s\n", server, strerror (errno));
}
return sock;
#else /*!ASSUAN_SOCK_TOR*/
gpg_err_set_errno (ENETUNREACH);
return -1; /* Out of core. */
#endif /*!HASSUAN_SOCK_TOR*/
}
#ifdef USE_DNS_SRV
/* Do the SRV thing */
if (srvtag)