Botan  2.4.0
Crypto and TLS for C++11
types.h
Go to the documentation of this file.
1 /*
2 * Low Level Types
3 * (C) 1999-2007 Jack Lloyd
4 * (C) 2015 Simon Warta (Kullo GmbH)
5 * (C) 2016 RenĂ© Korthaus, Rohde & Schwarz Cybersecurity
6 *
7 * Botan is released under the Simplified BSD License (see license.txt)
8 */
9 
10 #ifndef BOTAN_TYPES_H_
11 #define BOTAN_TYPES_H_
12 
13 #include <botan/build.h> // IWYU pragma: export
14 #include <botan/assert.h> // IWYU pragma: export
15 #include <cstddef> // IWYU pragma: export
16 #include <cstdint> // IWYU pragma: export
17 #include <memory> // IWYU pragma: export
18 
19 namespace Botan {
20 
21 /**
22 * @mainpage Botan Crypto Library API Reference
23 *
24 * <dl>
25 * <dt>Abstract Base Classes<dd>
26 * BlockCipher, HashFunction, KDF, MessageAuthenticationCode, RandomNumberGenerator,
27 * StreamCipher, SymmetricAlgorithm, AEAD_Mode, Cipher_Mode
28 * <dt>Public Key Interface Classes<dd>
29 * PK_Key_Agreement, PK_Signer, PK_Verifier, PK_Encryptor, PK_Decryptor
30 * <dt>Authenticated Encryption Modes<dd>
31 * @ref CCM_Mode "CCM", @ref ChaCha20Poly1305_Mode "ChaCha20Poly1305", @ref EAX_Mode "EAX",
32 * @ref GCM_Mode "GCM", @ref OCB_Mode "OCB", @ref SIV_Mode "SIV"
33 * <dt>Block Ciphers<dd>
34 * @ref aria.h "ARIA", @ref aes.h "AES", @ref Blowfish, @ref camellia.h "Camellia", @ref Cascade_Cipher "Cascade",
35 * @ref CAST_128 "CAST-128", @ref CAST_128 "CAST-256", DES, @ref DESX "DES-X", @ref TripleDES "3DES",
36 * @ref GOST_28147_89 "GOST 28147-89", IDEA, KASUMI, Lion, MISTY1, Noekeon, SEED, Serpent, SHACAL2, SM4,
37 * @ref Threefish_512 "Threefish", Twofish, XTEA
38 * <dt>Stream Ciphers<dd>
39 * ChaCha, @ref CTR_BE "CTR", OFB, RC4, Salsa20
40 * <dt>Hash Functions<dd>
41 * Blake2b, @ref GOST_34_11 "GOST 34.11", @ref Keccak_1600 "Keccak", MD4, MD5, @ref RIPEMD_160 "RIPEMD-160",
42 * @ref SHA_160 "SHA-1", @ref SHA_224 "SHA-224", @ref SHA_256 "SHA-256", @ref SHA_384 "SHA-384",
43 * @ref SHA_512 "SHA-512", @ref Skein_512 "Skein-512", SM3, Streebog, Tiger, Whirlpool
44 * <dt>Non-Cryptographic Checksums<dd>
45 * Adler32, CRC24, CRC32
46 * <dt>Message Authentication Codes<dd>
47 * @ref CBC_MAC "CBC-MAC", CMAC, HMAC, Poly1305, SipHash, ANSI_X919_MAC
48 * <dt>Random Number Generators<dd>
49 * AutoSeeded_RNG, HMAC_DRBG, RDRAND_RNG, System_RNG
50 * <dt>Key Derivation<dd>
51 * HKDF, @ref KDF1 "KDF1 (IEEE 1363)", @ref KDF1_18033 "KDF1 (ISO 18033-2)", @ref KDF2 "KDF2 (IEEE 1363)",
52 * @ref sp800_108.h "SP800-108", @ref SP800_56C "SP800-56C", @ref PKCS5_PBKDF1 "PBKDF1 (PKCS#5),
53 * @ref PKCS5_PBKDF2 "PBKDF2 (PKCS#5)"
54 * <dt>Password Hashing<dd>
55 * @ref bcrypt.h "bcrypt", @ref passhash9.h "passhash9"
56 * <dt>Public Key Cryptosystems<dd>
57 * @ref dlies.h "DLIES", @ref ecies.h "ECIES", @ref elgamal.h "ElGamal"
58 * @ref rsa.h "RSA", @ref newhope.h "NewHope", @ref mceliece.h "McEliece" and @ref mceies.h "MCEIES",
59 * @ref sm2_enc.h "SM2"
60 * <dt>Public Key Signature Schemes<dd>
61 * @ref dsa.h "DSA", @ref ecdsa.h "ECDSA", @ref ecgdsa.h "ECGDSA", @ref eckcdsa.h "ECKCDSA",
62 * @ref gost_3410.h "GOST 34.10-2001", @ref sm2.h "SM2", @ref xmss.h "XMSS"
63 * <dt>Key Agreement<dd>
64 * @ref dh.h "DH", @ref ecdh.h "ECDH"
65 * <dt>Compression<dd>
66 * @ref bzip2.h "bzip2", @ref lzma.h "lzma", @ref zlib.h "zlib"
67 * <dt>TLS<dd>
68 * TLS::Client, TLS::Server, TLS::Policy, TLS::Protocol_Version, TLS::Callbacks, TLS::Ciphersuite,
69 * TLS::Session, TLS::Session_Manager, Credentials_Manager
70 * <dt>X.509<dd>
71 * X509_Certificate, X509_CRL, X509_CA, Certificate_Extension, PKCS10_Request, X509_Cert_Options,
72 * Certificate_Store, Certificate_Store_In_SQL, Certificate_Store_In_SQLite
73 * </dl>
74 */
75 
76 using std::uint8_t;
77 using std::uint16_t;
78 using std::uint32_t;
79 using std::uint64_t;
80 using std::int32_t;
81 using std::int64_t;
82 using std::size_t;
83 
84 /*
85 * These typedefs are no longer used within the library headers
86 * or code. They are kept only for compatability with software
87 * written against older versions.
88 */
89 using byte = std::uint8_t;
90 using u16bit = std::uint16_t;
91 using u32bit = std::uint32_t;
92 using u64bit = std::uint64_t;
93 using s32bit = std::int32_t;
94 
95 /**
96 * A default buffer size; typically a memory page
97 */
98 static const size_t DEFAULT_BUFFERSIZE = BOTAN_DEFAULT_BUFFER_SIZE;
99 
100 }
101 
102 #endif
std::uint16_t u16bit
Definition: types.h:90
std::uint32_t u32bit
Definition: types.h:91
std::uint64_t u64bit
Definition: types.h:92
std::int32_t s32bit
Definition: types.h:93
Definition: alg_id.cpp:13
std::uint8_t byte
Definition: types.h:89