From 1a72b8d85895fc9ffba0d8f6a9240634ce6ee8dc Mon Sep 17 00:00:00 2001
From: Jonathan McDowell <noodles@earth.li>
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/<a href=\"lookup?op=get&"
 				"search=%016" PRIX64 "\">%08" PRIX64
 				"</a> %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.5