diff options
author | Werner Koch <[email protected]> | 2017-07-13 15:28:32 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2017-07-13 16:29:01 +0000 |
commit | fa1155e89ebb4b16ee95549b8ab72672df3a0c54 (patch) | |
tree | 515f2f5684c032772406b27e4ea94a91c87e766a /g10/getkey.c | |
parent | doc: Document gnupg version requirement for gpg-preset-passphrase. (diff) | |
download | gnupg-fa1155e89ebb4b16ee95549b8ab72672df3a0c54.tar.gz gnupg-fa1155e89ebb4b16ee95549b8ab72672df3a0c54.zip |
gpg: New option --key-origin.
* g10/keydb.h (KEYORG_): Rename to KEYORG_.
* g10/packet.h (PKT_user_id): Rename field keysrc to keyorg. Adjust
users.
(PKT_public_key): Ditto.
(PKT_ring_trust): Ditto.
* g10/options.h (struct opt): Add field key_origin.
* g10/getkey.c (parse_key_origin): New.
* g10/gpg.c (oKeyOrigin): New.
(opts): Add "keys-origin".
(main): Set option.
Signed-off-by: Werner Koch <[email protected]>
Diffstat (limited to 'g10/getkey.c')
-rw-r--r-- | g10/getkey.c | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/g10/getkey.c b/g10/getkey.c index a3df8578a..285ea35d7 100644 --- a/g10/getkey.c +++ b/g10/getkey.c @@ -4294,6 +4294,41 @@ parse_auto_key_locate (char *options) } +/* Parse the argument for --key-origin. Return false on error. */ +int +parse_key_origin (char *string) +{ + struct { const char *name; int origin; } list[] = { + { "self", KEYORG_SELF }, + { "file", KEYORG_FILE }, + { "url", KEYORG_URL }, + { "wkd", KEYORG_WKD }, + { "dane", KEYORG_DANE }, + { "ks-pref", KEYORG_KS_PREF }, + { "ks", KEYORG_KS }, + { "unknown", KEYORG_UNKNOWN } + }; + int i; + + if (!ascii_strcasecmp (string, "help")) + { + log_info (_("valid values for option '%s':\n"), "--key-origin"); + for (i=0; i < DIM (list); i++) + log_info (" %s\n", list[i].name); + g10_exit (1); + } + + for (i=0; i < DIM (list); i++) + if (!ascii_strcasecmp (string, list[i].name)) + { + opt.key_origin = list[i].origin; + return 1; + } + + return 0; +} + + /* Returns true if a secret key is available for the public key with key id KEYID; returns false if not. This function ignores legacy keys. Note: this is just a fast check and does not tell us whether |