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_WEBCRYPTO_UTIL_H_ | 5 #ifndef CONTENT_CHILD_WEBCRYPTO_WEBCRYPTO_UTIL_H_ |
6 #define CONTENT_CHILD_WEBCRYPTO_WEBCRYPTO_UTIL_H_ | 6 #define CONTENT_CHILD_WEBCRYPTO_WEBCRYPTO_UTIL_H_ |
7 | 7 |
8 #include <string> | 8 #include <string> |
9 #include <vector> | 9 #include <vector> |
10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
60 // algorithm that is not SHA*. | 60 // algorithm that is not SHA*. |
61 CONTENT_EXPORT blink::WebCryptoAlgorithm CreateHmacImportAlgorithm( | 61 CONTENT_EXPORT blink::WebCryptoAlgorithm CreateHmacImportAlgorithm( |
62 blink::WebCryptoAlgorithmId hash_id); | 62 blink::WebCryptoAlgorithmId hash_id); |
63 | 63 |
64 // Creates an import algorithm for RSA algorithms that take a hash. | 64 // Creates an import algorithm for RSA algorithms that take a hash. |
65 // It is an error to call this with a hash_id that is not a SHA*. | 65 // It is an error to call this with a hash_id that is not a SHA*. |
66 CONTENT_EXPORT blink::WebCryptoAlgorithm CreateRsaHashedImportAlgorithm( | 66 CONTENT_EXPORT blink::WebCryptoAlgorithm CreateRsaHashedImportAlgorithm( |
67 blink::WebCryptoAlgorithmId id, | 67 blink::WebCryptoAlgorithmId id, |
68 blink::WebCryptoAlgorithmId hash_id); | 68 blink::WebCryptoAlgorithmId hash_id); |
69 | 69 |
| 70 bool CreateSecretKeyAlgorithm(const blink::WebCryptoAlgorithm& algorithm, |
| 71 unsigned int keylen_bytes, |
| 72 blink::WebCryptoKeyAlgorithm* key_algorithm); |
| 73 |
70 // Returns true if the set bits in b make up a subset of the set bits in a. | 74 // Returns true if the set bits in b make up a subset of the set bits in a. |
71 bool ContainsKeyUsages(blink::WebCryptoKeyUsageMask a, | 75 bool ContainsKeyUsages(blink::WebCryptoKeyUsageMask a, |
72 blink::WebCryptoKeyUsageMask b); | 76 blink::WebCryptoKeyUsageMask b); |
73 | 77 |
74 bool KeyUsageAllows(const blink::WebCryptoKey& key, | |
75 const blink::WebCryptoKeyUsage usage); | |
76 | |
77 bool IsAlgorithmRsa(blink::WebCryptoAlgorithmId alg_id); | 78 bool IsAlgorithmRsa(blink::WebCryptoAlgorithmId alg_id); |
78 bool IsAlgorithmAsymmetric(blink::WebCryptoAlgorithmId alg_id); | 79 bool IsAlgorithmAsymmetric(blink::WebCryptoAlgorithmId alg_id); |
79 | 80 |
80 Status GetAesGcmTagLengthInBits(const blink::WebCryptoAesGcmParams* params, | |
81 unsigned int* tag_length_bits); | |
82 | |
83 Status GetAesKeyGenLengthInBits(const blink::WebCryptoAesKeyGenParams* params, | |
84 unsigned int* keylen_bits); | |
85 | |
86 Status GetHmacKeyGenLengthInBits(const blink::WebCryptoHmacKeyGenParams* params, | |
87 unsigned int* keylen_bits); | |
88 | |
89 Status VerifyAesKeyLengthForImport(unsigned int keylen_bytes); | |
90 | |
91 Status CheckKeyCreationUsages(blink::WebCryptoKeyUsageMask all_possible_usages, | |
92 blink::WebCryptoKeyUsageMask actual_usages); | |
93 | |
94 } // namespace webcrypto | 81 } // namespace webcrypto |
95 | 82 |
96 } // namespace content | 83 } // namespace content |
97 | 84 |
98 #endif // CONTENT_CHILD_WEBCRYPTO_WEBCRYPTO_UTIL_H_ | 85 #endif // CONTENT_CHILD_WEBCRYPTO_WEBCRYPTO_UTIL_H_ |
OLD | NEW |