26 enum class HashAlgorithm :
byte {
56 friend const char *
operator*(
const HashAlgorithm hash_algo) noexcept
59 case HashingTool::HashAlgorithm::c: \
90 return "<unknown hash algorithm>";
105 void OnCalculateHashButtonPressed();
106 void OnCopyHashButtonPressed();
109 enum class InputSource :
byte {
113 } m_input_source = InputSource::Text;
114 static const char *inputSourceEnumToStr(InputSource is) {
117 case InputSource::Text:
119 case InputSource::File:
124 std::string m_input{};
125 std::string m_output{};
127 HashAlgorithm m_selected_hash;
128 std::unique_ptr<CryptoPP::Weak::MD2> m_md2{
nullptr};
129 std::unique_ptr<CryptoPP::Weak::MD4> m_md4{
nullptr};
130 std::unique_ptr<CryptoPP::Weak::MD5> m_md5{
nullptr};
132 std::unique_ptr<CryptoPP::SHA1> m_sha1{
nullptr};
133 std::unique_ptr<CryptoPP::SHA224> m_sha224{
nullptr};
134 std::unique_ptr<CryptoPP::SHA256> m_sha256{
nullptr};
135 std::unique_ptr<CryptoPP::SHA384> m_sha384{
nullptr};
136 std::unique_ptr<CryptoPP::SHA512> m_sha512{
nullptr};
138 std::unique_ptr<CryptoPP::Keccak_224> m_keccak224{
nullptr};
139 std::unique_ptr<CryptoPP::Keccak_256> m_keccak256{
nullptr};
140 std::unique_ptr<CryptoPP::Keccak_384> m_keccak384{
nullptr};
141 std::unique_ptr<CryptoPP::Keccak_512> m_keccak512{
nullptr};
143 std::unique_ptr<CryptoPP::SHAKE128> m_shake128{
nullptr};
144 std::unique_ptr<CryptoPP::SHAKE256> m_shake256{
nullptr};
146 std::unique_ptr<CryptoPP::RIPEMD128> m_ripemd128{
nullptr};
147 std::unique_ptr<CryptoPP::RIPEMD160> m_ripemd160{
nullptr};
148 std::unique_ptr<CryptoPP::RIPEMD256> m_ripemd256{
nullptr};
149 std::unique_ptr<CryptoPP::RIPEMD320> m_ripemd320{
nullptr};
151 std::unique_ptr<CryptoPP::Tiger> m_tiger{
nullptr};
152 std::unique_ptr<CryptoPP::Whirlpool> m_whirlpool{
nullptr};
153 std::unique_ptr<CryptoPP::SM3> m_sm3{
nullptr};
#define NS_ENIGMA_BEGIN
Enable/Disable Assertions.
#define ENIGMA_ENUM_DECLARE_BEGIN_END(begin)
Allows looping over an enum by providing a BEGIN and END enum values NOTE: should be placed at the en...