#include <string>
#include "components/webcrypto/algorithm_dispatch.h"
#include "components/webcrypto/status.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "third_party/blink/public/platform/web_crypto_algorithm.h"
#include "third_party/blink/public/platform/web_crypto_algorithm_params.h"
#include "third_party/blink/public/platform/web_crypto_key.h"
#include "third_party/blink/public/platform/web_crypto_key_algorithm.h"
#include "third_party/fuzztest/src/fuzztest/fuzztest.h"
auto AnyKeyUsage() { … }
auto AesCbcAlgorithm() { … }
auto AesCtrAlgorithm() { … }
auto AesGcmAlgorithm() { … }
auto AesKwAlgorithm() { … }
auto HmacAlgorithm(fuzztest::Domain<blink::WebCryptoAlgorithm> entry_domain) { … }
auto X25519Algorithm() { … }
auto Ed25519Algorithm() { … }
auto Pbkdf2Algorithm(fuzztest::Domain<blink::WebCryptoAlgorithm> entry_domain) { … }
auto HkdfAlgorithm(fuzztest::Domain<blink::WebCryptoAlgorithm> entry_domain) { … }
auto RsaPssAlgorithm() { … }
auto RsaOaepAlgorithm() { … }
auto Sha1Algorithm() { … }
auto Sha256Algorithm() { … }
auto Sha384Algorithm() { … }
auto Sha512Algorithm() { … }
auto AnyAlgorithm() { … }
static void ImportKeyFuzzer(blink::WebCryptoAlgorithm algo,
blink::WebCryptoKeyUsage key_usage,
base::span<uint8_t> key_data) { … }
static void EncryptFuzzer(blink::WebCryptoAlgorithm algo,
blink::WebCryptoKeyUsage key_usage,
base::span<uint8_t> key_data,
base::span<uint8_t> data) { … }
static void DecryptFuzzer(blink::WebCryptoAlgorithm algo,
blink::WebCryptoKeyUsage key_usage,
base::span<uint8_t> key_data,
base::span<uint8_t> data) { … }
static void DigestFuzzer(blink::WebCryptoAlgorithm algo,
base::span<uint8_t> data) { … }
static void SignFuzzer(blink::WebCryptoAlgorithm algo,
blink::WebCryptoKeyUsage key_usage,
base::span<uint8_t> key_data,
base::span<uint8_t> data) { … }
static void VerifyFuzzer(blink::WebCryptoAlgorithm algo,
blink::WebCryptoKeyUsage key_usage,
base::span<uint8_t> key_data,
base::span<uint8_t> signature,
base::span<uint8_t> data) { … }
static void DeriveBitsFuzzer(blink::WebCryptoAlgorithm algo,
blink::WebCryptoKeyUsage key_usage,
base::span<uint8_t> key_data,
unsigned int length_bits) { … }
FUZZ_TEST(…);
FUZZ_TEST(…);
FUZZ_TEST(…);
FUZZ_TEST(…);
FUZZ_TEST(…);
FUZZ_TEST(…);
FUZZ_TEST(…);