Contents¶
- Getting Started
- Project Goals
- Support Information
- Building The Library
- Configuring the Build
- Common Build Targets
- Cross Compiling
- On Unix
- On macOS
- On Windows
- Ninja Support
- For iOS using XCode
- For Android
- Emscripten (WebAssembly)
- Supporting Older Distros
- Other Build-Related Tasks
- Building Applications
- Language Wrappers
- Minimized Builds
- Configure Script Options
--cpu=CPU
--os=OS
--cc=COMPILER
--cc-min-version=MAJOR.MINOR
--cc-bin=BINARY
--cc-abi-flags=FLAGS
--cxxflags=FLAGS
--extra-cxxflags=FLAGS
--ldflags=FLAGS
--ar-command=AR
--ar-options=AR_OPTIONS
--msvc-runtime=RT
--compiler-cache
--with-endian=ORDER
--with-os-features=FEAT
--without-os-features=FEAT
--enable-experimental-features
--disable-experimental-features
--enable-deprecated-features
--disable-deprecated-features
--disable-sse2
--disable-ssse3
--disable-sse4.1
--disable-sse4.2
--disable-avx2
--disable-bmi2
--disable-rdrand
--disable-rdseed
--disable-aes-ni
--disable-sha-ni
--disable-altivec
--disable-neon
--disable-armv8crypto
--disable-powercrypto
--system-cert-bundle=PATH
--with-debug-info
--with-sanitizers
--enable-sanitizers=SAN
--without-stack-protector
--with-coverage-info
--disable-shared-library
--disable-static-library
--optimize-for-size
--no-optimizations
--debug-mode
--amalgamation
--name-amalgamation
--with-build-dir=DIR
--with-external-includedir=DIR
--with-external-libdir=DIR
--define-build-macro
--with-sysroot-dir=DIR
--link-method=METHOD
--with-local-config=FILE
--distribution-info=STRING
--maintainer-mode
--werror-mode
--no-install-python-module
--with-python-versions=N.M
--with-valgrind
--unsafe-fuzzer-mode
--build-fuzzers=TYPE
--with-fuzzer-lib=LIB
--build-targets=BUILD_TARGETS
--without-documentation
--with-sphinx
--with-pdf
--with-rst2man
--with-doxygen
--module-policy=POL
--enable-modules=MODS
--disable-modules=MODS
--minimized-build
--with-boost
--with-bzip2
--with-lzma
--with-zlib
--with-commoncrypto
--with-sqlite3
--with-tpm
--with-tpm2
--program-suffix=SUFFIX
--library-suffix=SUFFIX
--prefix=DIR
--docdir=DIR
--bindir=DIR
--libdir=DIR
--mandir=DIR
--includedir=DIR
--list-modules
- Semantic Versioning
- Botan 2.x to 3.x Migration
- Headers
- Build Artifacts
- TLS
- Algorithms Removed
- Certificate API shared_ptr
- All Or Nothing Package Transform
- Exception Changes
- X.509 Certificate Info Access
- OCSP Response Validation
- Use of
enum class
- ASN.1 enums
- Cipher Mode Granularity
- “SHA-160” and “SHA1”
- PointGFp
- X509::load_key
- PKCS11_Request::subject_public_key and X509_Certificate::subject_public_key
- choose_sig_format removed
- DLIES Constructors
- Credentials_Manager::private_key_for
- OID operator+
- RSA with “EMSA1” padding
- ECDSA/DSA with “EMSA1” padding
- Signature Algorithm OIDs
- Public Key Signature Padding
- Discrete Logarithm Key Changes
- XMSS Signature Changes
- Random Number Generator
- OpenSSL 1.1 to Botan 3.x Migration
- API Reference
- Footguns
- Versioning
- Memory container
- Random Number Generators
- Hash Functions and Checksums
- Block Ciphers
BlockCipher
BlockCipher::create
BlockCipher::create_or_throw
BlockCipher::set_key
BlockCipher::valid_keylength
BlockCipher::minimum_keylength
BlockCipher::maximum_keylength
BlockCipher::name
BlockCipher::clear
BlockCipher::new_object
BlockCipher::block_size
BlockCipher::parallelism
BlockCipher::parallel_bytes
BlockCipher::provider
BlockCipher::encrypt_n
BlockCipher::decrypt_n
BlockCipher::encrypt
BlockCipher::encrypt
BlockCipher::decrypt
BlockCipher::decrypt
BlockCipher::encrypt
BlockCipher::decrypt
- Code Example
- Available Ciphers
- Stream Ciphers
StreamCipher
StreamCipher::name
StreamCipher::clear
StreamCipher::new_object
StreamCipher::set_key
StreamCipher::valid_keylength
StreamCipher::minimum_keylength
StreamCipher::maximum_keylength
StreamCipher::valid_iv_length
StreamCipher::default_iv_length
StreamCipher::set_iv
StreamCipher::seek
StreamCipher::cipher
StreamCipher::cipher1
StreamCipher::encipher
StreamCipher::encrypt
StreamCipher::decrypt
- Code Example
- Available Stream Ciphers
- Message Authentication Codes (MAC)
MessageAuthenticationCode
MessageAuthenticationCode::name
MessageAuthenticationCode::clear
MessageAuthenticationCode::new_object
MessageAuthenticationCode::set_key
MessageAuthenticationCode::valid_keylength
MessageAuthenticationCode::minimum_keylength
MessageAuthenticationCode::maximum_keylength
MessageAuthenticationCode::start
MessageAuthenticationCode::update
MessageAuthenticationCode::update
MessageAuthenticationCode::update
MessageAuthenticationCode::final
MessageAuthenticationCode::final
MessageAuthenticationCode::verify_mac
- Code Examples
- Available MACs
- Cipher Modes
Cipher_Mode
Cipher_Mode::set_key
Cipher_Mode::valid_keylength
Cipher_Mode::minimum_keylength
Cipher_Mode::maximum_keylength
Cipher_Mode::default_nonce_length
Cipher_Mode::valid_nonce_length
Cipher_Mode::authenticated
Cipher_Mode::tag_size
Cipher_Mode::clear
Cipher_Mode::reset
Cipher_Mode::start_msg
Cipher_Mode::start
Cipher_Mode::start
Cipher_Mode::update_granularity
Cipher_Mode::ideal_granularity
Cipher_Mode::process
Cipher_Mode::update
Cipher_Mode::minimum_final_size
Cipher_Mode::finish
- Code Example
- Available Unauthenticated Cipher Modes
- AEAD Mode
- Available AEAD Modes
- Public Key Cryptography
- Key Objects
- Public Key Algorithms
- Creating New Private Keys
- Serializing Private Keys Using PKCS #8
- Serializing Public Keys
- DL_Group
- EC_Group
- Key Checking
- Public Key Encryption/Decryption
- Public Key Signature Schemes
- Key Agreement
- Key Encapsulation
- McEliece cryptosystem
- eXtended Merkle Signature Scheme (XMSS)
- Hierarchical Signature System with Leighton-Micali Hash-Based Signatures (HSS-LMS)
- X.509 Certificates and CRLs
X509_Certificate
X509_Certificate::X509_Certificate
X509_Certificate::X509_Certificate
X509_Certificate::X509_Certificate
X509_Certificate::subject_dn
X509_Certificate::issuer_dn
X509_Certificate::subject_alt_name
X509_Certificate::issuer_alt_name
X509_Certificate::load_subject_public_key
X509_Certificate::subject_public_key_bits
X509_Certificate::subject_public_key_algo
X509_Certificate::serial_number
X509_Certificate::raw_subject_dn
X509_Certificate::raw_issuer_dn
X509_Certificate::not_before
X509_Certificate::not_after
X509_Certificate::v3_extensions
X509_Certificate::authority_key_id
X509_Certificate::subject_key_id
X509_Certificate::allowed_extended_usage
X509_Certificate::extended_key_usage
X509_Certificate::fingerprint
X509_Certificate::constraints
X509_Certificate::matches_dns_name
X509_Certificate::to_string
X509_Certificate::PEM_encode
X509_Certificate::BER_encode
- X.509 Distinguished Names
- X.509v3 Extensions
- Certificate Revocation Lists
- In Memory Certificate Store
- System Certificate Stores
- Flatfile Certificate Stores
- SQL-backed Certificate Stores
Certificate_Store_In_SQL
Certificate_Store_In_SQL::Certificate_Store_In_SQL
Certificate_Store_In_SQL::insert_cert
Certificate_Store_In_SQL::remove_cert
Certificate_Store_In_SQL::find_key
Certificate_Store_In_SQL::find_certs_for_key
Certificate_Store_In_SQL::insert_key
Certificate_Store_In_SQL::remove_key
Certificate_Store_In_SQL::revoke_cert
Certificate_Store_In_SQL::affirm_cert
Certificate_Store_In_SQL::generate_crls
Certificate_Store_In_SQLite
- Path Validation
- Code Example
- Creating New Certificates
- Generating CRLs
- Self-Signed Certificates
- Creating PKCS #10 Requests
- Certificate Options
- Transport Layer Security (TLS)
tls_emit_data
tls_record_received
tls_alert
tls_session_established
tls_verify_cert_chain
tls_verify_cert_chain_ocsp_timeout
tls_server_choose_app_protocol
tls_session_activated
tls_provide_cert_status
tls_provide_cert_chain_status
tls_peer_network_identity
tls_inspect_handshake_msg
tls_modify_extensions
tls_examine_extensions
tls_log_error
tls_log_debug
tls_log_debug_bin
- TLS Channels
Channel
Channel::received_data
Channel::received_data
Channel::send
Channel::send
Channel::send
Channel::close
Channel::send_alert
Channel::is_active
Channel::is_closed
Channel::is_closed_for_reading
Channel::is_closed_for_writing
Channel::timeout_check
Channel::renegotiate
Channel::update_traffic_keys
Channel::peer_cert_chain
Channel::external_psk_identity
Channel::key_material_export
- TLS Clients
- TLS Servers
- TLS Sessions
- TLS Session Managers
- TLS Policies
Policy
Policy::allowed_ciphers
Policy::allowed_macs
Policy::allowed_key_exchange_methods
Policy::allowed_signature_hashes
Policy::allowed_signature_methods
Policy::key_exchange_groups
Policy::key_exchange_groups_to_offer
Policy::use_ecc_point_compression
Policy::acceptable_protocol_version
Policy::server_uses_own_ciphersuite_preferences
Policy::allow_client_initiated_renegotiation
Policy::allow_server_initiated_renegotiation
Policy::abort_connection_on_undesired_renegotiation
Policy::allow_insecure_renegotiation
Policy::minimum_signature_strength
Policy::require_cert_revocation_info
Policy::default_dh_group
Policy::minimum_dh_group_size
Policy::allow_tls12
Policy::allow_tls13
Policy::minimum_rsa_bits
Policy::minimum_dsa_group_size
Policy::minimum_ecdsa_group_size
Policy::minimum_ecdh_group_size
Policy::check_peer_key_acceptable
Policy::hide_unknown_users
Policy::session_ticket_lifetime
Policy::new_session_tickets_upon_handshake_success
Policy::record_size_limit
Policy::tls_13_middlebox_compatibility_mode
- TLS Ciphersuites
- TLS Alerts
- TLS Protocol Version
- Post-quantum-secure key exchange
- TLS Custom Key Exchange Mechanisms
- TLS Stream
- TLS Session Encryption
- Credentials Manager
- BigInt
BigInt
BigInt::BigInt
BigInt::from_u64
BigInt::BigInt
BigInt::BigInt
BigInt::BigInt
BigInt::operator+
BigInt::operator+
BigInt::operator+
BigInt::operator-
BigInt::operator-
BigInt::operator*
BigInt::operator/
BigInt::operator%
BigInt::operator%
BigInt::operator<<
BigInt::operator>>
BigInt::operator+=
BigInt::operator+=
BigInt::operator-=
BigInt::operator-=
BigInt::operator*=
BigInt::operator*=
BigInt::operator/=
BigInt::operator%=
BigInt::operator%=
BigInt::operator<<=
BigInt::operator>>=
BigInt::operator++
BigInt::operator--
BigInt::operator++
BigInt::operator--
BigInt::operator-
BigInt::operator!
BigInt::clear
BigInt::bytes
BigInt::bits
BigInt::is_even
BigInt::is_odd
BigInt::is_nonzero
BigInt::is_zero
BigInt::set_bit
BigInt::clear_bit
BigInt::get_bit
BigInt::to_u32bit
BigInt::is_negative
BigInt::is_positive
BigInt::abs
BigInt::serialize_to
BigInt::to_dec_string
BigInt::to_hex_string
- Number Theory
- Key Derivation Functions (KDF)
- Password Based Key Derivation
- PasswordHash
PasswordHash
PasswordHash::hash
PasswordHash::hash
PasswordHash::derive_key
PasswordHash::derive_key
PasswordHash::to_string
PasswordHash::iterations
PasswordHash::memory_param
PasswordHash::parallelism
PasswordHash::total_memory_usage
PasswordHash::supports_keyed_operation
PasswordHash::supports_associated_data
PasswordHashFamily
- Code Examples
- Available Schemes
- PBKDF
- PasswordHash
- AES Key Wrapping
- Password Hashing
- Cryptobox
- Secure Remote Password
- PSK Database
- Pipe/Filter Message Processing
- Format Preserving Encryption
- Threshold Secret Sharing
- Elliptic Curve Operations
EC_Group
EC_Group::from_OID
EC_Group::from_name
EC_Group::from_PEM
EC_Group::EC_Group
EC_Group::EC_Group
EC_Group::EC_Group
EC_Group::DER_encode
EC_Group::DER_encode
EC_Group::PEM_encode
EC_Group::get_p
EC_Group::get_a
EC_Group::get_b
EC_Group::get_base_point
EC_Group::get_g_x
EC_Group::get_g_y
EC_Group::get_order
EC_Group::get_cofactor
EC_Group::get_curve_oid
EC_Group::verify_group
EC_Group::known_named_groups
EC_Scalar
EC_Scalar::deserialize
EC_Scalar::from_bytes_with_trunc
EC_Scalar::from_bytes_mod_order
EC_Scalar::EC_Scalar
EC_Scalar::random
EC_Scalar::gk_x_mod_order
EC_Scalar::bytes
EC_Scalar::serialize_to
EC_Scalar::is_zero
EC_Scalar::is_nonzero
EC_Scalar::invert
EC_Scalar::negate
EC_Scalar::operator+
EC_Scalar::operator-
EC_Scalar::operator*
EC_Scalar::operator==
EC_AffinePoint
EC_AffinePoint::EC_AffinePoint
EC_AffinePoint::deserialize
EC_AffinePoint::g_mul
EC_AffinePoint::mul
EC_AffinePoint::hash_to_curve_ro
EC_AffinePoint::hash_to_curve_nu
EC_AffinePoint::field_element_bytes
EC_AffinePoint::serialize_x_to
EC_AffinePoint::serialize_y_to
EC_AffinePoint::serialize_xy_to
EC_AffinePoint::serialize_compressed_to
EC_AffinePoint::serialize_uncompressed_to
- Lossless Data Compression
- External Providers
- PKCS#11
- Low Level API
- High Level API
- Module
- Slot
- Session
- Objects
AttributeContainer
add_class
add_string
add_binary
add_binary
add_bool
add_numeric
ObjectProperties
ObjectProperties
StorageObjectProperties
StorageObjectProperties
set_label
Object
Object
Object
get_attribute_value
set_attribute_value
destroy
copy
search
search
search
search
search
ObjectFinder
ObjectFinder
find
finish
- RSA
- ECDSA
- ECDH
- RNG
- Token Management Functions
- X.509
- Tests
- Tested/Supported Smartcards
- Trusted Platform Module (TPM)
- One Time Passwords
- Roughtime
- ZFEC Forward Error Correction
- FFI (C Binding)
- Rules of Engagement
- Return Codes
BOTAN_FFI_SUCCESS
BOTAN_FFI_INVALID_VERIFIER
BOTAN_FFI_ERROR_INVALID_INPUT
BOTAN_FFI_ERROR_BAD_MAC
BOTAN_FFI_ERROR_INSUFFICIENT_BUFFER_SPACE
BOTAN_FFI_ERROR_STRING_CONVERSION_ERROR
BOTAN_FFI_ERROR_EXCEPTION_THROWN
BOTAN_FFI_ERROR_OUT_OF_MEMORY
BOTAN_FFI_ERROR_SYSTEM_ERROR
BOTAN_FFI_ERROR_INTERNAL_ERROR
BOTAN_FFI_ERROR_BAD_FLAG
BOTAN_FFI_ERROR_NULL_POINTER
BOTAN_FFI_ERROR_BAD_PARAMETER
BOTAN_FFI_ERROR_KEY_NOT_SET
BOTAN_FFI_ERROR_INVALID_KEY_LENGTH
BOTAN_FFI_ERROR_INVALID_OBJECT_STATE
BOTAN_FFI_ERROR_NOT_IMPLEMENTED
BOTAN_FFI_ERROR_INVALID_OBJECT
BOTAN_FFI_TPM_ERROR
BOTAN_FFI_ERROR_UNKNOWN_ERROR
botan_error_last_exception_message
- Versioning
- View Functions
- Utility Functions
- Random Number Generators
- Block Ciphers
- Hash Functions
- Message Authentication Codes
- Symmetric Ciphers
botan_cipher_t
botan_cipher_init
botan_cipher_destroy
botan_cipher_clear
botan_cipher_set_key
botan_cipher_is_authenticated
botan_cipher_requires_entire_message
botan_cipher_get_tag_length
botan_cipher_valid_nonce_length
botan_cipher_get_default_nonce_length
botan_cipher_get_update_granularity
botan_cipher_get_ideal_update_granularity
botan_cipher_set_associated_data
botan_cipher_start
botan_cipher_update
- PBKDF
- KDF
- Multiple Precision Integers
botan_mp_t
botan_mp_init
botan_mp_destroy
botan_mp_to_hex
botan_mp_to_str
botan_mp_set_from_int
botan_mp_set_from_mp
botan_mp_set_from_str
botan_mp_num_bits
botan_mp_num_bytes
botan_mp_to_bin
botan_mp_from_bin
botan_mp_is_negative
botan_mp_flip_sign
botan_mp_add
botan_mp_sub
botan_mp_mul
botan_mp_div
botan_mp_mod_mul
botan_mp_equal
botan_mp_is_zero
botan_mp_is_odd
botan_mp_is_even
botan_mp_is_positive
botan_mp_is_negative
botan_mp_to_uint32
botan_mp_cmp
botan_mp_swap
botan_mp_powmod
botan_mp_lshift
botan_mp_rshift
botan_mp_mod_inverse
botan_mp_rand_bits
botan_mp_rand_range
botan_mp_gcd
botan_mp_is_prime
botan_mp_get_bit
botan_mp_set_bit
botan_mp_clear_bit
- Password Hashing
- Public Key Creation, Import and Export
botan_privkey_t
botan_privkey_destroy
botan_privkey_create
botan_privkey_create_rsa
botan_privkey_create_ecdsa
botan_privkey_create_ecdh
botan_privkey_create_mceliece
botan_privkey_create_dh
botan_privkey_load
botan_privkey_export
botan_privkey_view_encrypted_der
botan_privkey_view_encrypted_der_timed
botan_privkey_view_encrypted_pem
botan_privkey_view_encrypted_pem_timed
botan_privkey_view_der
botan_privkey_view_pem
botan_privkey_view_raw
botan_privkey_export_encrypted
botan_privkey_export_pubkey
botan_privkey_get_field
botan_pubkey_t
botan_pubkey_load
botan_pubkey_export
botan_pubkey_view_der
botan_pubkey_view_pem
botan_pubkey_view_raw
botan_pubkey_algo_name
botan_pubkey_estimated_strength
botan_pubkey_fingerprint
botan_pubkey_destroy
botan_pubkey_get_field
- RSA specific functions
- DSA specific functions
- ElGamal specific functions
- Diffie-Hellman specific functions
- Public Key Encryption/Decryption
- Signature Generation
- Signature Verification
- Key Agreement
- Public Key Encapsulation
botan_pk_op_kem_encrypt_t
botan_pk_op_kem_encrypt_create
botan_pk_op_kem_encrypt_destroy
botan_pk_op_kem_encrypt_shared_key_length
botan_pk_op_kem_encrypt_encapsulated_key_length
botan_pk_op_kem_encrypt_create_shared_key
botan_pk_op_kem_decrypt_t
botan_pk_op_kem_decrypt_create
botan_pk_op_kem_decrypt_shared_key_length
botan_pk_op_kem_decrypt_shared_key
botan_pk_op_kem_decrypt_destroy
- TPM 2.0 Functions
- X.509 Certificates
botan_x509_cert_t
botan_x509_cert_load
botan_x509_cert_load_file
botan_x509_cert_dup
botan_x509_cert_destroy
botan_x509_cert_gen_selfsigned
botan_x509_cert_get_time_starts
botan_x509_cert_get_time_expires
botan_x509_cert_not_before
botan_x509_cert_not_after
botan_x509_cert_get_fingerprint
botan_x509_cert_get_serial_number
botan_x509_cert_get_authority_key_id
botan_x509_cert_get_subject_key_id
botan_x509_cert_get_public_key_bits
botan_x509_cert_view_public_key_bits
botan_x509_cert_get_public_key
botan_x509_cert_get_issuer_dn
botan_x509_cert_get_subject_dn
botan_x509_cert_to_string
botan_x509_cert_view_as_string
botan_x509_cert_key_constraints
botan_x509_cert_allowed_usage
botan_x509_cert_verify
botan_x509_cert_verify_with_crl
botan_x509_cert_validation_status
- X.509 Certificate Revocation Lists
- ZFEC (Forward Error Correction)
- Environment Variables
- Python Binding
- Versioning
- Random Number Generators
- Hash Functions
- Message Authentication Codes
- Ciphers
SymmetricCipher
SymmetricCipher.algo_name
SymmetricCipher.tag_length
SymmetricCipher.default_nonce_length
SymmetricCipher.update_granularity
SymmetricCipher.is_authenticated
SymmetricCipher.valid_nonce_length
SymmetricCipher.clear
SymmetricCipher.set_key
SymmetricCipher.set_assoc_data
SymmetricCipher.start
SymmetricCipher.update
SymmetricCipher.finish
- Bcrypt
- PBKDF
- Scrypt
- KDF
- Public Key
PublicKey
PublicKey.load
PublicKey.load_rsa
PublicKey.load_dsa
PublicKey.load_dh
PublicKey.load_elgamal
PublicKey.load_ecdsa
PublicKey.load_ecdh
PublicKey.load_sm2
PublicKey.load_ml_kem
PublicKey.load_ml_dsa
PublicKey.load_slh_dsa
PublicKey.export
PublicKey.to_der
PublicKey.to_pem
PublicKey.to_raw
PublicKey.get_field
PublicKey.fingerprint
PublicKey.algo_name
PublicKey.estimated_strength
- Private Key
PrivateKey
PrivateKey.create
PrivateKey.load
PrivateKey.load_rsa
PrivateKey.load_dsa
PrivateKey.load_dh
PrivateKey.load_elgamal
PrivateKey.load_ecdsa
PrivateKey.load_ecdh
PrivateKey.load_sm2
PrivateKey.load_ml_kem
PrivateKey.load_ml_dsa
PrivateKey.load_slh_dsa
PrivateKey.get_public_key
PrivateKey.to_pem
PrivateKey.to_der
PrivateKey.to_raw
PrivateKey.algo_name
PrivateKey.export
PrivateKey.export_encrypted
PrivateKey.get_field
- Public Key Operations
- TPM 2.0 Bindings
- Multiple Precision Integers (MPI)
- Format Preserving Encryption (FE1 scheme)
- HOTP
- X509Cert
X509Cert
X509Cert.time_starts
X509Cert.time_expires
X509Cert.to_string
X509Cert.fingerprint
X509Cert.serial_number
X509Cert.authority_key_id
X509Cert.subject_key_id
X509Cert.subject_public_key_bits
X509Cert.subject_public_key
X509Cert.subject_dn
X509Cert.issuer_dn
X509Cert.hostname_match
X509Cert.not_before
X509Cert.not_after
X509Cert.allowed_usage
X509Cert.verify
X509Cert.validation_status
X509Cert.is_revoked
- X509CRL
- Command Line Interface
- Hardware Acceleration
- Deprecated Features
- Development Roadmap
- Credits
- ABI Stability
- Notes for Distributors
- Security Advisories
- Side Channels
- Modular Exponentiation
- Barrett Reduction
- RSA
- Decryption of PKCS #1 v1.5 Ciphertexts
- Verification of PKCS #1 v1.5 Signatures
- OAEP
- ECC point decoding
- ECC scalar multiply
- ECDH
- ECDSA
- x25519
- TLS CBC ciphersuites
- CBC mode padding
- base64 decoding
- AES
- GCM
- OCB
- Poly1305
- DES/3DES
- Twofish
- ChaCha20, Serpent, Threefish, …
- IDEA
- Hash Functions
- Memory comparisons
- Memory zeroizing
- Memory allocation
- Automated Analysis
- References
- Developer Reference
- Notes for New Contributors
- Understanding configure.py
- Test Framework
- Namespaces in Test
- Test Data
- Test
- Test::Result
Result
Result::Result
Result::test_success
Result::test_success
Result::test_failure
Result::test_failure
Result::test_failure
Result::test_eq
Result::test_ne
Result::test_eq
Result::test_ne
Result::test_eq
Result::test_ne
Result::confirm
Result::test_not_null
Result::test_lt
Result::test_lte
Result::test_gt
Result::test_gte
Result::test_throws
Result::test_throws
- Text_Based_Test
- Test Runner
- Continuous Integration and Automated Testing
- Fuzzing The Library
- Release Process and Checklist
- Todo List
- OS Features
- Private OID Assignments
- Checklist For Next Major Version
- Reading List
- Mistakes Were Made