mirror of
git://git.gnupg.org/gnupg.git
synced 2024-12-22 10:19:57 +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>
57 lines
2.6 KiB
C
57 lines
2.6 KiB
C
/* keyserver-internal.h - Keyserver internals
|
|
* Copyright (C) 2001, 2002, 2004, 2005, 2006 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 _KEYSERVER_INTERNAL_H_
|
|
#define _KEYSERVER_INTERNAL_H_
|
|
|
|
#include <time.h>
|
|
#include "../common/keyserver.h"
|
|
#include "../common/iobuf.h"
|
|
#include "types.h"
|
|
|
|
int parse_keyserver_options(char *options);
|
|
void free_keyserver_spec(struct keyserver_spec *keyserver);
|
|
struct keyserver_spec *keyserver_match(struct keyserver_spec *spec);
|
|
struct keyserver_spec *parse_keyserver_uri (const char *string,
|
|
int require_scheme);
|
|
struct keyserver_spec *parse_preferred_keyserver(PKT_signature *sig);
|
|
int keyserver_any_configured (ctrl_t ctrl);
|
|
int keyserver_export (ctrl_t ctrl, strlist_t users);
|
|
int keyserver_import (ctrl_t ctrl, strlist_t users);
|
|
int keyserver_import_fprint (ctrl_t ctrl, const byte *fprint,size_t fprint_len,
|
|
struct keyserver_spec *keyserver);
|
|
int keyserver_import_keyid (ctrl_t ctrl, u32 *keyid,
|
|
struct keyserver_spec *keyserver);
|
|
gpg_error_t keyserver_refresh (ctrl_t ctrl, strlist_t users);
|
|
gpg_error_t keyserver_search (ctrl_t ctrl, strlist_t tokens);
|
|
int keyserver_fetch (ctrl_t ctrl, strlist_t urilist);
|
|
int keyserver_import_cert (ctrl_t ctrl, const char *name, int dane_mode,
|
|
unsigned char **fpr,size_t *fpr_len);
|
|
gpg_error_t keyserver_import_pka (ctrl_t ctrl, const char *name,
|
|
unsigned char **fpr,size_t *fpr_len);
|
|
gpg_error_t keyserver_import_wkd (ctrl_t ctrl, const char *name,
|
|
unsigned char **fpr, size_t *fpr_len);
|
|
int keyserver_import_name (ctrl_t ctrl,
|
|
const char *name,unsigned char **fpr,size_t *fpr_len,
|
|
struct keyserver_spec *keyserver);
|
|
int keyserver_import_ldap (ctrl_t ctrl, const char *name,
|
|
unsigned char **fpr,size_t *fpr_len);
|
|
|
|
#endif /* !_KEYSERVER_INTERNAL_H_ */
|