/* * Copyright (c) 2023, stelar7 * Copyright (c) 2025, Altomani Gianluca * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include namespace Crypto::Hash { class PBKDF2 { public: PBKDF2(HashKind hash_kind); ~PBKDF2() { EVP_KDF_free(m_kdf); } ErrorOr derive_key(ReadonlyBytes password, ReadonlyBytes salt, u32 iterations, u32 key_length_bytes); private: EVP_KDF* m_kdf; HashKind m_hash_kind; }; }