aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--g10/getkey.c8
-rw-r--r--include/cipher.h1
2 files changed, 8 insertions, 1 deletions
diff --git a/g10/getkey.c b/g10/getkey.c
index 5440c29d7..3c953d61e 100644
--- a/g10/getkey.c
+++ b/g10/getkey.c
@@ -1494,13 +1494,19 @@ parse_key_usage(PKT_signature *sig)
if(flags)
key_usage |= PUBKEY_USAGE_UNKNOWN;
+
+ if (!key_usage)
+ key_usage |= PUBKEY_USAGE_NONE;
}
+ else if (p) /* Key flags of length zero. */
+ key_usage |= PUBKEY_USAGE_NONE;
/* We set PUBKEY_USAGE_UNKNOWN to indicate that this key has a
capability that we do not handle. This serves to distinguish
between a zero key usage which we handle as the default
capabilities for that algorithm, and a usage that we do not
- handle. */
+ handle. Likewise we use PUBKEY_USAGE_NONE to indicate that
+ key_flags have been given but they do not specify any usage. */
return key_usage;
}
diff --git a/include/cipher.h b/include/cipher.h
index a69c6b38d..dcc304521 100644
--- a/include/cipher.h
+++ b/include/cipher.h
@@ -58,6 +58,7 @@
#define PUBKEY_USAGE_CERT 4 /* key is also good to certify other keys*/
#define PUBKEY_USAGE_AUTH 8 /* key is good for authentication */
#define PUBKEY_USAGE_UNKNOWN 128 /* key has an unknown usage bit */
+#define PUBKEY_USAGE_NONE 256 /* No usage given. */
#define DIGEST_ALGO_MD5 1
#define DIGEST_ALGO_SHA1 2