aboutsummaryrefslogtreecommitdiffstats
path: root/g10/import.c
diff options
context:
space:
mode:
Diffstat (limited to 'g10/import.c')
-rw-r--r--g10/import.c25
1 files changed, 18 insertions, 7 deletions
diff --git a/g10/import.c b/g10/import.c
index 68ecd5330..228c754eb 100644
--- a/g10/import.c
+++ b/g10/import.c
@@ -43,7 +43,8 @@ static int chk_self_sigs( const char *fname, KBNODE keyblock,
PKT_public_cert *pkc, u32 *keyid );
static int delete_inv_parts( const char *fname, KBNODE keyblock, u32 *keyid );
static int merge_blocks( const char *fname, KBNODE keyblock_orig,
- KBNODE keyblock, u32 *keyid, int *n_uids, int *n_sigs );
+ KBNODE keyblock, u32 *keyid,
+ int *n_uids, int *n_sigs, int *n_subk );
static int append_uid( KBNODE keyblock, KBNODE node, int *n_sigs,
const char *fname, u32 *keyid );
static int merge_sigs( KBNODE dst, KBNODE src, int *n_sigs,
@@ -103,7 +104,7 @@ import_pubkeys( const char *fname )
return G10ERR_OPEN_FILE;
}
- if( !opt.no_armor ) /* armored reading is not diabled */
+ if( !opt.no_armor ) /* armored reading is not disabled */
iobuf_push_filter( inp, armor_filter, &afx );
while( !(rc = read_block( inp, &cfx, &pending_pkt, &keyblock) )) {
@@ -305,7 +306,7 @@ import_one( const char *fname, KBNODE keyblock )
log_info("%s: key %08lX imported\n", fname, (ulong)keyid[1]);
}
else { /* merge */
- int n_uids, n_sigs;
+ int n_uids, n_sigs, n_subk;
/* Compare the original against the new key; just to be sure nothing
* weird is going on */
@@ -335,12 +336,13 @@ import_one( const char *fname, KBNODE keyblock )
/* and try to merge the block */
clear_kbnode_flags( keyblock_orig );
clear_kbnode_flags( keyblock );
- n_uids = n_sigs = 0;
+ n_uids = n_sigs = n_subk = 0;
rc = merge_blocks( fname, keyblock_orig, keyblock,
- keyid, &n_uids, &n_sigs );
+ keyid, &n_uids, &n_sigs, &n_subk );
if( rc )
goto leave;
- if( n_uids || n_sigs ) { /* keyblock_orig has been updated; write */
+ if( n_uids || n_sigs || n_subk ) {
+ /* keyblock_orig has been updated; write */
if( opt.verbose > 1 )
log_info("%s: writing to '%s'\n",
fname, keyblock_resource_name(&kbpos) );
@@ -364,6 +366,12 @@ import_one( const char *fname, KBNODE keyblock )
else if( n_sigs )
log_info("%s: key %08lX, %d new signatures\n",
fname, (ulong)keyid[1], n_sigs );
+ if( n_subk == 1 )
+ log_info("%s: key %08lX, 1 new subkey\n",
+ fname, (ulong)keyid[1]);
+ else if( n_subk )
+ log_info("%s: key %08lX, %d new subkeys\n",
+ fname, (ulong)keyid[1], n_subk );
}
else
log_info("%s: key %08lX, not changed\n", fname, (ulong)keyid[1] );
@@ -593,7 +601,7 @@ delete_inv_parts( const char *fname, KBNODE keyblock, u32 *keyid )
*/
static int
merge_blocks( const char *fname, KBNODE keyblock_orig, KBNODE keyblock,
- u32 *keyid, int *n_uids, int *n_sigs )
+ u32 *keyid, int *n_uids, int *n_sigs, int *n_subk )
{
KBNODE onode, node;
int rc, found;
@@ -667,6 +675,9 @@ merge_blocks( const char *fname, KBNODE keyblock_orig, KBNODE keyblock,
}
}
+ /* 4th: add new subkeys */
+ /* FIXME */
+
return 0;
}