Botan 1.10.17
pbkdf.h
Go to the documentation of this file.
1/*
2* PBKDF
3* (C) 1999-2007 Jack Lloyd
4*
5* Distributed under the terms of the Botan license
6*/
7
8#ifndef BOTAN_PBKDF_H__
9#define BOTAN_PBKDF_H__
10
11#include <botan/algo_base.h>
12#include <botan/symkey.h>
13
14namespace Botan {
15
16/**
17* Base class for PBKDF (password based key derivation function)
18* implementations. Converts a password into a key using a salt
19* and iterated hashing to make brute force attacks harder.
20*/
21class BOTAN_DLL PBKDF : public Algorithm
22 {
23 public:
24
25 /**
26 * @return new instance of this same algorithm
27 */
28 virtual PBKDF* clone() const = 0;
29
30 void clear() {}
31
32 /**
33 * Derive a key from a passphrase
34 * @param output_len the desired length of the key to produce
35 * @param passphrase the password to derive the key from
36 * @param salt a randomly chosen salt
37 * @param salt_len length of salt in bytes
38 * @param iterations the number of iterations to use (use 10K or more)
39 */
40 virtual OctetString derive_key(size_t output_len,
41 const std::string& passphrase,
42 const byte salt[], size_t salt_len,
43 size_t iterations) const = 0;
44 };
45
46/**
47* For compatability with 1.8
48*/
49typedef PBKDF S2K;
50
51}
52
53#endif
virtual OctetString derive_key(size_t output_len, const std::string &passphrase, const byte salt[], size_t salt_len, size_t iterations) const =0
void clear()
Definition pbkdf.h:30
virtual PBKDF * clone() const =0
PBKDF S2K
Definition pbkdf.h:49