Botan 3.6.1
Crypto and TLS for C&
mp_core.h File Reference

Internal Header. More...

#include <botan/exceptn.h>
#include <botan/mem_ops.h>
#include <botan/types.h>
#include <botan/internal/ct_utils.h>
#include <botan/internal/mp_asmi.h>
#include <algorithm>
#include <array>
#include <span>

Go to the source code of this file.

Namespaces

namespace  Botan
 

Functions

BOTAN_FUZZER_API void Botan::basecase_mul (word z[], size_t z_size, const word x[], size_t x_size, const word y[], size_t y_size)
 
BOTAN_FUZZER_API void Botan::basecase_sqr (word z[], size_t z_size, const word x[], size_t x_size)
 
template<WordType W, size_t N>
constexpr auto Botan::bigint_add (std::span< W, N > z, std::span< const W, N > x, std::span< const W, N > y) -> W
 
template<WordType W>
constexpr void Botan::bigint_add2 (W x[], size_t x_size, const W y[], size_t y_size)
 
template<WordType W>
constexpr auto Botan::bigint_add2_nc (W x[], size_t x_size, const W y[], size_t y_size) -> W
 
template<WordType W>
constexpr void Botan::bigint_add3 (W z[], const W x[], size_t x_size, const W y[], size_t y_size)
 
template<WordType W>
constexpr auto Botan::bigint_add3_nc (W z[], const W x[], size_t x_size, const W y[], size_t y_size) -> W
 
template<WordType W>
constexpr int32_t Botan::bigint_cmp (const W x[], size_t x_size, const W y[], size_t y_size)
 
template<WordType W>
constexpr void Botan::bigint_cnd_abs (W cnd, W x[], size_t size)
 
template<WordType W>
constexpr W Botan::bigint_cnd_add (W cnd, W x[], const W y[], size_t size)
 
template<WordType W>
constexpr W Botan::bigint_cnd_add (W cnd, W x[], size_t x_size, const W y[], size_t y_size)
 
template<WordType W>
constexpr void Botan::bigint_cnd_add_or_sub (CT::Mask< W > mask, W x[], const W y[], size_t size)
 
template<WordType W>
constexpr auto Botan::bigint_cnd_addsub (CT::Mask< W > mask, W x[], const W y[], const W z[], size_t size) -> W
 
template<WordType W>
constexpr auto Botan::bigint_cnd_sub (W cnd, W x[], const W y[], size_t size) -> W
 
template<WordType W>
constexpr auto Botan::bigint_cnd_sub (W cnd, W x[], size_t x_size, const W y[], size_t y_size) -> W
 
template<WordType W>
constexpr void Botan::bigint_cnd_swap (W cnd, W x[], W y[], size_t size)
 
void Botan::bigint_comba_mul16 (word z[32], const word x[16], const word y[16])
 
void Botan::bigint_comba_mul24 (word z[48], const word x[24], const word y[24])
 
void Botan::bigint_comba_mul4 (word z[8], const word x[4], const word y[4])
 
void Botan::bigint_comba_mul6 (word z[12], const word x[6], const word y[6])
 
void Botan::bigint_comba_mul7 (word z[14], const word x[7], const word y[7])
 
void Botan::bigint_comba_mul8 (word z[16], const word x[8], const word y[8])
 
void Botan::bigint_comba_mul9 (word z[18], const word x[9], const word y[9])
 
void Botan::bigint_comba_sqr16 (word z[32], const word x[16])
 
void Botan::bigint_comba_sqr24 (word z[48], const word x[24])
 
void Botan::bigint_comba_sqr4 (word z[8], const word x[4])
 
void Botan::bigint_comba_sqr6 (word z[12], const word x[6])
 
void Botan::bigint_comba_sqr7 (word z[14], const word x[7])
 
void Botan::bigint_comba_sqr8 (word z[16], const word x[8])
 
void Botan::bigint_comba_sqr9 (word z[18], const word x[9])
 
template<WordType W>
constexpr auto Botan::bigint_ct_is_eq (const W x[], size_t x_size, const W y[], size_t y_size) -> CT::Mask< W >
 
template<WordType W>
constexpr auto Botan::bigint_ct_is_lt (const W x[], size_t x_size, const W y[], size_t y_size, bool lt_or_equal=false) -> CT::Mask< W >
 
template<WordType W>
constexpr auto Botan::bigint_divop_vartime (W n1, W n0, W d) -> W
 
template<WordType W>
constexpr auto Botan::bigint_linmul2 (W x[], size_t x_size, W y) -> W
 
template<WordType W>
constexpr void Botan::bigint_linmul3 (W z[], const W x[], size_t x_size, W y)
 
template<WordType W>
constexpr void Botan::bigint_mod_sub (W t[], const W s[], const W mod[], size_t mod_sw, W ws[])
 
template<size_t N, WordType W>
constexpr void Botan::bigint_mod_sub_n (W t[], const W s[], const W mod[], W ws[])
 
template<WordType W>
constexpr auto Botan::bigint_modop_vartime (W n1, W n0, W d) -> W
 
template<WordType W>
constexpr void Botan::bigint_monty_maybe_sub (size_t N, W z[], W x0, const W x[], const W p[])
 
template<size_t N, WordType W>
constexpr void Botan::bigint_monty_maybe_sub (W z[N], W x0, const W x[N], const W y[N])
 
void Botan::bigint_monty_redc (word z[], const word p[], size_t p_size, word p_dash, word ws[], size_t ws_size)
 
BOTAN_FUZZER_API void Botan::bigint_monty_redc_16 (word z[32], const word p[16], word p_dash, word ws[])
 
BOTAN_FUZZER_API void Botan::bigint_monty_redc_24 (word z[48], const word p[24], word p_dash, word ws[])
 
BOTAN_FUZZER_API void Botan::bigint_monty_redc_32 (word z[64], const word p[32], word p_dash, word ws[])
 
BOTAN_FUZZER_API void Botan::bigint_monty_redc_4 (word z[8], const word p[4], word p_dash, word ws[])
 
BOTAN_FUZZER_API void Botan::bigint_monty_redc_6 (word z[12], const word p[6], word p_dash, word ws[])
 
BOTAN_FUZZER_API void Botan::bigint_monty_redc_8 (word z[16], const word p[8], word p_dash, word ws[])
 
BOTAN_FUZZER_API void Botan::bigint_monty_redc_generic (word z[], size_t z_size, const word p[], size_t p_size, word p_dash, word ws[])
 
void Botan::bigint_mul (word z[], size_t z_size, const word x[], size_t x_size, size_t x_sw, const word y[], size_t y_size, size_t y_sw, word workspace[], size_t ws_size)
 
template<WordType W>
constexpr void Botan::bigint_shl1 (W x[], size_t x_size, size_t x_words, size_t shift)
 
template<WordType W>
constexpr void Botan::bigint_shl2 (W y[], const W x[], size_t x_size, size_t shift)
 
template<WordType W>
constexpr void Botan::bigint_shr1 (W x[], size_t x_size, size_t shift)
 
template<WordType W>
constexpr void Botan::bigint_shr2 (W y[], const W x[], size_t x_size, size_t shift)
 
void Botan::bigint_sqr (word z[], size_t z_size, const word x[], size_t x_size, size_t x_sw, word workspace[], size_t ws_size)
 
template<WordType W>
constexpr auto Botan::bigint_sub2 (W x[], size_t x_size, const W y[], size_t y_size) -> W
 
template<WordType W>
constexpr void Botan::bigint_sub2_rev (W x[], const W y[], size_t y_size)
 
template<WordType W>
constexpr auto Botan::bigint_sub3 (W z[], const W x[], size_t x_size, const W y[], size_t y_size) -> W
 
template<WordType W>
constexpr auto Botan::bigint_sub_abs (W z[], const W x[], const W y[], size_t N, W ws[]) -> CT::Mask< W >
 
template<WordType W>
constexpr int32_t Botan::bigint_sub_abs (W z[], const W x[], size_t x_size, const W y[], size_t y_size)
 
template<size_t N, WordType W>
constexpr void Botan::comba_mul (W z[2 *N], const W x[N], const W y[N])
 
template<size_t N, WordType W>
constexpr void Botan::comba_sqr (W z[2 *N], const W x[N])
 
template<WordType W, size_t N, W C>
consteval std::array< W, N > Botan::crandall_p ()
 
template<WordType W, size_t N>
constexpr auto Botan::hex_to_words (const char(&s)[N])
 
template<WordType W>
constexpr auto Botan::monty_inverse (W a) -> W
 
template<WordType W, size_t N, W C>
constexpr std::array< W, N > Botan::redc_crandall (std::span< const W, 2 *N > z)
 
template<size_t S, WordType W, size_t N>
constexpr W Botan::shift_left (std::array< W, N > &x)
 
template<size_t S, WordType W, size_t N>
constexpr W Botan::shift_right (std::array< W, N > &x)
 

Detailed Description

Internal Header.

Definition in file mp_core.h.