summaryrefslogtreecommitdiff
path: root/mpi/mpiutil.c
diff options
context:
space:
mode:
authorWerner Koch <wk@gnupg.org>2013-09-07 10:06:46 +0200
committerWerner Koch <wk@gnupg.org>2013-09-16 14:42:37 +0200
commit44a2c34e90ed7de149952398787906d8823b636b (patch)
treeb8ee249bb3669ba9b7ec87152d09f5c2340a48d2 /mpi/mpiutil.c
parent8ebc94d11a1eb93f2365c93f555e958700fdfbd4 (diff)
downloadlibgcrypt-44a2c34e90ed7de149952398787906d8823b636b.tar.gz
mpi: Add internal convenience function.
* mpi/mpiutil.c (_gcry_mpi_get_opaque_copy): New. Signed-off-by: Werner Koch <wk@gnupg.org>
Diffstat (limited to 'mpi/mpiutil.c')
-rw-r--r--mpi/mpiutil.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/mpi/mpiutil.c b/mpi/mpiutil.c
index 433dda6b..57fe72a7 100644
--- a/mpi/mpiutil.c
+++ b/mpi/mpiutil.c
@@ -291,6 +291,22 @@ gcry_mpi_get_opaque( gcry_mpi_t a, unsigned int *nbits )
}
+void *
+_gcry_mpi_get_opaque_copy (gcry_mpi_t a, unsigned int *nbits)
+{
+ const void *s;
+ void *d;
+ unsigned int n;
+
+ s = gcry_mpi_get_opaque (a, nbits);
+ if (!s && nbits)
+ return NULL;
+ n = (*nbits+7)/8;
+ d = gcry_is_secure (s)? gcry_malloc_secure (n) : gcry_malloc (n);
+ memcpy (d, s, n);
+ return d;
+}
+
/****************
* Note: This copy function should not interpret the MPI
* but copy it transparently.