#ifndef HASH_SHA512_2019_01_11_H #define HASH_SHA512_2019_01_11_H #include #if(__cplusplus >= 201703L) namespace al::crypto::stream::hash { #else namespace al { namespace crypto { namespace stream { namespace hash { #endif class hash_sha512 : public al::crypto::stream::hash::hash_sha_384_512_base<512U> { private: using base_class_type = al::crypto::stream::hash::hash_sha_384_512_base<512U>; public: hash_sha512() = default; hash_sha512(const hash_sha512& other) = default; hash_sha512(hash_sha512&& other) noexcept = default; ~hash_sha512() override = default; // AXIVION Next Line AutosarC++19_03-A10.2.1: AUTOSAR permitted auto operator=(const hash_sha512& other) -> hash_sha512& = default; // AXIVION Next Line AutosarC++19_03-A10.2.1: AUTOSAR permitted auto operator=(hash_sha512&& other) noexcept -> hash_sha512& = default; auto initialize() -> void override { base_class_type::initialize(); base_class_type::transform_context[0U] = static_cast(UINT64_C(0x6A09E667F3BCC908)); base_class_type::transform_context[1U] = static_cast(UINT64_C(0xBB67AE8584CAA73B)); base_class_type::transform_context[2U] = static_cast(UINT64_C(0x3C6EF372FE94F82B)); base_class_type::transform_context[3U] = static_cast(UINT64_C(0xA54FF53A5F1D36F1)); base_class_type::transform_context[4U] = static_cast(UINT64_C(0x510E527FADE682D1)); base_class_type::transform_context[5U] = static_cast(UINT64_C(0x9B05688C2B3E6C1F)); base_class_type::transform_context[6U] = static_cast(UINT64_C(0x1F83D9ABFB41BD6B)); base_class_type::transform_context[7U] = static_cast(UINT64_C(0x5BE0CD19137E2179)); } }; #if(__cplusplus >= 201703L) } // namespace al::crypto::stream::hash #else } // namespace hash } // namespace stream } // namespace crypto } // namespace al #endif #endif // HASH_SHA512_2019_01_11_H