Name Description Size Coverage
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 -