diff options
author | NIIBE Yutaka <[email protected]> | 2019-11-22 07:24:50 +0000 |
---|---|---|
committer | NIIBE Yutaka <[email protected]> | 2020-05-04 01:57:08 +0000 |
commit | 0e40b033b8533d1cb80cad0110f3e1233a1b3a66 (patch) | |
tree | d9db7f1209d89cd11bfc85dfda07e3082309ba8b | |
parent | gpg: Use opaque MPI for shared point. (diff) | |
download | gnupg-0e40b033b8533d1cb80cad0110f3e1233a1b3a66.tar.gz gnupg-0e40b033b8533d1cb80cad0110f3e1233a1b3a66.zip |
gpg: Fix for the condition calling gpg_sos_write.
Signed-off-by: NIIBE Yutaka <[email protected]>
-rw-r--r-- | g10/build-packet.c | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/g10/build-packet.c b/g10/build-packet.c index c1e5137cd..e6b09fb11 100644 --- a/g10/build-packet.c +++ b/g10/build-packet.c @@ -742,8 +742,17 @@ do_key (iobuf_t out, int ctb, PKT_public_key *pk) for (j=i; j < nskey; j++ ) { - if ((err = gpg_sos_write (NULL, pk->pkey[j], &n))) - goto leave; + if (pk->pubkey_algo == PUBKEY_ALGO_EDDSA + || pk->pubkey_algo == PUBKEY_ALGO_ECDH) + { + if ((err = gpg_sos_write (NULL, pk->pkey[j], &n))) + goto leave; + } + else + { + if ( (err = gpg_mpi_write (a, pk->pkey[i], NULL))) + goto leave; + } skbytes += n; } @@ -751,8 +760,15 @@ do_key (iobuf_t out, int ctb, PKT_public_key *pk) } for ( ; i < nskey; i++ ) - if ( (err = gpg_sos_write (a, pk->pkey[i], NULL))) - goto leave; + if (pk->pubkey_algo == PUBKEY_ALGO_EDDSA + || pk->pubkey_algo == PUBKEY_ALGO_ECDH) + { + if ( (err = gpg_sos_write (a, pk->pkey[i], NULL))) + goto leave; + } + else + if ( (err = gpg_mpi_write (a, pk->pkey[i], NULL))) + goto leave; write_16 (a, ski->csum ); } |