diff options
author | NIIBE Yutaka <[email protected]> | 2020-06-04 02:56:46 +0000 |
---|---|---|
committer | NIIBE Yutaka <[email protected]> | 2020-06-04 02:56:46 +0000 |
commit | f71dff40ead85cdac44cdbdc800040dbbfb0769e (patch) | |
tree | 71b36114ab6b76f8da5b38872d0050a624e6c8c0 | |
parent | ecc-sos: Fix handling cleartext secret key from agent. (diff) | |
download | gnupg-f71dff40ead85cdac44cdbdc800040dbbfb0769e.tar.gz gnupg-f71dff40ead85cdac44cdbdc800040dbbfb0769e.zip |
ecc-sos: Apply SOS also to ECDSA.
This causes a regression in:
FAIL: tests/openpgp/ecc.scm
Signed-off-by: NIIBE Yutaka <[email protected]>
-rw-r--r-- | g10/build-packet.c | 10 | ||||
-rw-r--r-- | g10/export.c | 1 | ||||
-rw-r--r-- | g10/parse-packet.c | 6 |
3 files changed, 12 insertions, 5 deletions
diff --git a/g10/build-packet.c b/g10/build-packet.c index 4aed558a9..d07465894 100644 --- a/g10/build-packet.c +++ b/g10/build-packet.c @@ -624,7 +624,9 @@ do_key (iobuf_t out, int ctb, PKT_public_key *pk) || (pk->pubkey_algo == PUBKEY_ALGO_EDDSA && (i == 0)) || (pk->pubkey_algo == PUBKEY_ALGO_ECDH && (i == 0 || i == 2))) err = gpg_mpi_write_nohdr (a, pk->pkey[i]); - else if (pk->pubkey_algo == PUBKEY_ALGO_ECDH) + else if (pk->pubkey_algo == PUBKEY_ALGO_ECDSA + || pk->pubkey_algo == PUBKEY_ALGO_EDDSA + || pk->pubkey_algo == PUBKEY_ALGO_ECDH) err = sos_write (a, pk->pkey[i], NULL); else err = gpg_mpi_write (a, pk->pkey[i], NULL); @@ -742,7 +744,8 @@ do_key (iobuf_t out, int ctb, PKT_public_key *pk) for (j=i; j < nskey; j++ ) { - if (pk->pubkey_algo == PUBKEY_ALGO_EDDSA + if (pk->pubkey_algo == PUBKEY_ALGO_ECDSA + || pk->pubkey_algo == PUBKEY_ALGO_EDDSA || pk->pubkey_algo == PUBKEY_ALGO_ECDH) { if ((err = sos_write (NULL, pk->pkey[j], &n))) @@ -760,7 +763,8 @@ do_key (iobuf_t out, int ctb, PKT_public_key *pk) } for ( ; i < nskey; i++ ) - if (pk->pubkey_algo == PUBKEY_ALGO_EDDSA + if (pk->pubkey_algo == PUBKEY_ALGO_ECDSA + || pk->pubkey_algo == PUBKEY_ALGO_EDDSA || pk->pubkey_algo == PUBKEY_ALGO_ECDH) { if ((err = sos_write (a, pk->pkey[i], NULL))) diff --git a/g10/export.c b/g10/export.c index a021013ac..ba3521f2f 100644 --- a/g10/export.c +++ b/g10/export.c @@ -1024,6 +1024,7 @@ transfer_format_to_openpgp (gcry_sexp_t s_pgp, PKT_public_key *pk) if (!value || !valuelen) goto bad_seckey; if (is_enc + || pk->pubkey_algo == PUBKEY_ALGO_ECDSA || pk->pubkey_algo == PUBKEY_ALGO_EDDSA || pk->pubkey_algo == PUBKEY_ALGO_ECDH) { diff --git a/g10/parse-packet.c b/g10/parse-packet.c index 003143768..14116f062 100644 --- a/g10/parse-packet.c +++ b/g10/parse-packet.c @@ -2591,7 +2591,8 @@ parse_key (IOBUF inp, int pkttype, unsigned long pktlen, else { unsigned int n = pktlen; - if (algorithm == PUBKEY_ALGO_EDDSA + if (algorithm == PUBKEY_ALGO_ECDSA + || algorithm == PUBKEY_ALGO_EDDSA || algorithm == PUBKEY_ALGO_ECDH) pk->pkey[i] = sos_read (inp, &n, 0); else @@ -2907,7 +2908,8 @@ parse_key (IOBUF inp, int pkttype, unsigned long pktlen, goto leave; } n = pktlen; - if (algorithm == PUBKEY_ALGO_EDDSA + if (algorithm == PUBKEY_ALGO_ECDSA + || algorithm == PUBKEY_ALGO_EDDSA || algorithm == PUBKEY_ALGO_ECDH) pk->pkey[i] = sos_read (inp, &n, 0); else |