26 #ifndef MBEDTLS_BIGNUM_H
27 #define MBEDTLS_BIGNUM_H
29 #if !defined(MBEDTLS_CONFIG_FILE)
32 #include MBEDTLS_CONFIG_FILE
38 #if defined(MBEDTLS_FS_IO)
42 #define MBEDTLS_ERR_MPI_FILE_IO_ERROR -0x0002
43 #define MBEDTLS_ERR_MPI_BAD_INPUT_DATA -0x0004
44 #define MBEDTLS_ERR_MPI_INVALID_CHARACTER -0x0006
45 #define MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL -0x0008
46 #define MBEDTLS_ERR_MPI_NEGATIVE_VALUE -0x000A
47 #define MBEDTLS_ERR_MPI_DIVISION_BY_ZERO -0x000C
48 #define MBEDTLS_ERR_MPI_NOT_ACCEPTABLE -0x000E
49 #define MBEDTLS_ERR_MPI_ALLOC_FAILED -0x0010
51 #define MBEDTLS_MPI_CHK(f) do { if( ( ret = f ) != 0 ) goto cleanup; } while( 0 )
56 #define MBEDTLS_MPI_MAX_LIMBS 10000
58 #if !defined(MBEDTLS_MPI_WINDOW_SIZE)
68 #define MBEDTLS_MPI_WINDOW_SIZE 6
71 #if !defined(MBEDTLS_MPI_MAX_SIZE)
79 #define MBEDTLS_MPI_MAX_SIZE 1024
82 #define MBEDTLS_MPI_MAX_BITS ( 8 * MBEDTLS_MPI_MAX_SIZE )
102 #define MBEDTLS_MPI_MAX_BITS_SCALE100 ( 100 * MBEDTLS_MPI_MAX_BITS )
103 #define MBEDTLS_LN_2_DIV_LN_10_SCALE100 332
104 #define MBEDTLS_MPI_RW_BUFFER_SIZE ( ((MBEDTLS_MPI_MAX_BITS_SCALE100 + MBEDTLS_LN_2_DIV_LN_10_SCALE100 - 1) / MBEDTLS_LN_2_DIV_LN_10_SCALE100) + 10 + 6 )
116 #if !defined(MBEDTLS_HAVE_INT32)
117 #if defined(_MSC_VER) && defined(_M_AMD64)
119 #if !defined(MBEDTLS_HAVE_INT64)
120 #define MBEDTLS_HAVE_INT64
124 #elif defined(__GNUC__) && ( \
125 defined(__amd64__) || defined(__x86_64__) || \
126 defined(__ppc64__) || defined(__powerpc64__) || \
127 defined(__ia64__) || defined(__alpha__) || \
128 ( defined(__sparc__) && defined(__arch64__) ) || \
129 defined(__s390x__) || defined(__mips64) )
130 #if !defined(MBEDTLS_HAVE_INT64)
131 #define MBEDTLS_HAVE_INT64
135 #if !defined(MBEDTLS_NO_UDBL_DIVISION)
138 #define MBEDTLS_HAVE_UDBL
140 #elif defined(__ARMCC_VERSION) && defined(__aarch64__)
145 #if !defined(MBEDTLS_HAVE_INT64)
146 #define MBEDTLS_HAVE_INT64
150 #if !defined(MBEDTLS_NO_UDBL_DIVISION)
153 #define MBEDTLS_HAVE_UDBL
155 #elif defined(MBEDTLS_HAVE_INT64)
162 #if !defined(MBEDTLS_HAVE_INT64)
164 #if !defined(MBEDTLS_HAVE_INT32)
165 #define MBEDTLS_HAVE_INT32
169 #if !defined(MBEDTLS_NO_UDBL_DIVISION)
171 #define MBEDTLS_HAVE_UDBL
434 char *buf,
size_t buflen,
size_t *olen );
436 #if defined(MBEDTLS_FS_IO)
476 int radix, FILE *fout );
640 mbedtls_mpi_sint b );
655 mbedtls_mpi_sint b );
686 mbedtls_mpi_uint b );
728 mbedtls_mpi_sint b );
767 mbedtls_mpi_sint b );
817 int (*f_rng)(
void *,
unsigned char *,
size_t),
853 #if !defined(MBEDTLS_DEPRECATED_REMOVED)
854 #if defined(MBEDTLS_DEPRECATED_WARNING)
855 #define MBEDTLS_DEPRECATED __attribute__((deprecated))
857 #define MBEDTLS_DEPRECATED
879 int (*f_rng)(
void *,
unsigned char *,
size_t),
881 #undef MBEDTLS_DEPRECATED
912 int (*f_rng)(
void *,
unsigned char *,
size_t),
945 int (*f_rng)(
void *,
unsigned char *,
size_t),
948 #if defined(MBEDTLS_SELF_TEST)