From 2141b7112d237221280781bed2b2bb6efadc963e Mon Sep 17 00:00:00 2001
From: Florian Pritz <bluewind@xinu.at>
Date: Thu, 20 Oct 2011 20:39:28 +0200
Subject: add key algo to import msg

Signed-off-by: Florian Pritz <bluewind@xinu.at>
Signed-off-by: Dan McGee <dan@archlinux.org>
---
 lib/libalpm/alpm.h    |  1 +
 lib/libalpm/signing.c | 20 ++++++++++++++++++++
 src/pacman/callback.c |  6 ++++--
 3 files changed, 25 insertions(+), 2 deletions(-)

diff --git a/lib/libalpm/alpm.h b/lib/libalpm/alpm.h
index f25d4c44..1751c81c 100644
--- a/lib/libalpm/alpm.h
+++ b/lib/libalpm/alpm.h
@@ -228,6 +228,7 @@ typedef struct _alpm_pgpkey_t {
 	alpm_time_t expires;
 	unsigned int length;
 	unsigned int revoked;
+	char pubkey_algo;
 } alpm_pgpkey_t;
 
 /** Signature result. Contains the key, status, and validity of a given
diff --git a/lib/libalpm/signing.c b/lib/libalpm/signing.c
index dbdd350b..0bef4451 100644
--- a/lib/libalpm/signing.c
+++ b/lib/libalpm/signing.c
@@ -272,6 +272,26 @@ static int key_search(alpm_handle_t *handle, const char *fpr,
 	pgpkey->expires = key->subkeys->expires;
 	pgpkey->length = key->subkeys->length;
 	pgpkey->revoked = key->subkeys->revoked;
+
+	switch (key->subkeys->pubkey_algo) {
+		case GPGME_PK_RSA:
+		case GPGME_PK_RSA_E:
+		case GPGME_PK_RSA_S:
+			pgpkey->pubkey_algo = 'R';
+			break;
+
+		case GPGME_PK_DSA:
+			pgpkey->pubkey_algo = 'D';
+			break;
+
+		case GPGME_PK_ELG_E:
+		case GPGME_PK_ELG:
+		case GPGME_PK_ECDSA:
+		case GPGME_PK_ECDH:
+			pgpkey->pubkey_algo = 'E';
+			break;
+	}
+
 	ret = 1;
 
 error:
diff --git a/src/pacman/callback.c b/src/pacman/callback.c
index 4b2ad2aa..2d989ba9 100644
--- a/src/pacman/callback.c
+++ b/src/pacman/callback.c
@@ -350,11 +350,13 @@ void cb_question(alpm_question_t event, void *data1, void *data2,
 				const char *revoked = "";
 				time_t time = (time_t)key->created;
 				strftime(created, 12, "%Y-%m-%d", localtime(&time));
+
 				if (key->revoked) {
 					revoked = " (revoked)";
 				}
-				*response = yesno(_(":: Import PGP key %d/%s, \"%s\", created: %s%s?"),
-						key->length, key->fingerprint, key->uid, created, revoked);
+
+				*response = yesno(_(":: Import PGP key %d%c/%s, \"%s\", created: %s%s?"),
+						key->length, key->pubkey_algo, key->fingerprint, key->uid, created, revoked);
 			}
 			break;
 	}
-- 
cgit v1.2.3-54-g00ecf