mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-03 22:56:33 +02:00
gpg: New options --recipient-file and --hidden-recipient-file.
* g10/gpg.c (oRecipientFile, oHiddenRecipientFile): New. (opts): Add options --recipient-file and --hidden-recipient-file. (main): Implement them. Also remove duplicate code from similar options. * g10/keydb.h (PK_LIST_FROM_FILE): New. (PK_LIST_SHIFT): Bump up. * g10/pkclist.c (expand_group): Take care of PK_LIST_FROM_FILE. (find_and_check_key): Add and implement arg FROM_FILE. (build_pk_list): Pass new value for new arg. * g10/getkey.c (get_pubkey_fromfile): New. * g10/gpgv.c (read_key_from_file): New stub. * g10/test-stubs.c (read_key_from_file): New stub. * g10/server.c (cmd_recipient): Add flag --file. * g10/import.c (read_key_from_file): New. * tests/openpgp/defs.scm (key-file1): New. (key-file2): New. * tests/openpgp/setup.scm: Add their private keys and import the key-file1. * tests/openpgp/encrypt.scm: Add new test. -- Signed-off-by: Werner Koch <wk@gnupg.org>
This commit is contained in:
parent
073be51a86
commit
a479804c86
13 changed files with 330 additions and 82 deletions
22
g10/keydb.h
22
g10/keydb.h
|
@ -70,15 +70,16 @@ enum resource_type {
|
|||
/* Bit flags used with build_pk_list. */
|
||||
enum
|
||||
{
|
||||
PK_LIST_ENCRYPT_TO=1, /* This is an encrypt-to recipient. */
|
||||
PK_LIST_HIDDEN=2, /* This is a hidden recipient. */
|
||||
PK_LIST_CONFIG=4 /* Specified via config file. */
|
||||
PK_LIST_ENCRYPT_TO = 1, /* This is an encrypt-to recipient. */
|
||||
PK_LIST_HIDDEN = 2, /* This is a hidden recipient. */
|
||||
PK_LIST_CONFIG = 4, /* Specified via config file. */
|
||||
PK_LIST_FROM_FILE = 8 /* Take key from file with that name. */
|
||||
};
|
||||
/* To store private data in the flags they must be left shifted by
|
||||
this value. */
|
||||
/* To store private data in the flags the private data must be left
|
||||
shifted by this value. */
|
||||
enum
|
||||
{
|
||||
PK_LIST_SHIFT=3
|
||||
PK_LIST_SHIFT = 4
|
||||
};
|
||||
|
||||
/****************
|
||||
|
@ -104,7 +105,7 @@ struct pk_list
|
|||
{
|
||||
PK_LIST next;
|
||||
PKT_public_key *pk;
|
||||
int flags; /* flag bit 1==throw_keyid */
|
||||
int flags; /* See PK_LIST_ constants. */
|
||||
};
|
||||
|
||||
/* Structure to hold a list of secret key certificates. */
|
||||
|
@ -228,7 +229,8 @@ void release_pk_list (PK_LIST pk_list);
|
|||
int build_pk_list (ctrl_t ctrl, strlist_t rcpts, PK_LIST *ret_pk_list);
|
||||
gpg_error_t find_and_check_key (ctrl_t ctrl,
|
||||
const char *name, unsigned int use,
|
||||
int mark_hidden, pk_list_t *pk_list_addr);
|
||||
int mark_hidden, int from_file,
|
||||
pk_list_t *pk_list_addr);
|
||||
|
||||
int algo_available( preftype_t preftype, int algo,
|
||||
const union pref_hint *hint );
|
||||
|
@ -322,6 +324,10 @@ int get_pubkey_byname (ctrl_t ctrl,
|
|||
KBNODE *ret_keyblock, KEYDB_HANDLE *ret_kdbhd,
|
||||
int include_unusable, int no_akl );
|
||||
|
||||
/* Get a public key directly from file FNAME. */
|
||||
gpg_error_t get_pubkey_fromfile (ctrl_t ctrl,
|
||||
PKT_public_key *pk, const char *fname);
|
||||
|
||||
/* Return the public key with the key id KEYID iff the secret key is
|
||||
* available and store it at PK. */
|
||||
gpg_error_t get_seckey (PKT_public_key *pk, u32 *keyid);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue