assert.cpp |
|
1366 |
assert.h |
Called when an assertion fails
Throws an Exception object
|
6686 |
bit_ops.h |
If top bit of arg is set, return ~0. Otherwise return 0.
|
3495 |
boost |
|
|
bswap.h |
Swap a 16 bit integer
|
2521 |
calendar.cpp |
Portable replacement for timegm, _mkgmtime, etc
Algorithm due to Howard Hinnant
See https://howardhinnant.github.io/date_algorithms.html#days_from_civil
for details and explaination. The code is slightly simplified by our assumption
that the date is at least 1970, which is sufficient for our purposes.
|
3629 |
calendar.h |
Struct representing a particular date and time
|
2498 |
charset.cpp |
Convert from UTF-8 to ISO 8859-1
|
6555 |
charset.h |
Convert a sequence of UCS-2 (big endian) characters to a UTF-8 string
This is used for ASN.1 BMPString type
@param ucs2 the sequence of UCS-2 characters
@param len length of ucs2 in bytes, must be a multiple of 2
|
2031 |
codec_base.h |
Perform encoding using the base provided
@param base object giving access to the encodings specifications
@param output an array of at least base.encode_max_output bytes
@param input is some binary data
@param input_length length of input in bytes
@param input_consumed is an output parameter which says how many
bytes of input were actually consumed. If less than
input_length, then the range input[consumed:length]
should be passed in later along with more input.
@param final_inputs true iff this is the last input, in which case
padding chars will be applied if needed
@return number of bytes written to output
|
6777 |
compiler.h |
This header is included in both C++ and C (via ffi.h) and should only
contain macro definitions. Avoid C++ style // comments in this file.
|
5918 |
cpuid |
|
|
ct_utils.cpp |
Ensure at runtime that offset <= input_length. This is an invalid input,
but we can't throw without using the poisoned value. Instead, if it happens,
set offset to be equal to the input length (so output_bytes becomes 0 and
the returned vector is empty)
|
2415 |
ct_utils.h |
Use valgrind to mark the contents of memory as being undefined.
Valgrind will accept operations which manipulate undefined values,
but will warn if an undefined value is used to decided a conditional
jump or a load/store address. So if we poison all of our inputs we
can confirm that the operations in question are truly const time
when compiled by whatever compiler is in use.
Even better, the VALGRIND_MAKE_MEM_* macros work even when the
program is not run under valgrind (though with a few cycles of
overhead, which is unfortunate in final binaries as these
annotations tend to be used in fairly important loops).
This approach was first used in ctgrind (https://github.com/agl/ctgrind)
but calling the valgrind mecheck API directly works just as well and
doesn't require a custom patched valgrind.
|
10104 |
data_src.cpp |
Read a single byte from the DataSource
|
4676 |
data_src.h |
This class represents an abstract data source object.
|
5416 |
database.h |
Bind statement parameters |
2348 |
donna128.h |
|
3187 |
dyn_load |
|
|
exceptn.cpp |
|
5674 |
exceptn.h |
Different types of errors that might occur
|
12883 |
filesystem.cpp |
|
3348 |
filesystem.h |
No_Filesystem_Access Exception
|
649 |
ghash |
|
|
http_util |
|
|
info.txt |
|
462 |
loadstor.h |
Byte extraction
@param byte_num which byte to extract, 0 == highest byte
@param input the value to extract from
@return byte byte_num of input
|
17830 |
locking_allocator |
|
|
mem_ops.cpp |
|
1407 |
mem_ops.h |
Allocate a memory buffer by some method. This should only be used for
primitive types (uint8_t, uint32_t, etc).
@param elems the number of elements
@param elem_size the size of each element
@return pointer to allocated and zeroed memory, or throw std::bad_alloc on failure
|
9927 |
mem_pool |
|
|
mul128.h |
Perform a 64x64->128 bit multiplication
|
3455 |
mutex.h |
|
1039 |
os_utils.cpp |
Call memset through a static volatile pointer, which the compiler
should not elide. This construct should be safe in conforming
compilers, but who knows. I did confirm that on x86-64 GCC 6.1 and
Clang 3.8 both create code that saves the memset address in the
data segment and unconditionally loads and jumps to that address.
|
20544 |
os_utils.h |
This header is internal (not installed) and these functions are not
intended to be called by applications. However they are given public
visibility (using BOTAN_TEST_API macro) for the tests. This also probably
allows them to be overridden by the application on ELF systems, but
this hasn't been tested.
|
6205 |
parsing.cpp |
Convert a string into a time duration
|
10885 |
parsing.h |
Parse a SCAN-style algorithm name
@param scan_name the name
@return the name components
|
4925 |
poly_dbl |
|
|
prefetch.h |
|
822 |
read_cfg.cpp |
|
1303 |
read_kv.cpp |
|
1780 |
rotate.h |
Bit rotation left by a compile-time constant amount
@param input the input word
@return input rotated left by ROT bits
|
2664 |
rounding.h |
Round up
@param n a non-negative integer
@param align_to the alignment boundary
@return n rounded up to a multiple of align_to
|
1054 |
safeint.h |
|
951 |
simd |
|
|
socket |
|
|
sqlite3 |
|
|
stl_compatibility.h |
std::make_unique functionality similar as we have in C++14.
C++11 version based on proposal for C++14 implemenatation by Stephan T. Lavavej
source: https://isocpp.org/files/papers/N3656.txt
|
1868 |
stl_util.h |
Return the keys of a map as a std::set
|
2356 |
thread_utils |
|
|
timer.cpp |
|
3442 |
timer.h |
|
4146 |
types.h |
@mainpage Botan Crypto Library API Reference
<dl>
<dt>Abstract Base Classes<dd>
BlockCipher, HashFunction, KDF, MessageAuthenticationCode, RandomNumberGenerator,
StreamCipher, SymmetricAlgorithm, AEAD_Mode, Cipher_Mode
<dt>Public Key Interface Classes<dd>
PK_Key_Agreement, PK_Signer, PK_Verifier, PK_Encryptor, PK_Decryptor
<dt>Authenticated Encryption Modes<dd>
@ref CCM_Mode "CCM", @ref ChaCha20Poly1305_Mode "ChaCha20Poly1305", @ref EAX_Mode "EAX",
@ref GCM_Mode "GCM", @ref OCB_Mode "OCB", @ref SIV_Mode "SIV"
<dt>Block Ciphers<dd>
@ref aria.h "ARIA", @ref aes.h "AES", @ref Blowfish, @ref camellia.h "Camellia", @ref Cascade_Cipher "Cascade",
@ref CAST_128 "CAST-128", @ref CAST_128 "CAST-256", DES, @ref DESX "DES-X", @ref TripleDES "3DES",
@ref GOST_28147_89 "GOST 28147-89", IDEA, KASUMI, Lion, MISTY1, Noekeon, SEED, Serpent, SHACAL2, SM4,
@ref Threefish_512 "Threefish", Twofish, XTEA
<dt>Stream Ciphers<dd>
ChaCha, @ref CTR_BE "CTR", OFB, RC4, Salsa20
<dt>Hash Functions<dd>
BLAKE2b, @ref GOST_34_11 "GOST 34.11", @ref Keccak_1600 "Keccak", MD4, MD5, @ref RIPEMD_160 "RIPEMD-160",
@ref SHA_160 "SHA-1", @ref SHA_224 "SHA-224", @ref SHA_256 "SHA-256", @ref SHA_384 "SHA-384",
@ref SHA_512 "SHA-512", @ref Skein_512 "Skein-512", SM3, Streebog, Tiger, Whirlpool
<dt>Non-Cryptographic Checksums<dd>
Adler32, CRC24, CRC32
<dt>Message Authentication Codes<dd>
@ref CBC_MAC "CBC-MAC", CMAC, HMAC, Poly1305, SipHash, ANSI_X919_MAC
<dt>Random Number Generators<dd>
AutoSeeded_RNG, HMAC_DRBG, Processor_RNG, System_RNG
<dt>Key Derivation<dd>
HKDF, @ref KDF1 "KDF1 (IEEE 1363)", @ref KDF1_18033 "KDF1 (ISO 18033-2)", @ref KDF2 "KDF2 (IEEE 1363)",
@ref sp800_108.h "SP800-108", @ref SP800_56C "SP800-56C", @ref PKCS5_PBKDF1 "PBKDF1 (PKCS#5),
@ref PKCS5_PBKDF2 "PBKDF2 (PKCS#5)"
<dt>Password Hashing<dd>
@ref argon2.h "Argon2", @ref scrypt.h "scrypt", @ref bcrypt.h "bcrypt", @ref passhash9.h "passhash9"
<dt>Public Key Cryptosystems<dd>
@ref dlies.h "DLIES", @ref ecies.h "ECIES", @ref elgamal.h "ElGamal"
@ref rsa.h "RSA", @ref newhope.h "NewHope", @ref mceliece.h "McEliece" and @ref mceies.h "MCEIES",
@ref sm2.h "SM2"
<dt>Public Key Signature Schemes<dd>
@ref dsa.h "DSA", @ref ecdsa.h "ECDSA", @ref ecgdsa.h "ECGDSA", @ref eckcdsa.h "ECKCDSA",
@ref gost_3410.h "GOST 34.10-2001", @ref sm2.h "SM2", @ref xmss.h "XMSS"
<dt>Key Agreement<dd>
@ref dh.h "DH", @ref ecdh.h "ECDH"
<dt>Compression<dd>
@ref bzip2.h "bzip2", @ref lzma.h "lzma", @ref zlib.h "zlib"
<dt>TLS<dd>
TLS::Client, TLS::Server, TLS::Policy, TLS::Protocol_Version, TLS::Callbacks, TLS::Ciphersuite,
TLS::Session, TLS::Session_Manager, Credentials_Manager
<dt>X.509<dd>
X509_Certificate, X509_CRL, X509_CA, Certificate_Extension, PKCS10_Request, X509_Cert_Options,
Certificate_Store, Certificate_Store_In_SQL, Certificate_Store_In_SQLite
</dl>
|
4529 |
uuid |
|
|
version.cpp |
These are intentionally compiled rather than inlined, so an
application running against a shared library can test the true
version they are running against.
|
2503 |
version.h |
Get information describing the version
|
2598 |