Botan 3.0.0-alpha0
Crypto and TLS for C&
Macros
Build configurations

Macros

#define BOTAN_AUTO_RNG_HMAC   "HMAC(SHA-384)"
 
#define BOTAN_BLINDING_REINIT_INTERVAL   64
 
#define BOTAN_BLOCK_CIPHER_PAR_MULT   4
 
#define BOTAN_BUILD_COMPILER_IS_GCC
 
#define BOTAN_DEFAULT_BUFFER_SIZE   1024
 
#define BOTAN_DLL   __attribute__((visibility("default")))
 
#define BOTAN_ENTROPY_DEFAULT_SOURCES    { "rdseed", "hwrng", "getentropy", "system_rng", "system_stats" }
 
#define BOTAN_ENTROPY_PROC_FS_PATH   "/proc"
 
#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_MLOCK_ALLOCATOR_MAX_LOCKED_KB   512
 
#define BOTAN_MP_WORD_BITS   64
 
#define BOTAN_PBKDF_TUNING_TIME   std::chrono::milliseconds(10)
 
#define BOTAN_RNG_AUTO_RESEED_TIMEOUT   std::chrono::milliseconds(10)
 
#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_SYSTEM_RNG_POLL_REQUEST   64
 
#define BOTAN_SYSTEM_RNG_POLL_TIMEOUT_MS   20
 
#define BOTAN_TARGET_ARCH_IS_X86_64
 
#define BOTAN_TARGET_CPU_DEFAULT_CACHE_LINE_SIZE   32
 
#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_FILESYSTEM
 
#define BOTAN_TARGET_OS_HAS_GETAUXVAL
 
#define BOTAN_TARGET_OS_HAS_POSIX1
 
#define BOTAN_TARGET_OS_HAS_POSIX_MLOCK
 
#define BOTAN_TARGET_OS_HAS_PRCTL
 
#define BOTAN_TARGET_OS_HAS_PROC_FS
 
#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_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_VOLATILE_MEMSET_FOR_ZERO   1
 

Detailed Description

Macro Definition Documentation

◆ BOTAN_AUTO_RNG_HMAC

#define BOTAN_AUTO_RNG_HMAC   "HMAC(SHA-384)"

Controls how AutoSeeded_RNG is instantiated

Definition at line 464 of file build.h.

◆ 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 403 of file build.h.

◆ BOTAN_BLOCK_CIPHER_PAR_MULT

#define BOTAN_BLOCK_CIPHER_PAR_MULT   4

Multiplier on a block cipher's native parallelism

Definition at line 425 of file build.h.

◆ 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   1024

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

Definition at line 361 of file build.h.

◆ BOTAN_DLL

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

Definition at line 64 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 421 of file build.h.

◆ BOTAN_ENTROPY_PROC_FS_PATH

#define BOTAN_ENTROPY_PROC_FS_PATH   "/proc"

This directory will be monitored by ProcWalking_EntropySource and the contents provided as entropy inputs to the RNG. May also be usefully set to something like "/sys", depending on the system being deployed to. Set to an empty string to disable.

Definition at line 433 of file build.h.

◆ BOTAN_INSTALL_HEADER_DIR

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

Definition at line 56 of file build.h.

◆ BOTAN_INSTALL_LIB_DIR

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

Definition at line 57 of file build.h.

◆ BOTAN_INSTALL_PREFIX

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

Definition at line 55 of file build.h.

◆ BOTAN_LIB_LINK

#define BOTAN_LIB_LINK   "-ldl -lrt"

Definition at line 58 of file build.h.

◆ BOTAN_LINK_FLAGS

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

Definition at line 59 of file build.h.

◆ BOTAN_MLOCK_ALLOCATOR_MAX_LOCKED_KB

#define BOTAN_MLOCK_ALLOCATOR_MAX_LOCKED_KB   512

Total maximum amount of RAM (in KiB) we will lock into memory, even if the OS would let us lock more

Definition at line 367 of file build.h.

◆ BOTAN_MP_WORD_BITS

#define BOTAN_MP_WORD_BITS   64

How many bits per limb in a BigInt

Definition at line 52 of file build.h.

◆ BOTAN_PBKDF_TUNING_TIME

#define BOTAN_PBKDF_TUNING_TIME   std::chrono::milliseconds(10)

When a PBKDF is self-tuning parameters, it will attempt to take about this amount of time to self-benchmark.

Definition at line 447 of file build.h.

◆ BOTAN_RNG_AUTO_RESEED_TIMEOUT

#define BOTAN_RNG_AUTO_RESEED_TIMEOUT   std::chrono::milliseconds(10)

Definition at line 414 of file build.h.

◆ 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 409 of file build.h.

◆ BOTAN_RNG_RESEED_DEFAULT_TIMEOUT

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

Definition at line 415 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 412 of file build.h.

◆ BOTAN_SYSTEM_CERT_BUNDLE

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

Definition at line 61 of file build.h.

◆ BOTAN_SYSTEM_RNG_POLL_REQUEST

#define BOTAN_SYSTEM_RNG_POLL_REQUEST   64

Definition at line 440 of file build.h.

◆ BOTAN_SYSTEM_RNG_POLL_TIMEOUT_MS

#define BOTAN_SYSTEM_RNG_POLL_TIMEOUT_MS   20

Definition at line 441 of file build.h.

◆ BOTAN_TARGET_ARCH_IS_X86_64

#define BOTAN_TARGET_ARCH_IS_X86_64

Definition at line 90 of file build.h.

◆ BOTAN_TARGET_CPU_DEFAULT_CACHE_LINE_SIZE

#define BOTAN_TARGET_CPU_DEFAULT_CACHE_LINE_SIZE   32

If no way of dynamically determining the cache line size for the system exists, this value is used as the default. Used by the side channel countermeasures rather than for alignment purposes, so it is better to be on the smaller side if the exact value cannot be determined. Typically 32 or 64 bytes on modern CPUs.

Definition at line 457 of file build.h.

◆ BOTAN_TARGET_CPU_HAS_NATIVE_64BIT

#define BOTAN_TARGET_CPU_HAS_NATIVE_64BIT

Definition at line 93 of file build.h.

◆ BOTAN_TARGET_CPU_IS_LITTLE_ENDIAN

#define BOTAN_TARGET_CPU_IS_LITTLE_ENDIAN

Definition at line 91 of file build.h.

◆ BOTAN_TARGET_CPU_IS_X86_FAMILY

#define BOTAN_TARGET_CPU_IS_X86_FAMILY

Definition at line 92 of file build.h.

◆ BOTAN_TARGET_OS_HAS_ATOMICS

#define BOTAN_TARGET_OS_HAS_ATOMICS

Definition at line 71 of file build.h.

◆ BOTAN_TARGET_OS_HAS_CLOCK_GETTIME

#define BOTAN_TARGET_OS_HAS_CLOCK_GETTIME

Definition at line 72 of file build.h.

◆ BOTAN_TARGET_OS_HAS_DEV_RANDOM

#define BOTAN_TARGET_OS_HAS_DEV_RANDOM

Definition at line 73 of file build.h.

◆ BOTAN_TARGET_OS_HAS_FILESYSTEM

#define BOTAN_TARGET_OS_HAS_FILESYSTEM

Definition at line 74 of file build.h.

◆ BOTAN_TARGET_OS_HAS_GETAUXVAL

#define BOTAN_TARGET_OS_HAS_GETAUXVAL

Definition at line 75 of file build.h.

◆ BOTAN_TARGET_OS_HAS_POSIX1

#define BOTAN_TARGET_OS_HAS_POSIX1

Definition at line 76 of file build.h.

◆ BOTAN_TARGET_OS_HAS_POSIX_MLOCK

#define BOTAN_TARGET_OS_HAS_POSIX_MLOCK

Definition at line 77 of file build.h.

◆ BOTAN_TARGET_OS_HAS_PRCTL

#define BOTAN_TARGET_OS_HAS_PRCTL

Definition at line 78 of file build.h.

◆ BOTAN_TARGET_OS_HAS_PROC_FS

#define BOTAN_TARGET_OS_HAS_PROC_FS

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 69 of file build.h.

◆ BOTAN_TARGET_SUPPORTS_AESNI

#define BOTAN_TARGET_SUPPORTS_AESNI

Definition at line 95 of file build.h.

◆ BOTAN_TARGET_SUPPORTS_AVX2

#define BOTAN_TARGET_SUPPORTS_AVX2

Definition at line 96 of file build.h.

◆ BOTAN_TARGET_SUPPORTS_BMI2

#define BOTAN_TARGET_SUPPORTS_BMI2

Definition at line 97 of file build.h.

◆ BOTAN_TARGET_SUPPORTS_RDRAND

#define BOTAN_TARGET_SUPPORTS_RDRAND

Definition at line 98 of file build.h.

◆ BOTAN_TARGET_SUPPORTS_RDSEED

#define BOTAN_TARGET_SUPPORTS_RDSEED

Definition at line 99 of file build.h.

◆ BOTAN_TARGET_SUPPORTS_SHA

#define BOTAN_TARGET_SUPPORTS_SHA

Definition at line 100 of file build.h.

◆ BOTAN_TARGET_SUPPORTS_SSE2

#define BOTAN_TARGET_SUPPORTS_SSE2

Definition at line 101 of file build.h.

◆ BOTAN_TARGET_SUPPORTS_SSE41

#define BOTAN_TARGET_SUPPORTS_SSE41

Definition at line 102 of file build.h.

◆ BOTAN_TARGET_SUPPORTS_SSE42

#define BOTAN_TARGET_SUPPORTS_SSE42

Definition at line 103 of file build.h.

◆ BOTAN_TARGET_SUPPORTS_SSSE3

#define BOTAN_TARGET_SUPPORTS_SSSE3

Definition at line 104 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 390 of file build.h.