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