| 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 #ifndef CONTENT_CHILD_WEBCRYPTO_ALGORITHM_IMPLEMENTATION_H_ | 5 #ifndef CONTENT_CHILD_WEBCRYPTO_ALGORITHM_IMPLEMENTATION_H_ |
| 6 #define CONTENT_CHILD_WEBCRYPTO_ALGORITHM_IMPLEMENTATION_H_ | 6 #define CONTENT_CHILD_WEBCRYPTO_ALGORITHM_IMPLEMENTATION_H_ |
| 7 | 7 |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 74 | 74 |
| 75 // This method corresponds to Web Crypto's crypto.subtle.generateKey(). | 75 // This method corresponds to Web Crypto's crypto.subtle.generateKey(). |
| 76 // | 76 // |
| 77 // Implementations MUST verify |usages| and return an error if it is not | 77 // Implementations MUST verify |usages| and return an error if it is not |
| 78 // appropriate. | 78 // appropriate. |
| 79 virtual Status GenerateKey(const blink::WebCryptoAlgorithm& algorithm, | 79 virtual Status GenerateKey(const blink::WebCryptoAlgorithm& algorithm, |
| 80 bool extractable, | 80 bool extractable, |
| 81 blink::WebCryptoKeyUsageMask usages, | 81 blink::WebCryptoKeyUsageMask usages, |
| 82 GenerateKeyResult* result) const; | 82 GenerateKeyResult* result) const; |
| 83 | 83 |
| 84 // This method corresponds to Web Crypto's "derive bits" operation. | 84 // This method corresponds to Web Crypto's "derive bits" operation. It is |
| 85 // essentially crypto.subtle.deriveBits() with the exception that the length |
| 86 // can be "null" (|has_length_bits = true|). |
| 87 // |
| 88 // In cases where the length was not specified, an appropriate default for the |
| 89 // algorithm should be used (as described by the spec). |
| 85 virtual Status DeriveBits(const blink::WebCryptoAlgorithm& algorithm, | 90 virtual Status DeriveBits(const blink::WebCryptoAlgorithm& algorithm, |
| 86 const blink::WebCryptoKey& base_key, | 91 const blink::WebCryptoKey& base_key, |
| 87 unsigned int length_bits, | 92 bool has_optional_length_bits, |
| 93 unsigned int optional_length_bits, |
| 88 std::vector<uint8_t>* derived_bytes) const; | 94 std::vector<uint8_t>* derived_bytes) const; |
| 89 | 95 |
| 90 // This method corresponds with Web Crypto's "Get key length" operation. | 96 // This method corresponds with Web Crypto's "Get key length" operation. |
| 91 // | 97 // |
| 92 // In the Web Crypto spec the operation returns either "null" or an | 98 // In the Web Crypto spec the operation returns either "null" or an |
| 93 // "Integer". In this code "null" is represented by setting | 99 // "Integer". In this code "null" is represented by setting |
| 94 // |*has_length_bits = false|. | 100 // |*has_length_bits = false|. |
| 95 virtual Status GetKeyLength( | 101 virtual Status GetKeyLength( |
| 96 const blink::WebCryptoAlgorithm& key_length_algorithm, | 102 const blink::WebCryptoAlgorithm& key_length_algorithm, |
| 97 bool* has_length_bits, | 103 bool* has_length_bits, |
| (...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 198 blink::WebCryptoKeyUsageMask usages, | 204 blink::WebCryptoKeyUsageMask usages, |
| 199 const CryptoData& key_data, | 205 const CryptoData& key_data, |
| 200 blink::WebCryptoKey* key) const; | 206 blink::WebCryptoKey* key) const; |
| 201 }; | 207 }; |
| 202 | 208 |
| 203 } // namespace webcrypto | 209 } // namespace webcrypto |
| 204 | 210 |
| 205 } // namespace content | 211 } // namespace content |
| 206 | 212 |
| 207 #endif // CONTENT_CHILD_WEBCRYPTO_ALGORITHM_IMPLEMENTATION_H_ | 213 #endif // CONTENT_CHILD_WEBCRYPTO_ALGORITHM_IMPLEMENTATION_H_ |
| OLD | NEW |