From da5e0bc31b4c6f16ed5ff9b35063f3b03eb7ff16 Mon Sep 17 00:00:00 2001 From: NIIBE Yutaka Date: Tue, 9 Jun 2020 15:45:51 +0900 Subject: gpg: Use bytes for ECDH. * g10/ecdh.c (extract_secret_x): Use byte * instead of MPI. (prepare_ecdh_with_shared_point): Use char * instead of MPI. (pk_ecdh_encrypt_with_shared_point): Likewise. (pk_ecdh_decrypt): Likewise. * g10/pkglue.h (pk_ecdh_encrypt_with_shared_point, pk_ecdh_decrypt): Change declaration. * g10/pkglue.c (get_data_from_sexp): New. (pk_encrypt): Use get_data_from_sexp instead of get_mpi_from_sexp. Follow the change of pk_ecdh_encrypt_with_shared_point. * g10/pubkey-enc.c (get_it): Follow the change of pk_ecdh_decrypt. Signed-off-by: NIIBE Yutaka --- g10/pubkey-enc.c | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) (limited to 'g10/pubkey-enc.c') diff --git a/g10/pubkey-enc.c b/g10/pubkey-enc.c index 9ec86df3e..38353c812 100644 --- a/g10/pubkey-enc.c +++ b/g10/pubkey-enc.c @@ -278,20 +278,11 @@ get_it (ctrl_t ctrl, if (sk->pubkey_algo == PUBKEY_ALGO_ECDH) { - gcry_mpi_t shared_mpi; gcry_mpi_t decoded; /* At the beginning the frame are the bytes of shared point MPI. */ - err = gcry_mpi_scan (&shared_mpi, GCRYMPI_FMT_USG, frame, nframe, NULL); - if (err) - { - err = gpg_error (GPG_ERR_WRONG_SECKEY); - goto leave; - } - err = pk_ecdh_decrypt (&decoded, fp, enc->data[1]/*encr data as an MPI*/, - shared_mpi, sk->pkey); - mpi_release (shared_mpi); + frame, nframe, sk->pkey); if(err) goto leave; -- cgit v1.2.3