Browse Source

Fixed wrong format for seckey packet (s2k was missing if no conversion)

master
Edouard Tisserant 7 years ago
parent
commit
5541bd2d1f
2 changed files with 6 additions and 5 deletions
  1. +3
    -3
      dist/src/lib/create.c
  2. +3
    -2
      dist/src/lib/keyring.c

+ 3
- 3
dist/src/lib/create.c View File

@ -301,14 +301,14 @@ write_seckey_body(const pgp_seckey_t *key,
if (!write_pubkey_body(&key->pubkey, output)) {
return 0;
}
if (!pgp_write_scalar(output, (unsigned)key->s2k_usage, 1)) {
return 0;
}
if (key->s2k_usage != PGP_S2KU_NONE) {
if (key->s2k_usage != PGP_S2KU_ENCRYPTED_AND_HASHED) {
(void) fprintf(stderr, "write_seckey_body: s2k usage\n");
return 0;
}
if (!pgp_write_scalar(output, (unsigned)key->s2k_usage, 1)) {
return 0;
}
if (key->alg != PGP_SA_CAST5) {
(void) fprintf(stderr, "write_seckey_body: algorithm\n");


+ 3
- 2
dist/src/lib/keyring.c View File

@ -857,12 +857,13 @@ pgp_add_selfsigned_userid(pgp_key_t *skey, pgp_key_t *pkey, uint8_t *userid, uin
/* create sig for this pkt */
sig = pgp_create_sig_new();
pgp_sig_start_key_sig(sig, &skey->key.seckey.pubkey, userid, PGP_CERT_POSITIVE);
pgp_add_creation_time(sig, (uint64_t)time(NULL));
pgp_add_key_expiration_time(sig, (uint64_t)duration);
pgp_add_key_flags(sig, PGP_KEYFLAG_SIGN_DATA|PGP_KEYFLAG_ENC_COMM);
pgp_add_issuer_keyid(sig, skey->pubkeyid);
pgp_add_primary_userid(sig, 1);
pgp_add_key_flags(sig, PGP_KEYFLAG_SIGN_DATA|PGP_KEYFLAG_ENC_COMM);
pgp_end_hashed_subpkts(sig);
pgp_setup_memory_write(&sigoutput, &mem_sig, 128);


Loading…
Cancel
Save