Botan 3.6.1
Crypto and TLS for C&
|
#include <raw_hash.h>
Public Member Functions | |
void | add_data (std::span< const uint8_t > input) override |
void | clear () override |
HashFunction * | clone () const |
std::unique_ptr< HashFunction > | copy_state () const override |
template<concepts::resizable_byte_buffer T = secure_vector<uint8_t>> | |
T | final () |
void | final (std::span< uint8_t > out) |
template<concepts::resizable_byte_buffer T> | |
void | final (T &out) |
void | final (uint8_t out[]) |
void | final_result (std::span< uint8_t > out) override |
std::vector< uint8_t > | final_stdvec () |
virtual size_t | hash_block_size () const |
std::string | name () const override |
std::unique_ptr< HashFunction > | new_object () const override |
size_t | output_length () const override |
template<concepts::resizable_byte_buffer T = secure_vector<uint8_t>> | |
T | process (const uint8_t in[], size_t length) |
template<concepts::resizable_byte_buffer T = secure_vector<uint8_t>> | |
T | process (std::span< const uint8_t > in) |
template<concepts::resizable_byte_buffer T = secure_vector<uint8_t>> | |
T | process (std::string_view in) |
virtual std::string | provider () const |
RawHashFunction (std::string_view name, size_t output_length) | |
RawHashFunction (std::unique_ptr< HashFunction > hash) | |
void | update (const uint8_t in[], size_t length) |
void | update (std::span< const uint8_t > in) |
void | update (std::string_view str) |
void | update (uint8_t in) |
void | update_be (uint16_t val) |
void | update_be (uint32_t val) |
void | update_be (uint64_t val) |
void | update_le (uint16_t val) |
void | update_le (uint32_t val) |
void | update_le (uint64_t val) |
Static Public Member Functions | |
static std::unique_ptr< HashFunction > | create (std::string_view algo_spec, std::string_view provider="") |
static std::unique_ptr< HashFunction > | create_or_throw (std::string_view algo_spec, std::string_view provider="") |
static std::vector< std::string > | providers (std::string_view algo_spec) |
This is not an actual hash function; it simply emits as the "hash" the value it is given as input. This is useful when implementing certain protocols where the hash is provided externally somehow to the unit which is generating the signature.
This is exposed as the "Raw" padding scheme for signatures.
Definition at line 23 of file raw_hash.h.
|
inline |
Definition at line 25 of file raw_hash.h.
|
inline |
Definition at line 27 of file raw_hash.h.
|
overridevirtual |
Add more data to the computation
input | is an input buffer |
Implements Botan::Buffered_Computation.
Definition at line 13 of file raw_hash.cpp.
|
overridevirtual |
Reset the state.
Implements Botan::HashFunction.
Definition at line 28 of file raw_hash.cpp.
|
inlineinherited |
|
overridevirtual |
Return a new hash object with the same state as *this. This allows computing the hash of several messages with a common prefix more efficiently than would otherwise be possible.
This function should be called clone
but that was already used for the case of returning an uninitialized object.
Implements Botan::HashFunction.
Definition at line 32 of file raw_hash.cpp.
|
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 107 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(), Botan::HashFunction::create(), Botan::make_commoncrypto_hash(), and Botan::HashFunction::provider().
Referenced by botan_hash_init(), Botan::BlockCipher::create(), Botan::EME::create(), Botan::EMSA::create(), Botan::HashFunction::create(), Botan::KDF::create(), Botan::MessageAuthenticationCode::create(), Botan::PasswordHashFamily::create(), Botan::PBKDF::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(), and Botan::X942_PRF::kdf().
|
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 found. |
Definition at line 298 of file hash.cpp.
References Botan::HashFunction::create(), and Botan::HashFunction::provider().
Referenced by botan_pubkey_fingerprint(), botan_pubkey_sm2_compute_za(), Botan::OCSP::CertID::CertID(), Botan::create_hex_fingerprint(), Botan::Sodium::crypto_hash_sha256(), Botan::Sodium::crypto_hash_sha512(), Botan::Bcrypt_PBKDF::derive_key(), Botan::EMSA_PKCS1v15_Raw::EMSA_PKCS1v15_Raw(), Botan::expand_message_xmd(), Botan::TLS::Handshake_Hash::final(), Botan::generate_dsa_primes(), Botan::OCSP::CertID::is_id_for(), Botan::TLS::make_hello_random(), Botan::Roughtime::nonce_from_blind(), Botan::TLS::Transcript_Hash_State::set_algorithm(), Botan::RTSS_Share::split(), Botan::srp6_client_agree(), Botan::srp6_generate_verifier(), Botan::SRP6_Server_Session::step1(), Botan::SRP6_Server_Session::step2(), Botan::Cert_Extension::Subject_Key_ID::Subject_Key_ID(), and Botan::PK_Ops::Verification_with_Hash::Verification_with_Hash().
|
inlineinherited |
Complete the computation and retrieve the final result as a container of your choice.
Definition at line 78 of file buf_comp.h.
References T.
|
inlineinherited |
Definition at line 86 of file buf_comp.h.
References BOTAN_ARG_CHECK.
|
inlineinherited |
Definition at line 92 of file buf_comp.h.
|
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 70 of file buf_comp.h.
Referenced by Botan::ed25519_gen_keypair(), Botan::ed25519_sign(), Botan::ed25519_verify(), Botan::PseudorandomKeyGeneration::gen(), Botan::TPM2::Verification_Operation::is_valid_signature(), Botan::mgf1_mask(), Botan::pbkdf2(), Botan::Sphincs_Hash_Functions_Sha2::PRF_msg(), Botan::Sphincs_Hash_Functions_Shake::PRF_msg(), and Botan::TPM2::Signature_Operation::sign().
|
overridevirtual |
Write the final output to out
out | is an output buffer of output_length() |
Implements Botan::Buffered_Computation.
Definition at line 17 of file raw_hash.cpp.
References Botan::copy_mem().
|
inlineinherited |
|
inlinevirtualinherited |
Reimplemented in Botan::BLAKE2b, Botan::BLAKE2s, Botan::Comb4P, Botan::GOST_34_11, Botan::Keccak_1600, Botan::MD4, Botan::MD5, Botan::RIPEMD_160, Botan::SHA_1, Botan::SHA_224, Botan::SHA_256, Botan::SHA_384, Botan::SHA_3, Botan::SHA_512, Botan::SHA_512_256, Botan::SHAKE_128, Botan::SHAKE_256, Botan::Skein_512, Botan::SM3, Botan::Streebog, and Botan::Whirlpool.
Definition at line 66 of file hash.h.
|
inlineoverridevirtual |
Implements Botan::HashFunction.
Definition at line 41 of file raw_hash.h.
|
overridevirtual |
Implements Botan::HashFunction.
Definition at line 36 of file raw_hash.cpp.
|
overridevirtual |
Implements Botan::Buffered_Computation.
Definition at line 40 of file raw_hash.cpp.
|
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 105 of file buf_comp.h.
Referenced by Botan::Kyber_Symmetric_Primitives::H(), Botan::Kyber_Symmetric_Primitives::H(), and Botan::Kyber_Symmetric_Primitives::H().
|
inlineinherited |
Update and finalize computation. Does the same as calling update() and final() consecutively.
in | the input to process as a contiguous container |
Definition at line 129 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 117 of file buf_comp.h.
|
inlinevirtualinherited |
Reimplemented in Botan::Keccak_1600, Botan::SHA_1, Botan::SHA_224, Botan::SHA_256, Botan::SHA_384, Botan::SHA_3, Botan::SHA_512, Botan::SHA_512_256, Botan::SHAKE_128, and Botan::SHAKE_256.
Definition at line 49 of file hash.h.
Referenced by Botan::HashFunction::create(), and Botan::HashFunction::create_or_throw().
|
staticinherited |
algo_spec | algorithm name |
Definition at line 305 of file hash.cpp.
References Botan::probe_providers_of().
|
inlineinherited |
Add new input to process.
in | the input to process as a byte array |
length | of param in in bytes |
Definition at line 35 of file buf_comp.h.
Referenced by Botan::ed25519_gen_keypair(), Botan::ed25519_sign(), Botan::ed25519_verify(), Botan::PseudorandomKeyGeneration::gen(), Botan::LMOTS_Public_Key::LMOTS_Public_Key(), Botan::mgf1_mask(), Botan::pbkdf2(), Botan::Sphincs_Hash_Functions_Sha2::PRF_msg(), Botan::Sphincs_Hash_Functions_Shake::PRF_msg(), and Botan::Sphincs_Hash_Functions_Shake::Sphincs_Hash_Functions_Shake().
|
inlineinherited |
Add new input to process.
in | the input to process as a contiguous data range |
Definition at line 41 of file buf_comp.h.
|
inlineinherited |
Add new input to process.
str | the input to process as a std::string_view. Will be interpreted as a byte array based on the strings encoding. |
Definition at line 56 of file buf_comp.h.
References Botan::cast_char_ptr_to_uint8().
|
inlineinherited |
Process a single byte.
in | the byte to process |
Definition at line 62 of file buf_comp.h.
|
inherited |
Definition at line 13 of file buf_comp.cpp.
References Botan::store_be().
Referenced by Botan::mgf1_mask(), and Botan::pbkdf2().
|
inherited |
Definition at line 19 of file buf_comp.cpp.
References Botan::store_be().
|
inherited |
Definition at line 25 of file buf_comp.cpp.
References Botan::store_be().
|
inherited |
Definition at line 31 of file buf_comp.cpp.
References Botan::store_le().
|
inherited |
Definition at line 37 of file buf_comp.cpp.
References Botan::store_le().
|
inherited |
Definition at line 43 of file buf_comp.cpp.
References Botan::store_le().