diff options
author | Werner Koch <[email protected]> | 2024-04-04 14:39:14 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2024-04-04 14:49:50 +0000 |
commit | 1f31dc62008867558b678a2e538805a76c76a266 (patch) | |
tree | 90208c1fe2b2c70081f339eeefb47afa1467d040 | |
parent | gpgconf: Change layout of the gpgconf -X output. (diff) | |
download | gnupg-1f31dc62008867558b678a2e538805a76c76a266.tar.gz gnupg-1f31dc62008867558b678a2e538805a76c76a266.zip |
gpg: Do not allow to accidently set the RENC usage.
* g10/keygen.c (print_key_flags): Print "RENC" if set.
(ask_key_flags_with_mask): Remove RENC from the possible set of
usages. Add a direct way to set it iff the key is encryption capable.
--
This could be done by using "set your own capabilities" for an RSA
key. In fact it was always set in this case.
GnuPG-bug-id: 7072
-rw-r--r-- | g10/keygen.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/g10/keygen.c b/g10/keygen.c index c8487be0a..52fd97a64 100644 --- a/g10/keygen.c +++ b/g10/keygen.c @@ -1859,6 +1859,9 @@ print_key_flags(int flags) if(flags&PUBKEY_USAGE_AUTH) tty_printf("%s ",_("Authenticate")); + + if(flags&PUBKEY_USAGE_RENC) + tty_printf("%s ", "RENC"); } @@ -1892,8 +1895,11 @@ ask_key_flags_with_mask (int algo, int subkey, unsigned int current, } /* Mask the possible usage flags. This is for example used for a - * card based key. */ + * card based key. For ECDH we need to allows additional usages if + * they are provided. RENC is not directly poissible here but see + * below for a workaround. */ possible = (openpgp_pk_algo_usage (algo) & mask); + possible &= ~PUBKEY_USAGE_RENC; /* However, only primary keys may certify. */ if (subkey) @@ -1956,6 +1962,12 @@ ask_key_flags_with_mask (int algo, int subkey, unsigned int current, want to experiment with a cert-only primary key. */ current |= PUBKEY_USAGE_CERT; } + else if ((*s == 'r' || *s == 'R') && (possible&PUBKEY_USAGE_ENC)) + { + /* Allow to set RENC or an encryption capable key. + * This is on purpose not shown in the menu. */ + current |= PUBKEY_USAGE_RENC; + } } break; } |