From 93bcc87bd0d90cfeb6fde59e64aaa7d2a4ba8524 Mon Sep 17 00:00:00 2001 From: NIIBE Yutaka Date: Tue, 19 Nov 2019 19:06:22 +0900 Subject: Add sos_read. Signed-off-by: NIIBE Yutaka --- g10/build-packet.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'g10/build-packet.c') diff --git a/g10/build-packet.c b/g10/build-packet.c index 06f3884e6..c1e5137cd 100644 --- a/g10/build-packet.c +++ b/g10/build-packet.c @@ -623,8 +623,11 @@ 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 + else if (pk->pubkey_algo == PUBKEY_ALGO_EDDSA + || pk->pubkey_algo == PUBKEY_ALGO_ECDH) err = gpg_sos_write (a, pk->pkey[i], NULL); + else + err = gpg_mpi_write (a, pk->pkey[i], NULL); if (err) goto leave; } @@ -865,6 +868,8 @@ do_pubkey_enc( IOBUF out, int ctb, PKT_pubkey_enc *enc ) { if (enc->pubkey_algo == PUBKEY_ALGO_ECDH && i == 1) rc = gpg_mpi_write_nohdr (a, enc->data[i]); + else if (enc->pubkey_algo == PUBKEY_ALGO_ECDH) + rc = gpg_sos_write (a, enc->data[i], NULL); else rc = gpg_mpi_write (a, enc->data[i], NULL); } @@ -1749,7 +1754,10 @@ do_signature( IOBUF out, int ctb, PKT_signature *sig ) rc = gpg_sos_write (a, sig->data[i], NULL); else for (i=0; i < n && !rc ; i++ ) - rc = gpg_mpi_write (a, sig->data[i], NULL); + if (sig->pubkey_algo == PUBKEY_ALGO_EDDSA) + rc = gpg_sos_write (a, sig->data[i], NULL); + else + rc = gpg_mpi_write (a, sig->data[i], NULL); if (!rc) { -- cgit v1.2.3