/* * Copyright (c) 2020, Ali Mohammad Pur * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include namespace Crypto::Hash { class SHA256 final : public OpenSSLHashFunction { AK_MAKE_NONCOPYABLE(SHA256); public: explicit SHA256(EVP_MD_CTX* context); virtual ByteString class_name() const override { return "SHA256"; } }; class SHA384 final : public OpenSSLHashFunction { AK_MAKE_NONCOPYABLE(SHA384); public: explicit SHA384(EVP_MD_CTX* context); virtual ByteString class_name() const override { return "SHA384"; } }; class SHA512 final : public OpenSSLHashFunction { AK_MAKE_NONCOPYABLE(SHA512); public: explicit SHA512(EVP_MD_CTX* context); virtual ByteString class_name() const override { return "SHA512"; } }; }