src/crypto/hasher.hpp
Namespaces
Classes
Source code
#ifndef SUPERGENIUS_SRC_HASHER_HASHER_HPP_
#define SUPERGENIUS_SRC_HASHER_HASHER_HPP_
#include "base/blob.hpp"
#include "singleton/IComponent.hpp"
namespace sgns::crypto {
class Hasher : public IComponent {
protected:
using Hash64 = base::Hash64;
using Hash128 = base::Hash128;
using Hash256 = base::Hash256;
public:
~Hasher() override = default;
//------------ by ruymaster ----//
[[nodiscard]] virtual Hash64 twox_64( gsl::span<const uint8_t> buffer ) const = 0;
//------------ by ruymaster ----//
[[nodiscard]] virtual Hash128 twox_128( gsl::span<const uint8_t> buffer ) const = 0;
[[nodiscard]] virtual Hash128 blake2b_128( gsl::span<const uint8_t> buffer ) const = 0;
//---------------------
[[nodiscard]] virtual Hash256 twox_256( gsl::span<const uint8_t> buffer ) const = 0;
[[nodiscard]] virtual Hash256 blake2b_256( gsl::span<const uint8_t> buffer ) const = 0;
[[nodiscard]] virtual Hash256 keccak_256( gsl::span<const uint8_t> buffer ) const = 0;
[[nodiscard]] virtual Hash256 blake2s_256( gsl::span<const uint8_t> buffer ) const = 0;
[[nodiscard]] virtual Hash256 sha2_256( gsl::span<const uint8_t> buffer ) const = 0;
};
}
#endif
Updated on 2026-03-04 at 13:10:44 -0800