| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "jwk.h" | 5 #include "jwk.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <functional> | 8 #include <functional> |
| 9 #include <map> | 9 #include <map> |
| 10 | 10 |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 62 // the table below, and describes the operations for which this key may be | 62 // the table below, and describes the operations for which this key may be |
| 63 // used. | 63 // used. |
| 64 // +-------+--------------------------------------------------------------+ | 64 // +-------+--------------------------------------------------------------+ |
| 65 // | "encrypt" | encrypt operations | | 65 // | "encrypt" | encrypt operations | |
| 66 // | "decrypt" | decrypt operations | | 66 // | "decrypt" | decrypt operations | |
| 67 // | "sign" | sign (MAC) operations | | 67 // | "sign" | sign (MAC) operations | |
| 68 // | "verify" | verify (MAC) operations | | 68 // | "verify" | verify (MAC) operations | |
| 69 // | "wrapKey" | key wrap | | 69 // | "wrapKey" | key wrap | |
| 70 // | "unwrapKey" | key unwrap | | 70 // | "unwrapKey" | key unwrap | |
| 71 // | "deriveKey" | key derivation | | 71 // | "deriveKey" | key derivation | |
| 72 // | "deriveBits" | key derivation TODO(padolph): not currently supported | | 72 // | "deriveBits" | key derivation | |
| 73 // +-------+--------------------------------------------------------------+ | 73 // +-------+--------------------------------------------------------------+ |
| 74 // | 74 // |
| 75 // - use (Key Use) | 75 // - use (Key Use) |
| 76 // The use field contains a single entry from the table below. | 76 // The use field contains a single entry from the table below. |
| 77 // +-------+--------------------------------------------------------------+ | 77 // +-------+--------------------------------------------------------------+ |
| 78 // | "sig" | equivalent to key_ops of [sign, verify] | | 78 // | "sig" | equivalent to key_ops of [sign, verify] | |
| 79 // | "enc" | equivalent to key_ops of [encrypt, decrypt, wrapKey, | | 79 // | "enc" | equivalent to key_ops of [encrypt, decrypt, wrapKey, | |
| 80 // | | unwrapKey, deriveKey, deriveBits] | | 80 // | | unwrapKey, deriveKey, deriveBits] | |
| 81 // +-------+--------------------------------------------------------------+ | 81 // +-------+--------------------------------------------------------------+ |
| 82 // | 82 // |
| (...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 220 | 220 |
| 221 // Creates an RSA-OAEP algorithm. It is an error to call this with a hash_id | 221 // Creates an RSA-OAEP algorithm. It is an error to call this with a hash_id |
| 222 // that is not a SHA*. | 222 // that is not a SHA*. |
| 223 blink::WebCryptoAlgorithm CreateRsaOaepImportAlgorithm( | 223 blink::WebCryptoAlgorithm CreateRsaOaepImportAlgorithm( |
| 224 blink::WebCryptoAlgorithmId hash_id) { | 224 blink::WebCryptoAlgorithmId hash_id) { |
| 225 return CreateRsaHashedImportAlgorithm(blink::WebCryptoAlgorithmIdRsaOaep, | 225 return CreateRsaHashedImportAlgorithm(blink::WebCryptoAlgorithmIdRsaOaep, |
| 226 hash_id); | 226 hash_id); |
| 227 } | 227 } |
| 228 | 228 |
| 229 // Web Crypto equivalent usage mask for JWK 'use' = 'enc'. | 229 // Web Crypto equivalent usage mask for JWK 'use' = 'enc'. |
| 230 // TODO(padolph): Add 'deriveBits' once supported by Blink. | |
| 231 const blink::WebCryptoKeyUsageMask kJwkEncUsage = | 230 const blink::WebCryptoKeyUsageMask kJwkEncUsage = |
| 232 blink::WebCryptoKeyUsageEncrypt | blink::WebCryptoKeyUsageDecrypt | | 231 blink::WebCryptoKeyUsageEncrypt | blink::WebCryptoKeyUsageDecrypt | |
| 233 blink::WebCryptoKeyUsageWrapKey | blink::WebCryptoKeyUsageUnwrapKey | | 232 blink::WebCryptoKeyUsageWrapKey | blink::WebCryptoKeyUsageUnwrapKey | |
| 234 blink::WebCryptoKeyUsageDeriveKey; | 233 blink::WebCryptoKeyUsageDeriveKey | blink::WebCryptoKeyUsageDeriveBits; |
| 235 // Web Crypto equivalent usage mask for JWK 'use' = 'sig'. | 234 // Web Crypto equivalent usage mask for JWK 'use' = 'sig'. |
| 236 const blink::WebCryptoKeyUsageMask kJwkSigUsage = | 235 const blink::WebCryptoKeyUsageMask kJwkSigUsage = |
| 237 blink::WebCryptoKeyUsageSign | blink::WebCryptoKeyUsageVerify; | 236 blink::WebCryptoKeyUsageSign | blink::WebCryptoKeyUsageVerify; |
| 238 | 237 |
| 239 typedef blink::WebCryptoAlgorithm (*AlgorithmCreationFunc)(); | 238 typedef blink::WebCryptoAlgorithm (*AlgorithmCreationFunc)(); |
| 240 | 239 |
| 241 class JwkAlgorithmInfo { | 240 class JwkAlgorithmInfo { |
| 242 public: | 241 public: |
| 243 JwkAlgorithmInfo() | 242 JwkAlgorithmInfo() |
| 244 : creation_func_(NULL), | 243 : creation_func_(NULL), |
| (...skipping 742 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 987 | 986 |
| 988 std::string json; | 987 std::string json; |
| 989 base::JSONWriter::Write(&jwk_dict, &json); | 988 base::JSONWriter::Write(&jwk_dict, &json); |
| 990 buffer->assign(json.data(), json.data() + json.size()); | 989 buffer->assign(json.data(), json.data() + json.size()); |
| 991 return Status::Success(); | 990 return Status::Success(); |
| 992 } | 991 } |
| 993 | 992 |
| 994 } // namespace webcrypto | 993 } // namespace webcrypto |
| 995 | 994 |
| 996 } // namespace content | 995 } // namespace content |
| OLD | NEW |