diff options
author | NIIBE Yutaka <[email protected]> | 2014-12-08 01:21:55 +0000 |
---|---|---|
committer | NIIBE Yutaka <[email protected]> | 2014-12-08 01:21:55 +0000 |
commit | c50c11d5751f46ddb38244a5a07d8274e1e10922 (patch) | |
tree | 2d607f113aee562e56bcd50ada51069787738f33 | |
parent | Document no-allow-mark-trusted option (diff) | |
download | gnupg-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.c | 8 |
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]; |