|
|
@ -825,7 +825,7 @@ void print_packet_hex(const pgp_subpacket_t *pkt); |
|
|
|
\return 1 if OK; else 0 |
|
|
|
*/ |
|
|
|
unsigned |
|
|
|
pgp_add_selfsigned_userid(pgp_key_t *key, uint8_t *userid) |
|
|
|
pgp_add_selfsigned_userid(pgp_key_t *skey, pgp_key_t *pkey, uint8_t *userid) |
|
|
|
{ |
|
|
|
pgp_create_sig_t *sig; |
|
|
|
pgp_subpacket_t sigpacket; |
|
|
@ -838,21 +838,23 @@ pgp_add_selfsigned_userid(pgp_key_t *key, uint8_t *userid) |
|
|
|
|
|
|
|
/* create sig for this pkt */ |
|
|
|
sig = pgp_create_sig_new(); |
|
|
|
pgp_sig_start_key_sig(sig, &key->key.seckey.pubkey, userid, PGP_CERT_POSITIVE); |
|
|
|
pgp_sig_start_key_sig(sig, &skey->key.seckey.pubkey, userid, PGP_CERT_POSITIVE); |
|
|
|
pgp_add_time(sig, (int64_t)time(NULL), "birth"); |
|
|
|
pgp_add_issuer_keyid(sig, key->pubkeyid); |
|
|
|
pgp_add_issuer_keyid(sig, skey->pubkeyid); |
|
|
|
pgp_add_primary_userid(sig, 1); |
|
|
|
pgp_end_hashed_subpkts(sig); |
|
|
|
|
|
|
|
pgp_setup_memory_write(&sigoutput, &mem_sig, 128); |
|
|
|
pgp_write_sig(sigoutput, sig, &key->key.seckey.pubkey, &key->key.seckey); |
|
|
|
pgp_write_sig(sigoutput, sig, &skey->key.seckey.pubkey, &skey->key.seckey); |
|
|
|
|
|
|
|
/* add this packet to key */ |
|
|
|
sigpacket.length = pgp_mem_len(mem_sig); |
|
|
|
sigpacket.raw = pgp_mem_data(mem_sig); |
|
|
|
|
|
|
|
/* add user id and signature to key */ |
|
|
|
pgp_update_userid(key, userid, &sigpacket, &sig->sig.info); |
|
|
|
pgp_update_userid(skey, userid, &sigpacket, &sig->sig.info); |
|
|
|
if(pkey) |
|
|
|
pgp_update_userid(pkey, userid, &sigpacket, &sig->sig.info); |
|
|
|
|
|
|
|
/* cleanup */ |
|
|
|
pgp_create_sig_delete(sig); |
|
|
|