Botan 3.6.1
Crypto and TLS for C&
|
#include <sha1.h>
Public Types | |
using | digest_type = secure_vector<uint32_t> |
Public Member Functions | |
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[]) |
std::vector< uint8_t > | final_stdvec () |
size_t | hash_block_size () const override |
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) |
std::string | provider () const override |
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 void | compress_n (digest_type &digest, std::span< const uint8_t > input, size_t blocks) |
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 void | init (digest_type &digest) |
static std::vector< std::string > | providers (std::string_view algo_spec) |
static void | sha1_armv8_compress_n (digest_type &digest, std::span< const uint8_t > blocks, size_t block_count) |
static void | sha1_compress_x86 (digest_type &digest, std::span< const uint8_t > blocks, size_t block_count) |
static void | sse2_compress_n (digest_type &digest, std::span< const uint8_t > blocks, size_t block_count) |
Static Public Attributes | |
static constexpr MD_Endian | bit_endianness = MD_Endian::Big |
static constexpr size_t | block_bytes = 64 |
static constexpr MD_Endian | byte_endianness = MD_Endian::Big |
static constexpr size_t | ctr_bytes = 8 |
static constexpr size_t | output_bytes = 20 |
using Botan::SHA_1::digest_type = secure_vector<uint32_t> |
|
inlineoverridevirtual |
Reset the state.
Implements Botan::HashFunction.
Definition at line 44 of file sha1.h.
|
inlineinherited |
|
static |
Definition at line 63 of file sha1.cpp.
References block_bytes, Botan::load_be(), Botan::rotl(), sha1_armv8_compress_n(), sha1_compress_x86(), sse2_compress_n(), and Botan::BufferSlicer::take().
|
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 234 of file sha1.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().
|
inlineinherited |
|
inlineoverridevirtual |
Reimplemented from Botan::HashFunction.
Definition at line 36 of file sha1.h.
References block_bytes.
|
static |
|
inlineoverridevirtual |
Implements Botan::HashFunction.
Definition at line 32 of file sha1.h.
|
overridevirtual |
Implements Botan::HashFunction.
Definition at line 230 of file sha1.cpp.
|
inlineoverridevirtual |
Implements Botan::Buffered_Computation.
Definition at line 34 of file sha1.h.
|
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.
|
overridevirtual |
Reimplemented from Botan::HashFunction.
Definition at line 208 of file sha1.cpp.
|
staticinherited |
algo_spec | algorithm name |
Definition at line 305 of file hash.cpp.
References Botan::probe_providers_of().
|
static |
Definition at line 20 of file sha1_armv8.cpp.
Referenced by compress_n().
|
static |
Definition at line 21 of file sha1_x86.cpp.
Referenced by compress_n().
|
static |
Referenced by compress_n().
|
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().
|
staticconstexpr |
|
staticconstexpr |
Definition at line 24 of file sha1.h.
Referenced by compress_n(), and hash_block_size().
|
staticconstexpr |