aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNIIBE Yutaka <[email protected]>2014-12-08 01:21:55 +0000
committerNIIBE Yutaka <[email protected]>2014-12-08 01:21:55 +0000
commitc50c11d5751f46ddb38244a5a07d8274e1e10922 (patch)
tree2d607f113aee562e56bcd50ada51069787738f33
parentDocument no-allow-mark-trusted option (diff)
downloadgnupg-c50c11d5751f46ddb38244a5a07d8274e1e10922.tar.gz
gnupg-c50c11d5751f46ddb38244a5a07d8274e1e10922.zip
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.
Diffstat (limited to '')
-rw-r--r--scd/app-openpgp.c8
1 files 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];