diff options
author | Werner Koch <[email protected]> | 2024-10-31 14:11:55 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2024-10-31 14:11:55 +0000 |
commit | d30e345692440b9c6677118c1d20b9d17d80f873 (patch) | |
tree | d2b7f924c0f5d733245a46173ba8f575531f10de /g10/keyedit.c | |
parent | agent: Fix status output for LISTTRUSTED. (diff) | |
download | gnupg-d30e345692440b9c6677118c1d20b9d17d80f873.tar.gz gnupg-d30e345692440b9c6677118c1d20b9d17d80f873.zip |
gpg: Allow the use of an ADSK subkey as ADSK subkey.
* g10/packet.h (PKT_public_key): Increased size of req_usage to 16.
* g10/getkey.c (key_byname): Set allow_adsk in the context if ir was
requested via req_usage.
(finish_lookup): Allow RENC usage matching.
* g10/keyedit.c (append_adsk_to_key): Adjust the assert.
* g10/keygen.c (prepare_adsk): Also allow to find an RENC subkey.
--
If an ADSK is to be added it may happen that an ADSK subkey is found
first and this should then be used even that it does not have the E
usage. However, it used to have that E usage when it was added.
While testing this I found another pecularity: If you do
gpg -k ADSK_SUBKEY_FPR
without the '!' suffix and no corresponding encryption subkey is dound,
you will get an unusabe key error. I hesitate to fix that due to
possible side-effects.
GnuPG-bug-id: 6882
Diffstat (limited to 'g10/keyedit.c')
-rw-r--r-- | g10/keyedit.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/g10/keyedit.c b/g10/keyedit.c index b2018a2bd..9f4e4d9e5 100644 --- a/g10/keyedit.c +++ b/g10/keyedit.c @@ -4935,8 +4935,8 @@ append_adsk_to_key (ctrl_t ctrl, kbnode_t keyblock, PKT_public_key *adsk) /* Prepare and append the adsk. */ keyid_from_pk (main_pk, adsk->main_keyid); /* Fixup main keyid. */ - log_assert ((adsk->pubkey_usage & PUBKEY_USAGE_ENC)); - adsk->pubkey_usage = PUBKEY_USAGE_RENC; /* 'e' -> 'r' */ + log_assert ((adsk->pubkey_usage & PUBKEY_USAGE_XENC_MASK)); + adsk->pubkey_usage = PUBKEY_USAGE_RENC; /* 'e' or 'r' -> 'r' */ pkt = xtrycalloc (1, sizeof *pkt); if (!pkt) { |