Name Description Size
data
main.cpp The mlock pool becomes a major contention point when many threads are running, so disable it unless it was explicitly asked for via setting the env variable 4823
runner
test_aead.cpp Now try to set the AD *after* setting the nonce For some modes this works, for others it does not. 17900
test_alt_name.cpp 3205
test_asn1.cpp This constructs a len deep sequence of SEQUENCES each with an indefinite length 10045
test_bigint.cpp 34028
test_block.cpp Different providers may have additional restrictions on key sizes. Avoid testing the cipher with a key size that it does not natively support. 7398
test_blowfish.cpp header 1156
test_bufcomp.cpp 4238
test_certstor.cpp 14697
test_certstor_flatfile.cpp 7985
test_certstor_system.cpp 10765
test_certstor_utils.cpp 6272
test_certstor_utils.h 911
test_cmce.cpp 15165
test_codec.cpp 7078
test_compression.cpp 8360
test_cryptobox.cpp header 2329
test_crystals.cpp 25264
test_ct_utils.cpp 11554
test_dh.cpp unused 4891
test_dilithium.cpp 14069
test_dl_group.cpp 7911
test_dlies.cpp 5981
test_dsa.cpp unused 4605
test_ec_group.cpp Produces integers with long runs of ones and zeros, for testing for carry handling problems. 33002
test_ecc_h2c.cpp 3136
test_ecc_pointmul.cpp 16011
test_ecdh.cpp unused 4897
test_ecdsa.cpp unused 14448
test_ecgdsa.cpp provider 2583
test_ecies.cpp header 23313
test_eckcdsa.cpp provider 2528
test_ed448.cpp keygen_params 5842
test_ed25519.cpp keygen_params 4639
test_elgamal.cpp provider 2495
test_entropy.cpp Skip bzip2 both due to OS X problem (GH #394) and because bzip2's large blocks cause the entropy differential test to fail sometimes. 4467
test_ffi.cpp 235242
test_filters.cpp 27508
test_fpe.cpp header 1276
test_frodokem.cpp no KDF 7169
test_gf2m.cpp This is testing one specific case where an overflow occurred. It should be extended to test more of the interface. 1911
test_gost_3410.cpp provider 4438
test_hash.cpp 11395
test_hash_id.cpp 2595
test_hss_lms.cpp @brief Test the correct parsing of HSS-LMS parameters 14199
test_jitter_rng.cpp 1642
test_kdf.cpp 3042
test_keccak_helpers.cpp SHAKE-256 byte rate 10571
test_keywrap.cpp header 5185
test_kyber.cpp no KDF 17315
test_lmots.cpp @brief Test the LMOTS logic of HSS-LMS 2614
test_lms.cpp @brief Test the LMS logic of HSS-LMS 2619
test_mac.cpp 5644
test_mceliece.cpp header 7442
test_ml_dsa.cpp unused 1069
test_modes.cpp 14838
test_mp.cpp 3758
test_name_constraint.cpp 3152
test_ocb.cpp header 14387
test_ocsp.cpp 22470
test_octetstring.cpp 4596
test_oid.cpp See #2730 and #2237 Certain locales format integers with thousands seperators. This caused a subtle bug which caused OID comparisons to fail because OID::to_string(), which used ostringstream, introduced a thousands seperator when the OID component had a value >= 1000. But this only failed in certain locales (pt_BR was reported). Nominally C++ requires std::to_string to also be locale-respecting. But, libc++, libstdc++, and MSVC's STL library all implement std::to_string in a way that ignores locales, because adding locale support means std::to_string will be both slow and a serialization point. So as a stopgap we assume this behavior from std::to_string. Here we test the original issue of #2237 to verify it works. If the compiler implements std::to_string in a way that respects locale, and* this test is run in a locale that uses thousands seperators, then it will fail. Which is much better than a very subtle failure. However if it ever does fail then we must replace nearly every call to std::to_string with something else that ignores locale. 6586
test_os_utils.cpp uint32_t get_process_id(); uint64_t get_cpu_cycle_counter(); uint64_t get_system_timestamp_ns(); size_t get_memory_locking_limit(); void* allocate_locked_pages(size_t length); void free_locked_pages(void* ptr, size_t length); int run_cpu_instruction_probe(std::function<int ()> probe_fn); 6058
test_otp.cpp 5154
test_pad.cpp 2542
test_passhash.cpp header 7021
test_pbkdf.cpp header 9973
test_pem.cpp 1737
test_pk_pad.cpp 4793
test_pkcs11.h 1562
test_pkcs11_high_level.cpp Module **************************** 50970
test_pkcs11_low_level.cpp unused 32551
test_psk_db.cpp 8437
test_pubkey.cpp params 38788
test_pubkey.h 9062
test_pubkey_pqc.h This is an abstraction over the Known Answer Tests used by the KEM candidates in the NIST PQC competition. All these tests use a DRBG based on AES-256/CTR to expand seed values defined in the KAT vector as entropy input for key generation and encapsulation. Note that these tests won't run when the library is configured without AES. See also: https://csrc.nist.gov/projects/post-quantum-cryptography/post-quantum-cryptography-standardization/example-files 13890
test_rfc6979.cpp 1538
test_rng.h RNG that outputs only a given set of fixed bytes, throws otherwise. Useful for test vectors with fixed nonces, where the algorithm consumes only the fixed nonce. 7028
test_rng_behavior.cpp This test uses the library in both parent and child processes. But this causes a race with other threads, where if any other test thread is holding the mlock pool mutex, it is killed after the fork. Then, in the child, any attempt to allocate or free memory will cause a deadlock. 34057
test_rng_kat.cpp header 3516
test_rngs.cpp 2332
test_roughtime.cpp 15143
test_rsa.cpp unused 15017
test_simd.cpp 10183
test_siv.cpp 1758
test_sm2.cpp provider 3912
test_sodium.cpp 40155
test_sphincsplus.cpp Test all implemented SLH-DSA instances using the data of the KAT files. 14582
test_sphincsplus_fors.cpp 3628
test_sphincsplus_utils.cpp longer than 32bits 5068
test_sphincsplus_wots.cpp 5296
test_srp6.cpp header 4662
test_stream.cpp Different providers may have additional restrictions on key sizes. Avoid testing the cipher with a key size that it does not natively support. 7916
test_strong_type.cpp 31212
test_tests.cpp Test the test framework :) 8307
test_thread_utils.cpp 1479
test_tls.cpp header 18693
test_tls_cipher_state.cpp 53610
test_tls_handshake_layer_13.cpp 20013
test_tls_handshake_state_13.cpp 5159
test_tls_handshake_transitions.cpp 3671
test_tls_hybrid_kem_key.cpp 13775
test_tls_messages.cpp 24574
test_tls_record_layer_13.cpp 53982
test_tls_rfc8448.cpp Simple version of the Padding extension (RFC 7685) to reproduce the 2nd Client_Hello in RFC8448 Section 5 (HelloRetryRequest) 150076
test_tls_session_manager.cpp 60439
test_tls_signature_scheme.cpp 2496
test_tls_stream_integration.cpp 39191
test_tls_transcript_hash_13.cpp 9658
test_tpm.cpp 2993
test_tpm2.cpp ABI version 66086
test_tss.cpp header 5357
test_uri.cpp 4974
test_utils.cpp 64602
test_utils_bitvector.cpp 53647
test_utils_buffer.cpp 34360
test_workfactor.cpp 1273
test_x448.cpp keygen_params 2191
test_x509_dn.cpp 1888
test_x509_path.cpp activate check_ocsp_online 64761
test_x25519.cpp unused 5448
test_xmss.cpp header 16524
test_xof.cpp 9425
test_zfec.cpp header 3351
tests.cpp 38703
tests.h 35814
unit_asio_stream.cpp Mocked Botan::TLS::Channel. Pretends to perform TLS operations and triggers appropriate callbacks in StreamCore. 31067
unit_ecdsa.cpp 7036
unit_tls.cpp type 57946
unit_tls_policy.cpp 6929
unit_x509.cpp Return some option sets 74916