diff options
author | David Shaw <[email protected]> | 2004-11-26 16:48:05 +0000 |
---|---|---|
committer | David Shaw <[email protected]> | 2004-11-26 16:48:05 +0000 |
commit | 3ea642d8ae9009d4761779928fe6eb287c7d20b0 (patch) | |
tree | 92d794e421be60d0a4590d2f4457953c1b8a387e | |
parent | * gpg.sgml: Document export-minimal. (diff) | |
download | gnupg-3ea642d8ae9009d4761779928fe6eb287c7d20b0.tar.gz gnupg-3ea642d8ae9009d4761779928fe6eb287c7d20b0.zip |
* export.c (do_export_stream): Allow export-minimal to work with secret
keys, even though a non-selfsig secret key signature is rare.
Diffstat (limited to '')
-rw-r--r-- | g10/ChangeLog | 4 | ||||
-rw-r--r-- | g10/export.c | 11 |
2 files changed, 11 insertions, 4 deletions
diff --git a/g10/ChangeLog b/g10/ChangeLog index 94be194bf..7cf78e4f4 100644 --- a/g10/ChangeLog +++ b/g10/ChangeLog @@ -1,5 +1,9 @@ 2004-11-26 David Shaw <[email protected]> + * export.c (do_export_stream): Allow export-minimal to work with + secret keys, even though a non-selfsig secret key signature is + rare. + * options.h, export.c (parse_export_options, do_export_stream), import.c (parse_import_options, import_keys_internal): Make the import-options and export-options distinct since they can be mixed diff --git a/g10/export.c b/g10/export.c index f56019b37..86bc6546c 100644 --- a/g10/export.c +++ b/g10/export.c @@ -145,7 +145,7 @@ do_export_stream( IOBUF out, STRLIST users, int secret, KEYDB_SEARCH_DESC *desc = NULL; KEYDB_HANDLE kdbhd; STRLIST sl; - u32 pk_keyid[2]; + u32 keyid[2]; *any = 0; init_packet( &pkt ); @@ -220,10 +220,13 @@ do_export_stream( IOBUF out, STRLIST users, int secret, keystr(sk_keyid)); continue; } + + if(options&EXPORT_MINIMAL) + keyid_from_sk(sk,keyid); } else if((options&EXPORT_MINIMAL) && (node=find_kbnode(keyblock,PKT_PUBLIC_KEY))) - keyid_from_pk(node->pkt->pkt.public_key,pk_keyid); + keyid_from_pk(node->pkt->pkt.public_key,keyid); /* and write it */ for( kbctx=NULL; (node = walk_kbnode( keyblock, &kbctx, 0 )); ) { @@ -317,8 +320,8 @@ do_export_stream( IOBUF out, STRLIST users, int secret, 0x13). A designated revocation is not stripped. */ if((options&EXPORT_MINIMAL) && IS_UID_SIG(node->pkt->pkt.signature) - && (node->pkt->pkt.signature->keyid[0]!=pk_keyid[0] - || node->pkt->pkt.signature->keyid[1]!=pk_keyid[1])) + && (node->pkt->pkt.signature->keyid[0]!=keyid[0] + || node->pkt->pkt.signature->keyid[1]!=keyid[1])) continue; /* do not export packets which are marked as not exportable */ |