Chromium Code Reviews| 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/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/lazy_instance.h" | 8 #include "base/lazy_instance.h" |
| 9 #include "base/location.h" | 9 #include "base/location.h" |
| 10 #include "base/logging.h" | 10 #include "base/logging.h" |
| (...skipping 439 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 450 DCHECK(state->key.handle()); | 450 DCHECK(state->key.handle()); |
| 451 DCHECK(!state->key.algorithm().isNull()); | 451 DCHECK(!state->key.algorithm().isNull()); |
| 452 DCHECK_EQ(state->extractable, state->key.extractable()); | 452 DCHECK_EQ(state->extractable, state->key.extractable()); |
| 453 } | 453 } |
| 454 | 454 |
| 455 state->origin_thread->PostTask( | 455 state->origin_thread->PostTask( |
| 456 FROM_HERE, base::Bind(DoImportKeyReply, Passed(&passed_state))); | 456 FROM_HERE, base::Bind(DoImportKeyReply, Passed(&passed_state))); |
| 457 } | 457 } |
| 458 | 458 |
| 459 void DoExportKeyReply(scoped_ptr<ExportKeyState> state) { | 459 void DoExportKeyReply(scoped_ptr<ExportKeyState> state) { |
| 460 #ifndef WEBCRYPTO_RESULT_ACCEPTS_JSON | |
| 461 // TODO(eroman): Remove idfef once blink rolls. | |
| 460 CompleteWithBufferOrError(state->status, state->buffer, &state->result); | 462 CompleteWithBufferOrError(state->status, state->buffer, &state->result); |
| 463 #else | |
| 464 if (state->format != blink::WebCryptoKeyFormatJwk) { | |
| 465 CompleteWithBufferOrError(state->status, state->buffer, &state->result); | |
| 466 return; | |
| 467 } | |
| 468 | |
| 469 if (state->status.IsError()) { | |
| 470 CompleteWithError(state->status, &state->result); | |
| 471 } else { | |
| 472 state->result.completeWithJson( | |
| 473 reinterpret_cast<const char*>( | |
| 474 webcrypto::Uint8VectorStart(&state->buffer)), | |
| 475 state->buffer.size()); | |
|
Ryan Sleevi
2014/06/17 19:15:20
This feels like there's a dependent CL here (perha
| |
| 476 } | |
| 477 #endif | |
| 461 } | 478 } |
| 462 | 479 |
| 463 void DoExportKey(scoped_ptr<ExportKeyState> passed_state) { | 480 void DoExportKey(scoped_ptr<ExportKeyState> passed_state) { |
| 464 ExportKeyState* state = passed_state.get(); | 481 ExportKeyState* state = passed_state.get(); |
| 465 state->status = | 482 state->status = |
| 466 webcrypto::ExportKey(state->format, state->key, &state->buffer); | 483 webcrypto::ExportKey(state->format, state->key, &state->buffer); |
| 467 state->origin_thread->PostTask( | 484 state->origin_thread->PostTask( |
| 468 FROM_HERE, base::Bind(DoExportKeyReply, Passed(&passed_state))); | 485 FROM_HERE, base::Bind(DoExportKeyReply, Passed(&passed_state))); |
| 469 } | 486 } |
| 470 | 487 |
| (...skipping 259 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 730 &key); | 747 &key); |
| 731 } | 748 } |
| 732 | 749 |
| 733 bool WebCryptoImpl::serializeKeyForClone( | 750 bool WebCryptoImpl::serializeKeyForClone( |
| 734 const blink::WebCryptoKey& key, | 751 const blink::WebCryptoKey& key, |
| 735 blink::WebVector<unsigned char>& key_data) { | 752 blink::WebVector<unsigned char>& key_data) { |
| 736 return webcrypto::SerializeKeyForClone(key, &key_data); | 753 return webcrypto::SerializeKeyForClone(key, &key_data); |
| 737 } | 754 } |
| 738 | 755 |
| 739 } // namespace content | 756 } // namespace content |
| OLD | NEW |