14#include <botan/build.h>
26#if defined(_MSVC_LANG)
27 #define BOTAN_CPLUSPLUS _MSVC_LANG
29 #define BOTAN_CPLUSPLUS __cplusplus
32#if BOTAN_CPLUSPLUS < 202002L
33 #error "Botan 3.x requires at least C++20"
104#if !defined(BOTAN_IS_BEING_BUILT)
128static constexpr bool HasNative64BitRegisters =
sizeof(
void*) >= 8;
131using word = std::conditional_t<HasNative64BitRegisters, std::uint64_t, uint32_t>;
133#if defined(__SIZEOF_INT128__)
134 #define BOTAN_TARGET_HAS_NATIVE_UINT128
138__extension__
typedef unsigned __int128 uint128_t;
145static_assert(
sizeof(std::size_t) == 8 ||
sizeof(std::size_t) == 4,
"This platform has an unexpected size for size_t");
std::int32_t s32bit
Signed 32 bit integer; retained for compatibility with older versions.
std::uint32_t u32bit
Unsigned 32 bit integer; retained for compatibility with older versions.
std::uint16_t u16bit
Unsigned 16 bit integer; retained for compatibility with older versions.
std::uint8_t byte
Unsigned 8 bit integer; retained for compatibility with older versions.
std::conditional_t< HasNative64BitRegisters, std::uint64_t, uint32_t > word
The native machine word, used as the limb type for multiprecision integers.
constexpr size_t DefaultBufferSize
std::uint64_t u64bit
Unsigned 64 bit integer; retained for compatibility with older versions.