Name Description Size Coverage
blinding -
classic_mceliece -
curve448 -
dh -
dilithium -
dl_algo -
dl_group -
dlies -
dsa -
ec_group -
ecc_key -
ecdh -
ecdsa -
ecgdsa -
ecies -
eckcdsa -
ed25519 -
elgamal -
frodokem -
gost_3410 -
hss_lms -
hybrid_kem -
info.txt 408 -
kex_to_kem_adapter -
keypair -
kyber -
mce -
pbes2 -
pem -
pk_algs.cpp 20433 -
pk_algs.h Create a new key For ECC keys, algo_params specifies EC group (eg, "secp256r1") For DH/DSA/ElGamal keys, algo_params is DL group (eg, "modp/ietf/2048") For RSA, algo_params is integer keylength For McEliece, algo_params is n,t If algo_params is left empty, suitable default parameters are chosen. 1756 -
pk_keys.cpp Hash of the X.509 subjectPublicKey encoding 5456 -
pk_keys.h Enumeration specifying the signature format. This is mostly used for requesting DER encoding of ECDSA signatures; most other algorithms only support "standard". 16123 -
pk_ops.cpp This is potentially not const time, depending on how std::vector is implemented. But since we are always reducing length, it should just amount to setting the member var holding the length. Resizing downwards is guaranteed to not change the capacity, and since we set ctext to the maximum possible size (equal to the raw input) we know that this is always, if anything, resizing smaller than the capacity, so no reallocation occurs. 9510 -
pk_ops.h Ordinary applications should never need to include or use this header. It is exposed only for specialized applications which want to implement new versions of public key crypto without merging them as changes to the library. One actual example of such usage is an application which creates RSA signatures using a custom TPM library. Unless you're doing something like that, you don't need anything here. Instead use pubkey.h which wraps these types safely and provides a stable application-oriented API. Note: This header was accidentally pulled from the public API between Botan 3.0.0 and 3.2.0, and then restored in 3.3.0. If you are maintaining an application which used this header in Botan 2.x, you should make sure to use Botan 3.3.0 or later when migrating. 5393 -
pk_ops_fwd.h 412 -
pk_ops_impl.h Perform a signature check operation @param msg the message @param sig the signature @returns if sig is a valid signature for msg 5003 -
pkcs8.cpp Get info from an EncryptedPrivateKeyInfo 12202 -
pkcs8.h PKCS #8 General Exception 9610 -
pqcrystals -
pubkey.cpp If an offset repeats we don't detect this and just return a PMS that satisfies the last requested index. If the requested (idx,value) tuple is the same, that's fine and just redundant. If they disagree, decryption will always fail, since the same byte cannot possibly have two distinct values. 18123 -
pubkey.h Public Key Encryptor This is the primary interface for public key encryption 31317 -
rfc6979 -
rsa -
sm2 -
sphincsplus -
workfactor.cpp 1522 -
workfactor.h Estimate work factor for discrete logarithm @param prime_group_size size of the group in bits @return estimated security level for this group 1503 -
x509_key.cpp PEM encode a X.509 public key 1324 -
x509_key.h BER encode a key @param key the public key to encode @return BER encoding of this key 2142 -
x25519 -
xmss -