summaryrefslogtreecommitdiffhomepage
path: root/libtommath/bn_mp_import.c
diff options
context:
space:
mode:
authorMatt Johnston <matt@ucc.asn.au>2020-10-15 19:55:15 +0800
committerMatt Johnston <matt@ucc.asn.au>2020-10-15 19:55:15 +0800
commit0e3e8db5bfca0c579be55e7580a46c593c1384be (patch)
tree2b1a718f633fb95c1f2d689a591cf9e8642697f3 /libtommath/bn_mp_import.c
parent78e17f6ee9a944430da3e517ee1fe384fd6b275b (diff)
parent17873e8c922eded2cec86184673a6d110df6403f (diff)
merge from main
--HG-- branch : fuzz
Diffstat (limited to 'libtommath/bn_mp_import.c')
-rw-r--r--libtommath/bn_mp_import.c73
1 files changed, 0 insertions, 73 deletions
diff --git a/libtommath/bn_mp_import.c b/libtommath/bn_mp_import.c
deleted file mode 100644
index 2e26261..0000000
--- a/libtommath/bn_mp_import.c
+++ /dev/null
@@ -1,73 +0,0 @@
-#include <tommath_private.h>
-#ifdef BN_MP_IMPORT_C
-/* LibTomMath, multiple-precision integer library -- Tom St Denis
- *
- * LibTomMath is a library that provides multiple-precision
- * integer arithmetic as well as number theoretic functionality.
- *
- * The library was designed directly after the MPI library by
- * Michael Fromberger but has been written from scratch with
- * additional optimizations in place.
- *
- * The library is free for all purposes without any express
- * guarantee it works.
- *
- * Tom St Denis, tstdenis82@gmail.com, http://libtom.org
- */
-
-/* based on gmp's mpz_import.
- * see http://gmplib.org/manual/Integer-Import-and-Export.html
- */
-int mp_import(mp_int* rop, size_t count, int order, size_t size,
- int endian, size_t nails, const void* op) {
- int result;
- size_t odd_nails, nail_bytes, i, j;
- unsigned char odd_nail_mask;
-
- mp_zero(rop);
-
- if (endian == 0) {
- union {
- unsigned int i;
- char c[4];
- } lint;
- lint.i = 0x01020304;
-
- endian = (lint.c[0] == 4) ? -1 : 1;
- }
-
- odd_nails = (nails % 8);
- odd_nail_mask = 0xff;
- for (i = 0; i < odd_nails; ++i) {
- odd_nail_mask ^= (1 << (7 - i));
- }
- nail_bytes = nails / 8;
-
- for (i = 0; i < count; ++i) {
- for (j = 0; j < (size - nail_bytes); ++j) {
- unsigned char byte = *(
- (unsigned char*)op +
- (((order == 1) ? i : ((count - 1) - i)) * size) +
- ((endian == 1) ? (j + nail_bytes) : (((size - 1) - j) - nail_bytes))
- );
-
- if (
- (result = mp_mul_2d(rop, ((j == 0) ? (8 - odd_nails) : 8), rop)) != MP_OKAY) {
- return result;
- }
-
- rop->dp[0] |= (j == 0) ? (byte & odd_nail_mask) : byte;
- rop->used += 1;
- }
- }
-
- mp_clamp(rop);
-
- return MP_OKAY;
-}
-
-#endif
-
-/* ref: $Format:%D$ */
-/* git commit: $Format:%H$ */
-/* commit time: $Format:%ai$ */