1#ifndef LIBFILEZILLA_HASH_HEADER
2#define LIBFILEZILLA_HASH_HEADER
24enum class hmac_algorithm
43 size_t digest_size()
const;
47 void update(std::string_view
const& data);
48 void update(std::basic_string_view<uint8_t>
const& data);
49 void update(std::vector<uint8_t>
const& data);
50 void update(
uint8_t const* data,
size_t size);
51 void update(
buffer const& data);
60 operator std::vector<uint8_t>() {
64 bool is_digest(std::string_view
const&
ref);
69 update(std::forward<T>(
in));
75 bool import_state(std::vector<std::uint8_t>
const& state);
111 std::enable_if_t<
sizeof(
typename PasswordContainer::value_type) ==
sizeof(
uint8_t) &&
112 sizeof(
typename SaltContainer::value_type) ==
sizeof(
uint8_t)>* =
nullptr>
116 std::basic_string_view<uint8_t>(
reinterpret_cast<uint8_t const*
>(salt.data()), salt.size()),
The buffer class is a simple buffer where data can be appended at the end and consumed at the front....
Definition buffer.hpp:27
Accumulator for hashing large amounts of data.
Definition hash.hpp:33
std::vector< std::uint8_t > export_state()
Currently only implemented for SHA1.
std::vector< uint8_t > digest()
Returns the raw digest and reinitializes the accumulator.
hash_accumulator(hash_algorithm algorithm)
Creates an initialized accumulator for the passed algorithm.
Sets some global macros and further includes string.hpp.
The namespace used by libfilezilla.
Definition apply.hpp:17
hash_algorithm
List of supported hashing algorithms.
Definition hash.hpp:17
std::vector< uint8_t > md5(std::string_view const &data)
Standard MD5.
std::vector< uint8_t > hmac_sha1(std::string_view const &key, std::string_view const &data)
Standard HMAC using SHA1.
bool dispatch(event_base const &ev, F &&f)
Dispatch for simple_event<> based events to simple functors.
Definition event_handler.hpp:199
std::vector< uint8_t > sha256(std::string_view const &data)
Standard SHA256.
std::vector< uint8_t > hmac_sha256(std::string_view const &key, std::string_view const &data)
Standard HMAC using SHA256.