#ifndef HASH_SHA224_2019_01_15_H #define HASH_SHA224_2019_01_15_H #include #if(__cplusplus >= 201703L) namespace al::crypto::stream::hash { #else namespace al { namespace crypto { namespace stream { namespace hash { #endif class hash_sha224 : public al::crypto::stream::hash::hash_sha_224_256_base<224U> { private: using base_class_type = al::crypto::stream::hash::hash_sha_224_256_base<224U>; public: hash_sha224() = default; hash_sha224(const hash_sha224& other) : base_class_type(static_cast(other)) { } hash_sha224(hash_sha224&& other) noexcept : base_class_type(static_cast(other)) { } ~hash_sha224() override = default; auto operator=(const hash_sha224& other) -> hash_sha224& { if(this != &other) { static_cast(base_class_type::operator=(static_cast(other))); } return *this; } auto operator=(hash_sha224&& other) noexcept -> hash_sha224& { static_cast(base_class_type::operator=(static_cast(other))); return *this; } auto initialize() -> void override { base_class_type::initialize(); base_class_type::transform_context[0U] = UINT32_C(0xC1059ED8); base_class_type::transform_context[1U] = UINT32_C(0x367CD507); base_class_type::transform_context[2U] = UINT32_C(0x3070DD17); base_class_type::transform_context[3U] = UINT32_C(0xF70E5939); base_class_type::transform_context[4U] = UINT32_C(0xFFC00B31); base_class_type::transform_context[5U] = UINT32_C(0x68581511); base_class_type::transform_context[6U] = UINT32_C(0x64F98FA7); base_class_type::transform_context[7U] = UINT32_C(0xBEFA4FA4); } }; #if(__cplusplus >= 201703L) } // namespace al::crypto::stream::hash #else } // namespace hash } // namespace stream } // namespace crypto } // namespace al #endif #endif // HASH_SHA224_2019_01_15_H