From 1a72b8d85895fc9ffba0d8f6a9240634ce6ee8dc Mon Sep 17 00:00:00 2001 From: Jonathan McDowell Date: Sun, 2 Nov 2008 13:15:29 +0000 Subject: [PATCH] Add support for displaying Elgamal encrypt or sign keys (deprecated) These keys are no longer supported as they're cryptographically weak, but old versions exist and we should display them properly. --- keyindex.c | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/keyindex.c b/keyindex.c index fead60b..d2094d5 100644 --- a/keyindex.c +++ b/keyindex.c @@ -201,6 +201,7 @@ int key_index(struct openpgp_publickey *keys, bool verbose, bool fingerprint, struct tm *created = NULL; time_t created_time = 0; int type = 0; + char typech; int length = 0; char buf[1024]; uint64_t keyid; @@ -235,13 +236,30 @@ int key_index(struct openpgp_publickey *keys, bool verbose, bool fingerprint, keyid = get_keyid(keys); + switch (type) { + case 1: + typech = 'R'; + break; + case 16: + typech = 'g'; + break; + case 17: + typech = 'D'; + break; + case 20: + typech = 'G'; + break; + default: + typech = '?'; + break; + } + if (html) { printf("pub %5d%c/%08" PRIX64 " %04d/%02d/%02d ", length, - (type == 1) ? 'R' : ((type == 16) ? 'g' : - ((type == 17) ? 'D' : '?')), + typech, keyid, keyid & 0xFFFFFFFF, created->tm_year + 1900, @@ -250,8 +268,7 @@ int key_index(struct openpgp_publickey *keys, bool verbose, bool fingerprint, } else { printf("pub %5d%c/%08" PRIX64 " %04d/%02d/%02d ", length, - (type == 1) ? 'R' : ((type == 16) ? 'g' : - ((type == 17) ? 'D' : '?')), + typech, keyid & 0xFFFFFFFF, created->tm_year + 1900, created->tm_mon + 1, -- 2.39.2