This repository has been archived on 2022-02-10. You can view files and clone it, but cannot push or open issues or pull requests.
fortuna/util.h

45 lines
936 B
C
Raw Normal View History

#ifndef FORTUNA_UTIL_H
#define FORTUNA_UTIL_H
#include <cryptopp/filters.h>
#include <cryptopp/hex.h>
#include <cryptopp/sha3.h>
2022-01-01 09:01:25 +01:00
#include <chrono>
2022-01-01 08:19:50 +01:00
#include <cstddef>
namespace fortuna {
class Util final {
public:
2022-01-01 08:19:50 +01:00
static constexpr const std::size_t gen_block_size{32}; // 256 bits
static auto do_sha(const std::string& str_to_hash) -> const std::string {
// do sha256
std::string digest;
// no reason not to go for Keccak
CryptoPP::SHA3_256 sha3_256;
CryptoPP::StringSource str_src(str_to_hash, true,
new CryptoPP::HashFilter (
sha3_256, new CryptoPP::HexEncoder(
new CryptoPP::StringSink(digest), false))
);
return digest;
}
2022-01-01 09:01:25 +01:00
static auto current_time() -> std::chrono::time_point<std::chrono::system_clock,
std::chrono::duration<long, std::ratio<1, 1000000000>>> {
return std::chrono::system_clock::now();
}
Util() = delete;
~Util() noexcept;
}; // class Util
} // namespace fortuna
#endif//FORTUNA_UTIL_H