24 #ifndef MBEDTLS_BIGNUM_H
25 #define MBEDTLS_BIGNUM_H
27 #if !defined(MBEDTLS_CONFIG_FILE)
30 #include MBEDTLS_CONFIG_FILE
36 #if defined(MBEDTLS_FS_IO)
40 #define MBEDTLS_ERR_MPI_FILE_IO_ERROR -0x0002
41 #define MBEDTLS_ERR_MPI_BAD_INPUT_DATA -0x0004
42 #define MBEDTLS_ERR_MPI_INVALID_CHARACTER -0x0006
43 #define MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL -0x0008
44 #define MBEDTLS_ERR_MPI_NEGATIVE_VALUE -0x000A
45 #define MBEDTLS_ERR_MPI_DIVISION_BY_ZERO -0x000C
46 #define MBEDTLS_ERR_MPI_NOT_ACCEPTABLE -0x000E
47 #define MBEDTLS_ERR_MPI_ALLOC_FAILED -0x0010
49 #define MBEDTLS_MPI_CHK(f) do { if( ( ret = f ) != 0 ) goto cleanup; } while( 0 )
54 #define MBEDTLS_MPI_MAX_LIMBS 10000
56 #if !defined(MBEDTLS_MPI_WINDOW_SIZE)
66 #define MBEDTLS_MPI_WINDOW_SIZE 6
69 #if !defined(MBEDTLS_MPI_MAX_SIZE)
77 #define MBEDTLS_MPI_MAX_SIZE 1024
80 #define MBEDTLS_MPI_MAX_BITS ( 8 * MBEDTLS_MPI_MAX_SIZE )
100 #define MBEDTLS_MPI_MAX_BITS_SCALE100 ( 100 * MBEDTLS_MPI_MAX_BITS )
101 #define MBEDTLS_LN_2_DIV_LN_10_SCALE100 332
102 #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 )
114 #if !defined(MBEDTLS_HAVE_INT32)
115 #if defined(_MSC_VER) && defined(_M_AMD64)
117 #if !defined(MBEDTLS_HAVE_INT64)
118 #define MBEDTLS_HAVE_INT64
122 #elif defined(__GNUC__) && ( \
123 defined(__amd64__) || defined(__x86_64__) || \
124 defined(__ppc64__) || defined(__powerpc64__) || \
125 defined(__ia64__) || defined(__alpha__) || \
126 ( defined(__sparc__) && defined(__arch64__) ) || \
127 defined(__s390x__) || defined(__mips64) )
128 #if !defined(MBEDTLS_HAVE_INT64)
129 #define MBEDTLS_HAVE_INT64
133 #if !defined(MBEDTLS_NO_UDBL_DIVISION)
136 #define MBEDTLS_HAVE_UDBL
138 #elif defined(__ARMCC_VERSION) && defined(__aarch64__)
143 #if !defined(MBEDTLS_HAVE_INT64)
144 #define MBEDTLS_HAVE_INT64
148 #if !defined(MBEDTLS_NO_UDBL_DIVISION)
151 #define MBEDTLS_HAVE_UDBL
153 #elif defined(MBEDTLS_HAVE_INT64)
160 #if !defined(MBEDTLS_HAVE_INT64)
162 #if !defined(MBEDTLS_HAVE_INT32)
163 #define MBEDTLS_HAVE_INT32
167 #if !defined(MBEDTLS_NO_UDBL_DIVISION)
169 #define MBEDTLS_HAVE_UDBL
381 char *buf,
size_t buflen,
size_t *olen );
383 #if defined(MBEDTLS_FS_IO)
699 int (*f_rng)(
void *,
unsigned char *,
size_t),
728 #if !defined(MBEDTLS_DEPRECATED_REMOVED)
729 #if defined(MBEDTLS_DEPRECATED_WARNING)
730 #define MBEDTLS_DEPRECATED __attribute__((deprecated))
732 #define MBEDTLS_DEPRECATED
750 int (*f_rng)(
void *,
unsigned char *,
size_t),
752 #undef MBEDTLS_DEPRECATED
779 int (*f_rng)(
void *,
unsigned char *,
size_t),
807 int (*f_rng)(
void *,
unsigned char *,
size_t),