Botan
2.1.0
Crypto and TLS for C++11
|
#include <sha3.h>
Public Member Functions | |
void | clear () override |
HashFunction * | clone () const override |
void | final (uint8_t out[]) |
secure_vector< uint8_t > | final () |
template<typename Alloc > | |
void | final (std::vector< uint8_t, Alloc > &out) |
std::vector< uint8_t > | final_stdvec () |
size_t | hash_block_size () const override |
std::string | name () const override |
size_t | output_length () const override |
secure_vector< uint8_t > | process (const uint8_t in[], size_t length) |
secure_vector< uint8_t > | process (const secure_vector< uint8_t > &in) |
secure_vector< uint8_t > | process (const std::vector< uint8_t > &in) |
secure_vector< uint8_t > | process (const std::string &in) |
virtual std::string | provider () const |
SHA_3 (size_t output_bits) | |
void | update (const uint8_t in[], size_t length) |
void | update (const secure_vector< uint8_t > &in) |
void | update (const std::vector< uint8_t > &in) |
void | update (const std::string &str) |
void | update (uint8_t in) |
template<typename T > | |
void | update_be (const T in) |
Static Public Member Functions | |
static size_t | absorb (size_t bitrate, secure_vector< uint64_t > &S, size_t S_pos, const uint8_t input[], size_t length) |
static std::unique_ptr< HashFunction > | create (const std::string &algo_spec, const std::string &provider="") |
static std::unique_ptr< HashFunction > | create_or_throw (const std::string &algo_spec, const std::string &provider="") |
static void | expand (size_t bitrate, secure_vector< uint64_t > &S, uint8_t output[], size_t output_length) |
static void | permute (uint64_t A[25]) |
static std::vector< std::string > | providers (const std::string &algo_spec) |
Botan::SHA_3::SHA_3 | ( | size_t | output_bits | ) |
output_bits | the size of the hash output; must be one of 224, 256, 384, or 512 |
Definition at line 98 of file sha3.cpp.
References Botan::ASN1::to_string().
Referenced by clone().
|
static |
Absorb data into the provided state
bitrate | the bitrate to absorb into the sponge |
S | the sponge state |
S_pos | where to begin absorbing into S |
input | the input data |
length | size of input in bytes |
Definition at line 129 of file sha3.cpp.
References Botan::load_le< uint64_t >(), Botan::CT::min(), and permute().
|
overridevirtual |
Reset the state.
Implements Botan::HashFunction.
Definition at line 122 of file sha3.cpp.
References Botan::zeroise().
|
overridevirtual |
Implements Botan::HashFunction.
Definition at line 117 of file sha3.cpp.
References SHA_3().
|
staticinherited |
Create an instance based on a name, or return null if the algo/provider combination cannot be found. If provider is empty then best available is chosen.
Definition at line 93 of file hash.cpp.
References Botan::SCAN_Name::algo_name(), Botan::SCAN_Name::arg(), Botan::SCAN_Name::arg_as_integer(), Botan::SCAN_Name::arg_count(), hash, and Botan::make_openssl_hash().
Referenced by botan_hash_init(), botan_pubkey_fingerprint(), Botan::OCSP::CertID::CertID(), Botan::BlockCipher::create(), Botan::MessageAuthenticationCode::create(), Botan::PBKDF::create(), Botan::KDF::create(), Botan::HashFunction::create_or_throw(), Botan::Certificate_Store_In_Memory::find_cert_by_pubkey_sha1(), Botan::Certificate_Store_In_Memory::find_cert_by_raw_subject_dn_sha256(), Botan::Private_Key::fingerprint(), Botan::X509_Certificate::fingerprint(), Botan::get_eme(), Botan::get_emsa(), Botan::get_hash(), Botan::get_hash_function(), Botan::OCSP::CertID::is_id_for(), Botan::X942_PRF::kdf(), Botan::newhope_shareda(), Botan::newhope_sharedb(), Botan::X509_Certificate::raw_issuer_dn_sha256(), Botan::X509_Certificate::raw_subject_dn_sha256(), and Botan::X509_Certificate::subject_public_key_bitstring_sha1().
|
staticinherited |
Create an instance based on a name If provider is empty then best available is chosen.
algo_spec | algorithm name |
provider | provider implementation to use Throws Lookup_Error if not not found. |
Definition at line 303 of file hash.cpp.
References Botan::HashFunction::create(), and hash.
Referenced by Botan::choose_sig_format(), Botan::TLS::Handshake_Hash::final(), Botan::generate_dsa_primes(), and Botan::make_hash_function().
|
static |
Expand from provided state
bitrate | sponge parameter |
S | the state |
output | the output buffer |
output_length | the size of output in bytes |
Definition at line 176 of file sha3.cpp.
References BOTAN_ARG_CHECK, Botan::get_byte(), output_length(), and permute().
|
inlineinherited |
Complete the computation and retrieve the final result.
out | The byte array to be filled with the result. Must be of length output_length() |
Definition at line 89 of file buf_comp.h.
Referenced by botan_hash_final(), botan_mac_final(), Botan::TLS::TLS_CBC_HMAC_AEAD_Encryption::finish(), Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::finish(), Botan::mgf1_mask(), and Botan::pbkdf2().
|
inlineinherited |
Complete the computation and retrieve the final result.
Definition at line 96 of file buf_comp.h.
|
inlineinherited |
Definition at line 111 of file buf_comp.h.
|
inlineinherited |
Definition at line 103 of file buf_comp.h.
|
inlineoverridevirtual |
Reimplemented from Botan::HashFunction.
|
overridevirtual |
Implements Botan::HashFunction.
Definition at line 112 of file sha3.cpp.
References Botan::ASN1::to_string().
|
inlineoverridevirtual |
Implements Botan::Buffered_Computation.
Definition at line 31 of file sha3.h.
Referenced by expand().
|
static |
The bare Keccak-1600 permutation
Definition at line 15 of file sha3.cpp.
References Botan::rotate_left().
Referenced by absorb(), Botan::SHAKE_128_Cipher::cipher(), and expand().
|
inlineinherited |
Update and finalize computation. Does the same as calling update() and final() consecutively.
in | the input to process as a byte array |
length | the length of the byte array |
Definition at line 124 of file buf_comp.h.
Referenced by Botan::RTSS_Share::split().
|
inlineinherited |
Update and finalize computation. Does the same as calling update() and final() consecutively.
in | the input to process |
Definition at line 136 of file buf_comp.h.
|
inlineinherited |
Update and finalize computation. Does the same as calling update() and final() consecutively.
in | the input to process |
Definition at line 148 of file buf_comp.h.
|
inlineinherited |
Update and finalize computation. Does the same as calling update() and final() consecutively.
in | the input to process as a string |
Definition at line 160 of file buf_comp.h.
|
inlinevirtualinherited |
|
staticinherited |
algo_spec | algorithm name |
Definition at line 313 of file hash.cpp.
Referenced by Botan::get_hash_function_providers().
|
inlineinherited |
Add new input to process.
in | the input to process as a byte array |
length | of param in in bytes |
Definition at line 34 of file buf_comp.h.
Referenced by botan_hash_update(), botan_mac_update(), Botan::TLS::TLS_CBC_HMAC_AEAD_Encryption::finish(), Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::finish(), Botan::mgf1_mask(), and Botan::pbkdf2().
|
inlineinherited |
Add new input to process.
in | the input to process as a secure_vector |
Definition at line 40 of file buf_comp.h.
|
inlineinherited |
Add new input to process.
in | the input to process as a std::vector |
Definition at line 49 of file buf_comp.h.
|
inlineinherited |
Add new input to process.
str | the input to process as a std::string. Will be interpreted as a byte array based on the strings encoding. |
Definition at line 72 of file buf_comp.h.
|
inlineinherited |
|
inlineinherited |
Add an integer in big-endian order
in | the value |
Definition at line 58 of file buf_comp.h.
References Botan::get_byte().
Referenced by Botan::mgf1_mask(), and Botan::pbkdf2().