diff options
author | Werner Koch <wk@gnupg.org> | 2013-07-17 16:55:02 +0200 |
---|---|---|
committer | Werner Koch <wk@gnupg.org> | 2013-07-17 16:55:02 +0200 |
commit | 364d019e3ffedfcb434576702f73e767cb9389ef (patch) | |
tree | 5d43e0c34d37345d9ed5721b8f18747919e04a9f /tests/mpitests.c | |
parent | 5940e66cbefea3de5924f494f18aed69bb694bff (diff) | |
download | libgcrypt-364d019e3ffedfcb434576702f73e767cb9389ef.tar.gz |
Allow gcry_mpi_dump to print opaque MPIs.
* mpi/mpicoder.c (gcry_mpi_dump): Detect abd print opaque MPIs.
* tests/mpitests.c (test_opaque): New.
(main): Call new test.
Signed-off-by: Werner Koch <wk@gnupg.org>
Diffstat (limited to 'tests/mpitests.c')
-rw-r--r-- | tests/mpitests.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/mpitests.c b/tests/mpitests.c index 5643c1be..432f3e89 100644 --- a/tests/mpitests.c +++ b/tests/mpitests.c @@ -150,6 +150,38 @@ test_const_and_immutable (void) } +static void +test_opaque (void) +{ + gcry_mpi_t a; + char *p; + unsigned int nbits; + + p = gcry_xstrdup ("This is a test buffer"); + a = gcry_mpi_set_opaque (NULL, p, 21*8+1); /* (a non byte aligned length) */ + + if (!gcry_mpi_get_flag (a, GCRYMPI_FLAG_OPAQUE)) + die ("opaque flag not set\n"); + + p = gcry_mpi_get_opaque (a, &nbits); + if (!p) + die ("gcry_mpi_get_opaque returned NULL\n"); + if (nbits != 21*8+1) + die ("gcry_mpi_get_opaque returned a changed bit size\n"); + if (strcmp (p, "This is a test buffer")) + die ("gcry_mpi_get_opaque returned a changed buffer\n"); + + if (verbose) + { + fprintf (stderr, "mpi: "); + gcry_mpi_dump (a); + putc ('\n', stderr); + } + + gcry_mpi_release (a); +} + + static int test_add (void) { @@ -354,6 +386,7 @@ main (int argc, char* argv[]) gcry_control(GCRYCTL_DISABLE_SECMEM); test_const_and_immutable (); + test_opaque (); test_add (); test_sub (); test_mul (); |