Botan 3.3.0
Crypto and TLS for C&
Macros
Build configurations

Macros

#define BOTAN_BLINDING_REINIT_INTERVAL   64
 
#define BOTAN_BLOCK_CIPHER_PAR_MULT   4
 
#define BOTAN_BUILD_COMPILER_IS_GCC
 
#define BOTAN_DEFAULT_BUFFER_SIZE   4096
 
#define BOTAN_DLL   __attribute__((visibility("default")))
 
#define BOTAN_ENTROPY_DEFAULT_SOURCES    { "rdseed", "hwrng", "getentropy", "system_rng", "system_stats" }
 
#define BOTAN_INSTALL_HEADER_DIR   R"(include/botan-3)"
 
#define BOTAN_INSTALL_LIB_DIR   R"(/usr/local/lib)"
 
#define BOTAN_INSTALL_PREFIX   R"(/usr/local)"
 
#define BOTAN_LIB_LINK   "-ldl -lrt"
 
#define BOTAN_LINK_FLAGS   "-fstack-protector -m64 -pthread"
 
#define BOTAN_MP_WORD_BITS   64
 
#define BOTAN_RNG_DEFAULT_RESEED_INTERVAL   1024
 
#define BOTAN_RNG_RESEED_DEFAULT_TIMEOUT   std::chrono::milliseconds(50)
 
#define BOTAN_RNG_RESEED_POLL_BITS   256
 
#define BOTAN_SYSTEM_CERT_BUNDLE   "/etc/ssl/certs/ca-certificates.crt"
 
#define BOTAN_TARGET_ARCH   "x86_64"
 
#define BOTAN_TARGET_ARCH_IS_X86_64
 
#define BOTAN_TARGET_CPU_HAS_NATIVE_64BIT
 
#define BOTAN_TARGET_CPU_IS_LITTLE_ENDIAN
 
#define BOTAN_TARGET_CPU_IS_X86_FAMILY
 
#define BOTAN_TARGET_OS_HAS_ATOMICS
 
#define BOTAN_TARGET_OS_HAS_CLOCK_GETTIME
 
#define BOTAN_TARGET_OS_HAS_DEV_RANDOM
 
#define BOTAN_TARGET_OS_HAS_EXPLICIT_BZERO
 
#define BOTAN_TARGET_OS_HAS_FILESYSTEM
 
#define BOTAN_TARGET_OS_HAS_GETAUXVAL
 
#define BOTAN_TARGET_OS_HAS_GETENTROPY
 
#define BOTAN_TARGET_OS_HAS_GETRANDOM
 
#define BOTAN_TARGET_OS_HAS_POSIX1
 
#define BOTAN_TARGET_OS_HAS_POSIX_MLOCK
 
#define BOTAN_TARGET_OS_HAS_PRCTL
 
#define BOTAN_TARGET_OS_HAS_SOCKETS
 
#define BOTAN_TARGET_OS_HAS_THREAD_LOCAL
 
#define BOTAN_TARGET_OS_HAS_THREADS
 
#define BOTAN_TARGET_OS_IS_LINUX
 
#define BOTAN_TARGET_SUPPORTS_AESNI
 
#define BOTAN_TARGET_SUPPORTS_AVX2
 
#define BOTAN_TARGET_SUPPORTS_AVX512
 
#define BOTAN_TARGET_SUPPORTS_BMI2
 
#define BOTAN_TARGET_SUPPORTS_RDRAND
 
#define BOTAN_TARGET_SUPPORTS_RDSEED
 
#define BOTAN_TARGET_SUPPORTS_SHA
 
#define BOTAN_TARGET_SUPPORTS_SSE2
 
#define BOTAN_TARGET_SUPPORTS_SSE41
 
#define BOTAN_TARGET_SUPPORTS_SSE42
 
#define BOTAN_TARGET_SUPPORTS_SSSE3
 
#define BOTAN_USE_GCC_INLINE_ASM
 
#define BOTAN_USE_VOLATILE_MEMSET_FOR_ZERO   1
 

Detailed Description

Macro Definition Documentation

◆ BOTAN_BLINDING_REINIT_INTERVAL

#define BOTAN_BLINDING_REINIT_INTERVAL   64

Normally blinding is performed by choosing a random starting point (plus its inverse, of a form appropriate to the algorithm being blinded), and then choosing new blinding operands by successive squaring of both values. This is much faster than computing a new starting point but introduces some possible corelation

To avoid possible leakage problems in long-running processes, the blinder periodically reinitializes the sequence. This value specifies how often a new sequence should be started.

Definition at line 421 of file build.h.

Referenced by Botan::Blinder::blind().

◆ BOTAN_BLOCK_CIPHER_PAR_MULT

#define BOTAN_BLOCK_CIPHER_PAR_MULT   4

Multiplier on a block cipher's native parallelism

Definition at line 442 of file build.h.

Referenced by Botan::GCM_Mode::ideal_granularity(), and Botan::BlockCipher::parallel_bytes().

◆ BOTAN_BUILD_COMPILER_IS_GCC

#define BOTAN_BUILD_COMPILER_IS_GCC

Definition at line 85 of file build.h.

◆ BOTAN_DEFAULT_BUFFER_SIZE

#define BOTAN_DEFAULT_BUFFER_SIZE   4096

Local/misc configuration options (if any) follow How much to allocate for a buffer of no particular size

Definition at line 385 of file build.h.

Referenced by Botan::operator<<(), Botan::operator<<(), Botan::operator>>(), Botan::operator>>(), Botan::Pipe::read_all_as_string(), and Botan::Pipe::write().

◆ BOTAN_DLL

#define BOTAN_DLL   __attribute__((visibility("default")))

Definition at line 62 of file build.h.

◆ BOTAN_ENTROPY_DEFAULT_SOURCES

#define BOTAN_ENTROPY_DEFAULT_SOURCES    { "rdseed", "hwrng", "getentropy", "system_rng", "system_stats" }

Specifies (in order) the list of entropy sources that will be used to seed an in-memory RNG.

Definition at line 438 of file build.h.

438#define BOTAN_ENTROPY_DEFAULT_SOURCES \
439 { "rdseed", "hwrng", "getentropy", "system_rng", "system_stats" }

Referenced by Botan::Entropy_Sources::global_sources().

◆ BOTAN_INSTALL_HEADER_DIR

#define BOTAN_INSTALL_HEADER_DIR   R"(include/botan-3)"

Definition at line 54 of file build.h.

◆ BOTAN_INSTALL_LIB_DIR

#define BOTAN_INSTALL_LIB_DIR   R"(/usr/local/lib)"

Definition at line 55 of file build.h.

◆ BOTAN_INSTALL_PREFIX

#define BOTAN_INSTALL_PREFIX   R"(/usr/local)"

Definition at line 53 of file build.h.

◆ BOTAN_LIB_LINK

#define BOTAN_LIB_LINK   "-ldl -lrt"

Definition at line 56 of file build.h.

◆ BOTAN_LINK_FLAGS

#define BOTAN_LINK_FLAGS   "-fstack-protector -m64 -pthread"

Definition at line 57 of file build.h.

◆ BOTAN_MP_WORD_BITS

#define BOTAN_MP_WORD_BITS   64

◆ BOTAN_RNG_DEFAULT_RESEED_INTERVAL

#define BOTAN_RNG_DEFAULT_RESEED_INTERVAL   1024

Userspace RNGs like HMAC_DRBG will reseed after a specified number of outputs are generated. Set to zero to disable automatic reseeding.

Definition at line 427 of file build.h.

◆ BOTAN_RNG_RESEED_DEFAULT_TIMEOUT

#define BOTAN_RNG_RESEED_DEFAULT_TIMEOUT   std::chrono::milliseconds(50)

Definition at line 432 of file build.h.

◆ BOTAN_RNG_RESEED_POLL_BITS

#define BOTAN_RNG_RESEED_POLL_BITS   256

Number of entropy bits polled for reseeding userspace RNGs like HMAC_DRBG

Definition at line 430 of file build.h.

◆ BOTAN_SYSTEM_CERT_BUNDLE

#define BOTAN_SYSTEM_CERT_BUNDLE   "/etc/ssl/certs/ca-certificates.crt"

Definition at line 59 of file build.h.

Referenced by Botan::System_Certificate_Store::System_Certificate_Store().

◆ BOTAN_TARGET_ARCH

#define BOTAN_TARGET_ARCH   "x86_64"

Definition at line 91 of file build.h.

◆ BOTAN_TARGET_ARCH_IS_X86_64

#define BOTAN_TARGET_ARCH_IS_X86_64

Definition at line 92 of file build.h.

◆ BOTAN_TARGET_CPU_HAS_NATIVE_64BIT

#define BOTAN_TARGET_CPU_HAS_NATIVE_64BIT

Definition at line 95 of file build.h.

◆ BOTAN_TARGET_CPU_IS_LITTLE_ENDIAN

#define BOTAN_TARGET_CPU_IS_LITTLE_ENDIAN

Definition at line 93 of file build.h.

◆ BOTAN_TARGET_CPU_IS_X86_FAMILY

#define BOTAN_TARGET_CPU_IS_X86_FAMILY

Definition at line 94 of file build.h.

◆ BOTAN_TARGET_OS_HAS_ATOMICS

#define BOTAN_TARGET_OS_HAS_ATOMICS

Definition at line 69 of file build.h.

◆ BOTAN_TARGET_OS_HAS_CLOCK_GETTIME

#define BOTAN_TARGET_OS_HAS_CLOCK_GETTIME

Definition at line 70 of file build.h.

◆ BOTAN_TARGET_OS_HAS_DEV_RANDOM

#define BOTAN_TARGET_OS_HAS_DEV_RANDOM

Definition at line 71 of file build.h.

◆ BOTAN_TARGET_OS_HAS_EXPLICIT_BZERO

#define BOTAN_TARGET_OS_HAS_EXPLICIT_BZERO

Definition at line 72 of file build.h.

◆ BOTAN_TARGET_OS_HAS_FILESYSTEM

#define BOTAN_TARGET_OS_HAS_FILESYSTEM

Definition at line 73 of file build.h.

◆ BOTAN_TARGET_OS_HAS_GETAUXVAL

#define BOTAN_TARGET_OS_HAS_GETAUXVAL

Definition at line 74 of file build.h.

◆ BOTAN_TARGET_OS_HAS_GETENTROPY

#define BOTAN_TARGET_OS_HAS_GETENTROPY

Definition at line 75 of file build.h.

◆ BOTAN_TARGET_OS_HAS_GETRANDOM

#define BOTAN_TARGET_OS_HAS_GETRANDOM

Definition at line 76 of file build.h.

◆ BOTAN_TARGET_OS_HAS_POSIX1

#define BOTAN_TARGET_OS_HAS_POSIX1

Definition at line 77 of file build.h.

◆ BOTAN_TARGET_OS_HAS_POSIX_MLOCK

#define BOTAN_TARGET_OS_HAS_POSIX_MLOCK

Definition at line 78 of file build.h.

◆ BOTAN_TARGET_OS_HAS_PRCTL

#define BOTAN_TARGET_OS_HAS_PRCTL

Definition at line 79 of file build.h.

◆ BOTAN_TARGET_OS_HAS_SOCKETS

#define BOTAN_TARGET_OS_HAS_SOCKETS

Definition at line 80 of file build.h.

◆ BOTAN_TARGET_OS_HAS_THREAD_LOCAL

#define BOTAN_TARGET_OS_HAS_THREAD_LOCAL

Definition at line 81 of file build.h.

◆ BOTAN_TARGET_OS_HAS_THREADS

#define BOTAN_TARGET_OS_HAS_THREADS

Definition at line 82 of file build.h.

◆ BOTAN_TARGET_OS_IS_LINUX

#define BOTAN_TARGET_OS_IS_LINUX

Definition at line 67 of file build.h.

◆ BOTAN_TARGET_SUPPORTS_AESNI

#define BOTAN_TARGET_SUPPORTS_AESNI

Definition at line 97 of file build.h.

◆ BOTAN_TARGET_SUPPORTS_AVX2

#define BOTAN_TARGET_SUPPORTS_AVX2

Definition at line 98 of file build.h.

◆ BOTAN_TARGET_SUPPORTS_AVX512

#define BOTAN_TARGET_SUPPORTS_AVX512

Definition at line 99 of file build.h.

◆ BOTAN_TARGET_SUPPORTS_BMI2

#define BOTAN_TARGET_SUPPORTS_BMI2

Definition at line 100 of file build.h.

◆ BOTAN_TARGET_SUPPORTS_RDRAND

#define BOTAN_TARGET_SUPPORTS_RDRAND

Definition at line 101 of file build.h.

◆ BOTAN_TARGET_SUPPORTS_RDSEED

#define BOTAN_TARGET_SUPPORTS_RDSEED

Definition at line 102 of file build.h.

◆ BOTAN_TARGET_SUPPORTS_SHA

#define BOTAN_TARGET_SUPPORTS_SHA

Definition at line 103 of file build.h.

◆ BOTAN_TARGET_SUPPORTS_SSE2

#define BOTAN_TARGET_SUPPORTS_SSE2

Definition at line 104 of file build.h.

◆ BOTAN_TARGET_SUPPORTS_SSE41

#define BOTAN_TARGET_SUPPORTS_SSE41

Definition at line 105 of file build.h.

◆ BOTAN_TARGET_SUPPORTS_SSE42

#define BOTAN_TARGET_SUPPORTS_SSE42

Definition at line 106 of file build.h.

◆ BOTAN_TARGET_SUPPORTS_SSSE3

#define BOTAN_TARGET_SUPPORTS_SSSE3

Definition at line 107 of file build.h.

◆ BOTAN_USE_GCC_INLINE_ASM

#define BOTAN_USE_GCC_INLINE_ASM

Definition at line 87 of file build.h.

◆ BOTAN_USE_VOLATILE_MEMSET_FOR_ZERO

#define BOTAN_USE_VOLATILE_MEMSET_FOR_ZERO   1

If enabled uses memset via volatile function pointer to zero memory, otherwise does a byte at a time write via a volatile pointer.

Definition at line 408 of file build.h.