aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNIIBE Yutaka <[email protected]>2020-05-04 02:56:28 +0000
committerNIIBE Yutaka <[email protected]>2020-05-04 02:56:28 +0000
commita9b31fc3e41be3c67d2c1842383ea3e676fe7942 (patch)
treea61bfda662dd8e59e29c28fa70010bd0b6fd0e5e
parentecc-sos: public key is MPI with the prefix 0x40. (diff)
downloadgnupg-a9b31fc3e41be3c67d2c1842383ea3e676fe7942.tar.gz
gnupg-a9b31fc3e41be3c67d2c1842383ea3e676fe7942.zip
ecc-sos: Fix parsing key for EdDSA/ECDH.
* g10/parse-packet.c (parse_key): Read by sos_read. Signed-off-by: NIIBE Yutaka <[email protected]>
-rw-r--r--g10/parse-packet.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/g10/parse-packet.c b/g10/parse-packet.c
index 041db2cae..003143768 100644
--- a/g10/parse-packet.c
+++ b/g10/parse-packet.c
@@ -2591,7 +2591,11 @@ parse_key (IOBUF inp, int pkttype, unsigned long pktlen,
else
{
unsigned int n = pktlen;
- pk->pkey[i] = mpi_read (inp, &n, 0);
+ if (algorithm == PUBKEY_ALGO_EDDSA
+ || algorithm == PUBKEY_ALGO_ECDH)
+ pk->pkey[i] = sos_read (inp, &n, 0);
+ else
+ pk->pkey[i] = mpi_read (inp, &n, 0);
pktlen -= n;
if (!pk->pkey[i])
err = gpg_error (GPG_ERR_INV_PACKET);