// Copyright (c) 2017-2022 Cloudflare, Inc. // Licensed under the Apache 2.0 license found in the LICENSE file or at: // https://opensource.org/licenses/Apache-2.0 #pragma once #include #include #include #include using EVP_MD = struct env_md_st; namespace workerd::api { // Perform HKDF key derivation. kj::Maybe hkdf(jsg::Lock& js, size_t length, const EVP_MD* digest, kj::ArrayPtr key, kj::ArrayPtr salt, kj::ArrayPtr info); // Perform PBKDF2 key derivation. kj::Maybe pbkdf2(jsg::Lock& js, size_t length, size_t iterations, const EVP_MD* digest, kj::ArrayPtr password, kj::ArrayPtr salt); // Perform Scrypt key derivation. kj::Maybe scrypt(jsg::Lock& js, size_t length, uint32_t N, uint32_t r, uint32_t p, uint32_t maxmem, kj::ArrayPtr pass, kj::ArrayPtr salt); } // namespace workerd::api