aboutsummaryrefslogtreecommitdiffstats
path: root/g10/import.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2017-07-24 19:07:03 +0000
committerWerner Koch <[email protected]>2017-07-24 19:10:58 +0000
commit87b5421ca84bbea68217c9ed771ee8c0a98a4d0c (patch)
tree07df766cc85680c315c81f953079f2bd30139e65 /g10/import.c
parentgpg: Store key origin info for new keys from a keyserver (diff)
downloadgnupg-87b5421ca84bbea68217c9ed771ee8c0a98a4d0c.tar.gz
gnupg-87b5421ca84bbea68217c9ed771ee8c0a98a4d0c.zip
gpg: Extend --key-origin to take an optional URL arg.
* g10/getkey.c (parse_key_origin): Parse appended URL. * g10/options.h (struct opt): Add field 'key_origin_url'. * g10/gpg.c (main) <aImport>: Pass that option to import_keys. * g10/import.c (apply_meta_data): Extend for file and url. * g10/keyserver.c (keyserver_fetch): Pass the url to import_keys_es_stream. -- Example: gpg --key-origin url,myscheme://bla --import FILE Signed-off-by: Werner Koch <[email protected]>
Diffstat (limited to '')
-rw-r--r--g10/import.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/g10/import.c b/g10/import.c
index d22c8f457..f18ef48f2 100644
--- a/g10/import.c
+++ b/g10/import.c
@@ -1425,6 +1425,22 @@ apply_meta_data (kbnode_t keyblock, int origin, const char *url)
if (!pk->updateurl)
return gpg_error_from_syserror ();
}
+ else if (origin == KEYORG_FILE)
+ {
+ pk->keyorg = origin;
+ pk->keyupdate = curtime;
+ }
+ else if (origin == KEYORG_URL)
+ {
+ pk->keyorg = origin;
+ pk->keyupdate = curtime;
+ if (url)
+ {
+ pk->updateurl = xtrystrdup (url);
+ if (!pk->updateurl)
+ return gpg_error_from_syserror ();
+ }
+ }
}
else if (node->pkt->pkttype == PKT_USER_ID)
{
@@ -1458,6 +1474,16 @@ apply_meta_data (kbnode_t keyblock, int origin, const char *url)
uid->keyorg = origin;
uid->keyupdate = curtime;
}
+ else if (origin == KEYORG_FILE)
+ {
+ uid->keyorg = origin;
+ uid->keyupdate = curtime;
+ }
+ else if (origin == KEYORG_URL)
+ {
+ uid->keyorg = origin;
+ uid->keyupdate = curtime;
+ }
}
}