From c50c11d5751f46ddb38244a5a07d8274e1e10922 Mon Sep 17 00:00:00 2001 From: NIIBE Yutaka Date: Mon, 8 Dec 2014 10:21:55 +0900 Subject: scd: Fix for EdDSA. * scd/app-openpgp.c (get_algo_byte): It catches 22. (store_fpr): It's MPI usually, but it's opaque bytes for EdDSA. --- scd/app-openpgp.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/scd/app-openpgp.c b/scd/app-openpgp.c index e27a2cb36..663b7d323 100644 --- a/scd/app-openpgp.c +++ b/scd/app-openpgp.c @@ -752,7 +752,7 @@ get_algo_byte (key_type_t key_type) else if (key_type == KEY_TYPE_ECDH) return 18; else if (key_type == KEY_TYPE_EDDSA) - return 105; /* (experimental) */ + return 22; else return 1; /* RSA */ } @@ -790,8 +790,10 @@ store_fpr (app_t app, int keynumber, u32 timestamp, { m[i] = va_arg (ap, const unsigned char *); mlen[i] = va_arg (ap, size_t); - for (; mlen[i] && !*m[i]; mlen[i]--, m[i]++) /* strip leading zeroes */ - ; + if (key_type != KEY_TYPE_EDDSA) + /* strip off leading zeroes */ + for (; mlen[i] && !*m[i]; mlen[i]--, m[i]++) + ; if (key_type == KEY_TYPE_RSA || i == 1) n += 2; n += mlen[i]; -- cgit v1.2.3