summaryrefslogtreecommitdiff
path: root/lib/nettle/mp_unsigned_bin.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/nettle/mp_unsigned_bin.c')
-rw-r--r--lib/nettle/mp_unsigned_bin.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/lib/nettle/mp_unsigned_bin.c b/lib/nettle/mp_unsigned_bin.c
new file mode 100644
index 0000000000..0da8bba32e
--- /dev/null
+++ b/lib/nettle/mp_unsigned_bin.c
@@ -0,0 +1,28 @@
+#include "ecc.h"
+
+unsigned long mp_unsigned_bin_size(mpz_t a)
+{
+ unsigned long t;
+ assert(a != NULL);
+
+ t = mpz_sizeinbase(a, 2);
+ if (mpz_cmp_ui((a), 0) == 0) return 0;
+ return (t>>3) + ((t&7)?1:0);
+}
+
+int mp_to_unsigned_bin(mpz_t a, unsigned char *b)
+{
+ assert(a != NULL);
+ assert(b != NULL);
+ mpz_export(b, NULL, 1, 1, 1, 0, a);
+
+ return 0;
+}
+
+int mp_read_unsigned_bin(mpz_t a, unsigned char *b, unsigned long len)
+{
+ assert(a != NULL);
+ assert(b != NULL);
+ mpz_import(a, len, 1, 1, 1, 0, b);
+ return 0;
+}