| Index: content/child/webcrypto/webcrypto_util.h
|
| diff --git a/content/child/webcrypto/webcrypto_util.h b/content/child/webcrypto/webcrypto_util.h
|
| index 3c82da96ec71d6211b739b021b679c7090a5ddf9..9d23c73dead79cdd0e126607e8f195ba1e006327 100644
|
| --- a/content/child/webcrypto/webcrypto_util.h
|
| +++ b/content/child/webcrypto/webcrypto_util.h
|
| @@ -8,6 +8,8 @@
|
| #include <string>
|
| #include <vector>
|
| #include "base/basictypes.h"
|
| +#include "base/strings/string_piece.h"
|
| +#include "base/values.h"
|
| #include "content/common/content_export.h"
|
| #include "third_party/WebKit/public/platform/WebArrayBuffer.h"
|
| #include "third_party/WebKit/public/platform/WebCrypto.h" // TODO(eroman): delete
|
| @@ -73,9 +75,9 @@ class CONTENT_EXPORT Status {
|
| // base64 decoded.
|
| static Status ErrorJwkBase64Decode(const std::string& property);
|
|
|
| - // The "extractable" parameter was specified but was
|
| + // The "ext" parameter was specified but was
|
| // incompatible with the value requested by the Web Crypto call.
|
| - static Status ErrorJwkExtractableInconsistent();
|
| + static Status ErrorJwkExtInconsistent();
|
|
|
| // The "alg" parameter could not be converted to an equivalent
|
| // WebCryptoAlgorithm. Either it was malformed or unrecognized.
|
| @@ -91,11 +93,23 @@ class CONTENT_EXPORT Status {
|
|
|
| // The "use" parameter was specified, however it couldn't be converted to an
|
| // equivalent Web Crypto usage.
|
| - static Status ErrorJwkUnrecognizedUsage();
|
| + static Status ErrorJwkUnrecognizedUse();
|
| +
|
| + // The "key_ops" parameter was specified, however one of the values in the
|
| + // array couldn't be converted to an equivalent Web Crypto usage.
|
| + static Status ErrorJwkUnrecognizedKeyop();
|
|
|
| // The "use" parameter was specified, however it is incompatible with that
|
| // specified by the Web Crypto import operation.
|
| - static Status ErrorJwkUsageInconsistent();
|
| + static Status ErrorJwkUseInconsistent();
|
| +
|
| + // The "key_ops" parameter was specified, however it is incompatible with that
|
| + // specified by the Web Crypto import operation.
|
| + static Status ErrorJwkKeyopsInconsistent();
|
| +
|
| + // Both the "key_ops" and the "use" parameters were specified, however they
|
| + // are incompatible with each other.
|
| + static Status ErrorJwkUseAndKeyopsInconsistent();
|
|
|
| // TODO(eroman): Private key import through JWK is not yet supported.
|
| static Status ErrorJwkRsaPrivateKeyUnsupported();
|
| @@ -218,7 +232,21 @@ blink::WebArrayBuffer CreateArrayBuffer(const uint8* data,
|
| // This function decodes unpadded 'base64url' encoded data, as described in
|
| // RFC4648 (http://www.ietf.org/rfc/rfc4648.txt) Section 5.
|
| // In Web Crypto, this type of encoding is only used inside JWK.
|
| -bool Base64DecodeUrlSafe(const std::string& input, std::string* output);
|
| +CONTENT_EXPORT bool Base64DecodeUrlSafe(const std::string& input,
|
| + std::string* output);
|
| +
|
| +// Returns an unpadded 'base64url' encoding of the input data, the opposite of
|
| +// Base64DecodeUrlSafe() above.
|
| +std::string Base64EncodeUrlSafe(const base::StringPiece& input);
|
| +
|
| +// Composes a Web Crypto usage mask from an array of JWK key_ops values.
|
| +CONTENT_EXPORT Status GetWebCryptoUsagesFromJwkKeyOps(
|
| + const base::ListValue* jwk_key_ops_value,
|
| + blink::WebCryptoKeyUsageMask* jwk_key_ops_mask);
|
| +
|
| +// Composes a JWK key_ops array from a Web Crypto usage mask.
|
| +base::ListValue* CreateJwkKeyOpsFromWebCryptoUsages(
|
| + blink::WebCryptoKeyUsageMask usage_mask);
|
|
|
| CONTENT_EXPORT bool IsHashAlgorithm(blink::WebCryptoAlgorithmId alg_id);
|
|
|
|
|