10 #ifndef BOTAN_MP_CORE_OPS_H__
11 #define BOTAN_MP_CORE_OPS_H__
13 #include <botan/bigint.h>
14 #include <botan/mp_types.h>
36 word
bigint_cnd_add(word cnd, word x[],
const word y[],
size_t size);
43 word
bigint_cnd_sub(word cnd, word x[],
const word y[],
size_t size);
61 const word y[],
size_t y_size);
67 const word x[],
size_t x_size,
68 const word y[],
size_t y_size);
73 word
bigint_add2_nc(word x[],
size_t x_size,
const word y[],
size_t y_size);
79 const word x[],
size_t x_size,
80 const word y[],
size_t y_size);
86 const word y[],
size_t y_size);
97 const word x[],
size_t x_size,
98 const word y[],
size_t y_size);
104 size_t word_shift,
size_t bit_shift);
107 size_t word_shift,
size_t bit_shift);
109 void bigint_shl2(word y[],
const word x[],
size_t x_size,
110 size_t word_shift,
size_t bit_shift);
112 void bigint_shr2(word y[],
const word x[],
size_t x_size,
113 size_t word_shift,
size_t bit_shift);
119 void bigint_linmul3(word z[],
const word x[],
size_t x_size, word y);
132 const word p[],
size_t p_size,
140 const word p[],
size_t p_size, word p_dash,
147 const word p[],
size_t p_size, word p_dash,
153 int32_t
bigint_cmp(
const word x[],
size_t x_size,
154 const word y[],
size_t y_size);
186 void bigint_sqr(word z[],
size_t z_size, word workspace[],
187 const word x[],
size_t x_size,
size_t x_sw);
void bigint_shr1(word x[], size_t x_size, size_t word_shift, size_t bit_shift)
void bigint_sub2_rev(word x[], const word y[], size_t y_size)
void bigint_shr2(word y[], const word x[], size_t x_size, size_t word_shift, size_t bit_shift)
int32_t bigint_cmp(const word x[], size_t x_size, const word y[], size_t y_size)
word bigint_sub2(word x[], size_t x_size, const word y[], size_t y_size)
void bigint_linmul2(word x[], size_t x_size, word y)
word bigint_add3_nc(word z[], const word x[], size_t x_size, const word y[], size_t y_size)
void bigint_comba_mul4(word z[8], const word x[4], const word y[4])
word bigint_sub3(word z[], const word x[], size_t x_size, const word y[], size_t y_size)
word bigint_divop(word n1, word n0, word d)
void bigint_comba_mul9(word z[18], const word x[9], const word y[9])
word bigint_cnd_sub(word cnd, word x[], const word y[], size_t size)
void bigint_linmul3(word z[], const word x[], size_t x_size, word y)
void bigint_comba_sqr16(word z[32], const word x[16])
void bigint_monty_sqr(BigInt &z, const BigInt &x, const word p[], size_t p_size, word p_dash, word workspace[])
void bigint_sqr(word z[], size_t z_size, word workspace[], const word x[], size_t x_size, size_t x_sw)
void bigint_monty_mul(BigInt &z, const BigInt &x, const BigInt &y, const word p[], size_t p_size, word p_dash, word workspace[])
word bigint_cnd_add(word cnd, word x[], const word y[], size_t size)
word bigint_add2_nc(word x[], size_t x_size, const word y[], size_t y_size)
void bigint_comba_sqr9(word z[18], const word x[9])
void bigint_cnd_abs(word cnd, word x[], size_t size)
void bigint_shl2(word y[], const word x[], size_t x_size, size_t word_shift, size_t bit_shift)
void bigint_shl1(word x[], size_t x_size, size_t word_shift, size_t bit_shift)
void bigint_comba_mul8(word z[16], const word x[8], const word y[8])
void bigint_comba_sqr8(word z[16], const word x[8])
void bigint_add2(word x[], size_t x_size, const word y[], size_t y_size)
void bigint_comba_mul16(word z[32], const word x[16], const word y[16])
void bigint_cnd_swap(word cnd, word x[], word y[], size_t size)
void bigint_mul(BigInt &z, const BigInt &x, const BigInt &y, word workspace[])
void bigint_monty_redc(word z[], const word p[], size_t p_size, word p_dash, word workspace[])
void bigint_comba_mul6(word z[12], const word x[6], const word y[6])
void bigint_comba_sqr4(word z[8], const word x[4])
void bigint_comba_sqr6(word z[12], const word x[6])
void bigint_add3(word z[], const word x[], size_t x_size, const word y[], size_t y_size)
word bigint_modop(word n1, word n0, word d)
const size_t MP_WORD_BITS