aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2024-04-04 14:39:14 +0000
committerWerner Koch <[email protected]>2024-04-04 14:49:50 +0000
commit1f31dc62008867558b678a2e538805a76c76a266 (patch)
tree90208c1fe2b2c70081f339eeefb47afa1467d040
parentgpgconf: Change layout of the gpgconf -X output. (diff)
downloadgnupg-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.c14
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;
}