mirror of
git://git.gnupg.org/gnupg.git
synced 2024-12-23 10:29:58 +01:00
87de9e19ed
* g10/getkey.c (parse_auto_key_locate): Add method "wkd". (get_pubkey_byname): Implement that method. Also rename a variable. * g10/call-dirmngr.c (gpg_dirmngr_wkd_get): New. * g10/keyserver.c (keyserver_import_wkd): New. * g10/test-stubs.c (keyserver_import_wkd): Add stub. * g10/gpgv.c (keyserver_import_wkd): Ditto. * g10/options.h (opt): Add field 'with_wkd_hash'. (AKL_WKD): New. * g10/gpg.c (oWithWKDHash): New. (opts): Add option --with-wkd-hash. (main): Set that option. * g10/keylist.c (list_keyblock_print): Implement that option. -- The Web Key Directory is an experimental feature to retrieve a key via https. It is similar to OpenPGP DANE but also uses an encryption to reveal less information about a key lookup. For example the URI to lookup the key for Joe.Doe@Example.ORG is: https://example.org/.well-known/openpgpkey/ hu/example.org/iy9q119eutrkn8s1mk4r39qejnbu3n5q (line has been wrapped for rendering purposes). The hash is a z-Base-32 encoded SHA-1 hash of the mail address' local-part. The address wk@gnupg.org can be used for testing. Signed-off-by: Werner Koch <wk@gnupg.org>
48 lines
2.2 KiB
C
48 lines
2.2 KiB
C
/* call-dirmngr.h - GPG operations to the Dirmngr
|
|
* Copyright (C) 2011 Free Software Foundation, Inc.
|
|
*
|
|
* This file is part of GnuPG.
|
|
*
|
|
* GnuPG is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 3 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* GnuPG is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
#ifndef GNUPG_G10_CALL_DIRMNGR_H
|
|
#define GNUPG_G10_CALL_DIRMNGR_H
|
|
|
|
void gpg_dirmngr_deinit_session_data (ctrl_t ctrl);
|
|
|
|
gpg_error_t gpg_dirmngr_ks_list (ctrl_t ctrl, char **r_keyserver);
|
|
gpg_error_t gpg_dirmngr_ks_search (ctrl_t ctrl, const char *searchstr,
|
|
gpg_error_t (*cb)(void*, int, char *),
|
|
void *cb_value);
|
|
gpg_error_t gpg_dirmngr_ks_get (ctrl_t ctrl, char *pattern[],
|
|
keyserver_spec_t override_keyserver,
|
|
estream_t *r_fp, char **r_source);
|
|
gpg_error_t gpg_dirmngr_ks_fetch (ctrl_t ctrl,
|
|
const char *url, estream_t *r_fp);
|
|
gpg_error_t gpg_dirmngr_ks_put (ctrl_t ctrl, void *data, size_t datalen,
|
|
kbnode_t keyblock);
|
|
gpg_error_t gpg_dirmngr_dns_cert (ctrl_t ctrl,
|
|
const char *name, const char *certtype,
|
|
estream_t *r_key,
|
|
unsigned char **r_fpr, size_t *r_fprlen,
|
|
char **r_url);
|
|
gpg_error_t gpg_dirmngr_get_pka (ctrl_t ctrl, const char *userid,
|
|
unsigned char **r_fpr, size_t *r_fprlen,
|
|
char **r_url);
|
|
gpg_error_t gpg_dirmngr_wkd_get (ctrl_t ctrl, const char *name,
|
|
estream_t *r_key);
|
|
|
|
|
|
#endif /*GNUPG_G10_CALL_DIRMNGR_H*/
|