diff options
author | NIIBE Yutaka <gniibe@fsij.org> | 2020-03-11 16:09:07 +0900 |
---|---|---|
committer | Werner Koch <wk@gnupg.org> | 2020-07-30 10:23:09 +0200 |
commit | d9103048d11bcd8c9cce42dd450b394acd8949ac (patch) | |
tree | e3666c6abbca928b88a7e5ca75c95dd632ae36f1 | |
parent | c917ebb48d1b784f6f29bc5b292bab78469aabfb (diff) | |
download | libgcrypt-d9103048d11bcd8c9cce42dd450b394acd8949ac.tar.gz |
mpi: Support opaque MPI with gcry_mpi_print.
* mpi/mpicoder.c (_gcry_mpi_get_buffer): Return the bytes as-is.
--
GnuPG-bug-id: 4872
Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
Backport-from-master: b4b04ae6c2e55bc2b24efc663d1eeaa0b3613f4c
-rw-r--r-- | mpi/mpicoder.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/mpi/mpicoder.c b/mpi/mpicoder.c index 4c63a147..a133421e 100644 --- a/mpi/mpicoder.c +++ b/mpi/mpicoder.c @@ -298,7 +298,18 @@ byte * _gcry_mpi_get_buffer (gcry_mpi_t a, unsigned int fill_le, unsigned int *r_nbytes, int *sign) { - return do_get_buffer (a, fill_le, 0, r_nbytes, sign, 0); + if (mpi_get_flag (a, GCRYMPI_FLAG_OPAQUE)) + { + unsigned int nbits; + byte *p = _gcry_mpi_get_opaque_copy (a, &nbits); + + if (r_nbytes) + *r_nbytes = (nbits+7)/8; + + return p; + } + else + return do_get_buffer (a, fill_le, 0, r_nbytes, sign, 0); } byte * |