// Copyright 2014 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef COMPONENTS_WEBCRYPTO_JWK_H_ #define COMPONENTS_WEBCRYPTO_JWK_H_ #include <stdint.h> #include <memory> #include <string_view> #include <vector> #include "base/containers/span.h" #include "base/values.h" #include "third_party/blink/public/platform/web_crypto.h" namespace webcrypto { class Status; // Helper class for parsing a JWK from JSON. // // This primarily exists to ensure strict enforcement of the JWK schema, as the // type and presence of particular members is security relevant. For example, // GetString() will ensure a given JSON member is present and is a string type, // and will fail if these conditions aren't met. // // Users of JwkReader must call Init() successfully before any other method can // be called. class JwkReader { … }; // Helper class for building the JSON for a JWK. class JwkWriter { … }; // Converts a JWK "key_ops" array to the corresponding WebCrypto usages. Used by // testing. Status GetWebCryptoUsagesFromJwkKeyOpsForTest( const base::Value::List& key_ops, blink::WebCryptoKeyUsageMask* usages); } // namespace webcrypto #endif // COMPONENTS_WEBCRYPTO_JWK_H_