/* * Copyright (c) 2025, Miguel Sacristán Izcue * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include namespace Crypto::Hash { class SHA3_256 final : public OpenSSLHashFunction { AK_MAKE_NONCOPYABLE(SHA3_256); public: explicit SHA3_256(EVP_MD_CTX* context); virtual ByteString class_name() const override { return "SHA3-256"; } }; class SHA3_384 final : public OpenSSLHashFunction { AK_MAKE_NONCOPYABLE(SHA3_384); public: explicit SHA3_384(EVP_MD_CTX* context); virtual ByteString class_name() const override { return "SHA3-384"; } }; class SHA3_512 final : public OpenSSLHashFunction { AK_MAKE_NONCOPYABLE(SHA3_512); public: explicit SHA3_512(EVP_MD_CTX* context); virtual ByteString class_name() const override { return "SHA3-512"; } }; }