Botan 1.10.17
Botan::PBKDF Class Referenceabstract

#include <pbkdf.h>

Inheritance diagram for Botan::PBKDF:
Botan::Algorithm Botan::OpenPGP_S2K Botan::PKCS5_PBKDF1 Botan::PKCS5_PBKDF2

Public Member Functions

void clear ()
virtual PBKDFclone () const =0
virtual OctetString derive_key (size_t output_len, const std::string &passphrase, const byte salt[], size_t salt_len, size_t iterations) const =0
virtual std::string name () const =0

Detailed Description

Base class for PBKDF (password based key derivation function) implementations. Converts a password into a key using a salt and iterated hashing to make brute force attacks harder.

Definition at line 21 of file pbkdf.h.

Member Function Documentation

◆ clear()

void Botan::PBKDF::clear ( )
inlinevirtual

Zeroize internal state

Implements Botan::Algorithm.

Definition at line 30 of file pbkdf.h.

30{}

◆ clone()

virtual PBKDF * Botan::PBKDF::clone ( ) const
pure virtual
Returns
new instance of this same algorithm

Implemented in Botan::OpenPGP_S2K, Botan::PKCS5_PBKDF1, and Botan::PKCS5_PBKDF2.

Referenced by Botan::Algorithm_Factory::make_pbkdf().

◆ derive_key()

virtual OctetString Botan::PBKDF::derive_key ( size_t output_len,
const std::string & passphrase,
const byte salt[],
size_t salt_len,
size_t iterations ) const
pure virtual

Derive a key from a passphrase

Parameters
output_lenthe desired length of the key to produce
passphrasethe password to derive the key from
salta randomly chosen salt
salt_lenlength of salt in bytes
iterationsthe number of iterations to use (use 10K or more)

Implemented in Botan::OpenPGP_S2K, Botan::PKCS5_PBKDF1, and Botan::PKCS5_PBKDF2.

◆ name()

virtual std::string Botan::Algorithm::name ( ) const
pure virtualinherited
Returns
name of this algorithm

Implemented in Botan::Adler32, Botan::AES_128, Botan::AES_128_NI, Botan::AES_128_SSSE3, Botan::AES_192, Botan::AES_192_NI, Botan::AES_192_SSSE3, Botan::AES_256, Botan::AES_256_NI, Botan::AES_256_SSSE3, Botan::ANSI_X919_MAC, Botan::ARC4, Botan::Blowfish, Botan::BMW_512, Botan::Camellia_128, Botan::Camellia_192, Botan::Camellia_256, Botan::Cascade_Cipher, Botan::CAST_128, Botan::CAST_256, Botan::CBC_MAC, Botan::CMAC, Botan::Comb4P, Botan::CRC24, Botan::CRC32, Botan::CTR_BE, Botan::DES, Botan::DESX, Botan::GOST_28147_89, Botan::GOST_34_11, Botan::HAS_160, Botan::HMAC, Botan::IDEA, Botan::KASUMI, Botan::KDF1, Botan::KDF2, Botan::Keccak_1600, Botan::Lion, Botan::LubyRackoff, Botan::MARS, Botan::MD2, Botan::MD4, Botan::MD5, Botan::MessageAuthenticationCode, Botan::MISTY1, Botan::Noekeon, Botan::OFB, Botan::OpenPGP_S2K, Botan::Parallel, Botan::PKCS5_PBKDF1, Botan::PKCS5_PBKDF2, Botan::RC2, Botan::RIPEMD_128, Botan::RIPEMD_160, Botan::SAFER_SK, Botan::Salsa20, Botan::SEED, Botan::Serpent, Botan::SHA_160, Botan::SHA_224, Botan::SHA_256, Botan::SHA_384, Botan::SHA_512, Botan::Skein_512, Botan::Skipjack, Botan::Square, Botan::SSL3_MAC, Botan::SSL3_PRF, Botan::TEA, Botan::Tiger, Botan::TLS_12_PRF, Botan::TLS_PRF, Botan::TripleDES, Botan::Turing, Botan::Twofish, Botan::Whirlpool, Botan::WiderWake_41_BE, Botan::X942_PRF, and Botan::XTEA.

Referenced by Botan::Algorithm_Factory::add_block_cipher(), Botan::Algorithm_Factory::add_hash_function(), Botan::Algorithm_Factory::add_pbkdf(), Botan::Algorithm_Factory::add_stream_cipher(), Botan::choose_sig_format(), Botan::PBE_PKCS5v15::PBE_PKCS5v15(), Botan::PBE_PKCS5v20::PBE_PKCS5v20(), Botan::StreamCipher::set_iv(), and Botan::SymmetricAlgorithm::set_key().


The documentation for this class was generated from the following file: