diff --git a/Libraries/LibCrypto/CMakeLists.txt b/Libraries/LibCrypto/CMakeLists.txt index 8bd6619b57b..aa5c328a82a 100644 --- a/Libraries/LibCrypto/CMakeLists.txt +++ b/Libraries/LibCrypto/CMakeLists.txt @@ -30,6 +30,10 @@ set(SOURCES Curves/Ed448.cpp Curves/X25519.cpp Curves/X448.cpp + Hash/BLAKE2b.cpp + Hash/MD5.cpp + Hash/SHA1.cpp + Hash/SHA2.cpp NumberTheory/ModularFunctions.cpp PK/RSA.cpp PK/EC.cpp diff --git a/Libraries/LibCrypto/Hash/BLAKE2b.cpp b/Libraries/LibCrypto/Hash/BLAKE2b.cpp new file mode 100644 index 00000000000..f9a8ab0d38a --- /dev/null +++ b/Libraries/LibCrypto/Hash/BLAKE2b.cpp @@ -0,0 +1,18 @@ +/* + * Copyright (c) 2025, Altomani Gianluca + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#include + +#include + +namespace Crypto::Hash { + +BLAKE2b::BLAKE2b(EVP_MD_CTX* context) + : OpenSSLHashFunction(EVP_blake2b512(), context) +{ +} + +} diff --git a/Libraries/LibCrypto/Hash/BLAKE2b.h b/Libraries/LibCrypto/Hash/BLAKE2b.h index fddeec71919..cd1b37cdd02 100644 --- a/Libraries/LibCrypto/Hash/BLAKE2b.h +++ b/Libraries/LibCrypto/Hash/BLAKE2b.h @@ -15,10 +15,7 @@ class BLAKE2b final : public OpenSSLHashFunction { AK_MAKE_NONCOPYABLE(BLAKE2b); public: - explicit BLAKE2b(EVP_MD_CTX* context) - : OpenSSLHashFunction(EVP_blake2b512(), context) - { - } + explicit BLAKE2b(EVP_MD_CTX* context); virtual ByteString class_name() const override { diff --git a/Libraries/LibCrypto/Hash/MD5.cpp b/Libraries/LibCrypto/Hash/MD5.cpp new file mode 100644 index 00000000000..c33edaed8a6 --- /dev/null +++ b/Libraries/LibCrypto/Hash/MD5.cpp @@ -0,0 +1,18 @@ +/* + * Copyright (c) 2025, Altomani Gianluca + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#include + +#include + +namespace Crypto::Hash { + +MD5::MD5(EVP_MD_CTX* context) + : OpenSSLHashFunction(EVP_md5(), context) +{ +} + +} diff --git a/Libraries/LibCrypto/Hash/MD5.h b/Libraries/LibCrypto/Hash/MD5.h index c1c92d2a1a9..c140b0fe52f 100644 --- a/Libraries/LibCrypto/Hash/MD5.h +++ b/Libraries/LibCrypto/Hash/MD5.h @@ -15,10 +15,7 @@ class MD5 final : public OpenSSLHashFunction { AK_MAKE_NONCOPYABLE(MD5); public: - explicit MD5(EVP_MD_CTX* context) - : OpenSSLHashFunction(EVP_md5(), context) - { - } + explicit MD5(EVP_MD_CTX* context); virtual ByteString class_name() const override { diff --git a/Libraries/LibCrypto/Hash/SHA1.cpp b/Libraries/LibCrypto/Hash/SHA1.cpp new file mode 100644 index 00000000000..40e94fbf728 --- /dev/null +++ b/Libraries/LibCrypto/Hash/SHA1.cpp @@ -0,0 +1,18 @@ +/* + * Copyright (c) 2025, Altomani Gianluca + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#include + +#include + +namespace Crypto::Hash { + +SHA1::SHA1(EVP_MD_CTX* context) + : OpenSSLHashFunction(EVP_sha1(), context) +{ +} + +} diff --git a/Libraries/LibCrypto/Hash/SHA1.h b/Libraries/LibCrypto/Hash/SHA1.h index c695c8b39ea..3c50487a8f8 100644 --- a/Libraries/LibCrypto/Hash/SHA1.h +++ b/Libraries/LibCrypto/Hash/SHA1.h @@ -15,10 +15,7 @@ class SHA1 final : public OpenSSLHashFunction { AK_MAKE_NONCOPYABLE(SHA1); public: - explicit SHA1(EVP_MD_CTX* context) - : OpenSSLHashFunction(EVP_sha1(), context) - { - } + explicit SHA1(EVP_MD_CTX* context); virtual ByteString class_name() const override { diff --git a/Libraries/LibCrypto/Hash/SHA2.cpp b/Libraries/LibCrypto/Hash/SHA2.cpp new file mode 100644 index 00000000000..a19026022f7 --- /dev/null +++ b/Libraries/LibCrypto/Hash/SHA2.cpp @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2025, Altomani Gianluca + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#include + +#include + +namespace Crypto::Hash { + +SHA256::SHA256(EVP_MD_CTX* context) + : OpenSSLHashFunction(EVP_sha256(), context) +{ +} + +SHA384::SHA384(EVP_MD_CTX* context) + : OpenSSLHashFunction(EVP_sha384(), context) +{ +} + +SHA512::SHA512(EVP_MD_CTX* context) + : OpenSSLHashFunction(EVP_sha512(), context) +{ +} + +} diff --git a/Libraries/LibCrypto/Hash/SHA2.h b/Libraries/LibCrypto/Hash/SHA2.h index 5f715c47863..9fe597619bb 100644 --- a/Libraries/LibCrypto/Hash/SHA2.h +++ b/Libraries/LibCrypto/Hash/SHA2.h @@ -15,10 +15,7 @@ class SHA256 final : public OpenSSLHashFunction { AK_MAKE_NONCOPYABLE(SHA256); public: - explicit SHA256(EVP_MD_CTX* context) - : OpenSSLHashFunction(EVP_sha256(), context) - { - } + explicit SHA256(EVP_MD_CTX* context); virtual ByteString class_name() const override { @@ -30,10 +27,7 @@ class SHA384 final : public OpenSSLHashFunction { AK_MAKE_NONCOPYABLE(SHA384); public: - explicit SHA384(EVP_MD_CTX* context) - : OpenSSLHashFunction(EVP_sha384(), context) - { - } + explicit SHA384(EVP_MD_CTX* context); virtual ByteString class_name() const override { @@ -45,10 +39,7 @@ class SHA512 final : public OpenSSLHashFunction { AK_MAKE_NONCOPYABLE(SHA512); public: - explicit SHA512(EVP_MD_CTX* context) - : OpenSSLHashFunction(EVP_sha512(), context) - { - } + explicit SHA512(EVP_MD_CTX* context); virtual ByteString class_name() const override {