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 "content/child/webcrypto/webcrypto_impl.h" | 5 #include "content/child/webcrypto/webcrypto_impl.h" |
6 | 6 |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
8 #include "content/child/webcrypto/crypto_data.h" | 8 #include "content/child/webcrypto/crypto_data.h" |
9 #include "content/child/webcrypto/shared_crypto.h" | 9 #include "content/child/webcrypto/shared_crypto.h" |
10 #include "content/child/webcrypto/status.h" | 10 #include "content/child/webcrypto/status.h" |
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
189 key, | 189 key, |
190 webcrypto::CryptoData(signature, signature_size), | 190 webcrypto::CryptoData(signature, signature_size), |
191 webcrypto::CryptoData(data, data_size), | 191 webcrypto::CryptoData(data, data_size), |
192 &signature_match); | 192 &signature_match); |
193 if (status.IsError()) | 193 if (status.IsError()) |
194 CompleteWithError(status, &result); | 194 CompleteWithError(status, &result); |
195 else | 195 else |
196 result.completeWithBoolean(signature_match); | 196 result.completeWithBoolean(signature_match); |
197 } | 197 } |
198 | 198 |
| 199 void WebCryptoImpl::wrapKey(blink::WebCryptoKeyFormat format, |
| 200 const blink::WebCryptoKey& key, |
| 201 const blink::WebCryptoKey& wrapping_key, |
| 202 const blink::WebCryptoAlgorithm& wrap_algorithm, |
| 203 blink::WebCryptoResult result) { |
| 204 blink::WebArrayBuffer buffer; |
| 205 // TODO(eroman): Use the same parameter ordering. |
| 206 Status status = webcrypto::WrapKey( |
| 207 format, wrapping_key, key, wrap_algorithm, &buffer); |
| 208 if (status.IsError()) |
| 209 CompleteWithError(status, &result); |
| 210 else |
| 211 result.completeWithBuffer(buffer); |
| 212 } |
| 213 |
| 214 void WebCryptoImpl::unwrapKey( |
| 215 blink::WebCryptoKeyFormat format, |
| 216 const unsigned char* wrapped_key, |
| 217 unsigned wrapped_key_size, |
| 218 const blink::WebCryptoKey& wrapping_key, |
| 219 const blink::WebCryptoAlgorithm& unwrap_algorithm, |
| 220 const blink::WebCryptoAlgorithm& unwrapped_key_algorithm, |
| 221 bool extractable, |
| 222 blink::WebCryptoKeyUsageMask usages, |
| 223 blink::WebCryptoResult result) { |
| 224 blink::WebCryptoKey key = blink::WebCryptoKey::createNull(); |
| 225 Status status = |
| 226 webcrypto::UnwrapKey(format, |
| 227 webcrypto::CryptoData(wrapped_key, wrapped_key_size), |
| 228 wrapping_key, |
| 229 unwrap_algorithm, |
| 230 unwrapped_key_algorithm, |
| 231 extractable, |
| 232 usages, |
| 233 &key); |
| 234 if (status.IsError()) |
| 235 CompleteWithError(status, &result); |
| 236 else |
| 237 result.completeWithKey(key); |
| 238 } |
| 239 |
199 bool WebCryptoImpl::digestSynchronous( | 240 bool WebCryptoImpl::digestSynchronous( |
200 const blink::WebCryptoAlgorithmId algorithm_id, | 241 const blink::WebCryptoAlgorithmId algorithm_id, |
201 const unsigned char* data, | 242 const unsigned char* data, |
202 unsigned int data_size, | 243 unsigned int data_size, |
203 blink::WebArrayBuffer& result) { | 244 blink::WebArrayBuffer& result) { |
204 blink::WebCryptoAlgorithm algorithm = | 245 blink::WebCryptoAlgorithm algorithm = |
205 blink::WebCryptoAlgorithm::adoptParamsAndCreate(algorithm_id, NULL); | 246 blink::WebCryptoAlgorithm::adoptParamsAndCreate(algorithm_id, NULL); |
206 return (webcrypto::Digest( | 247 return (webcrypto::Digest( |
207 algorithm, webcrypto::CryptoData(data, data_size), &result)) | 248 algorithm, webcrypto::CryptoData(data, data_size), &result)) |
208 .IsSuccess(); | 249 .IsSuccess(); |
(...skipping 18 matching lines...) Expand all Loading... |
227 } | 268 } |
228 | 269 |
229 bool WebCryptoImpl::serializeKeyForClone( | 270 bool WebCryptoImpl::serializeKeyForClone( |
230 const blink::WebCryptoKey& key, | 271 const blink::WebCryptoKey& key, |
231 blink::WebVector<unsigned char>& key_data) { | 272 blink::WebVector<unsigned char>& key_data) { |
232 Status status = webcrypto::SerializeKeyForClone(key, &key_data); | 273 Status status = webcrypto::SerializeKeyForClone(key, &key_data); |
233 return status.IsSuccess(); | 274 return status.IsSuccess(); |
234 } | 275 } |
235 | 276 |
236 } // namespace content | 277 } // namespace content |
OLD | NEW |