Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(77)

Side by Side Diff: content/child/webcrypto/openssl/key_openssl.cc

Issue 353043005: [webcrypto] Wire up {spki, pkcs8} import/export for OpenSSL. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase on top of https://codereview.chromium.org/379383002/ Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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/openssl/key_openssl.h" 5 #include "content/child/webcrypto/openssl/key_openssl.h"
6 6
7 #include "content/child/webcrypto/crypto_data.h" 7 #include "content/child/webcrypto/crypto_data.h"
8 #include "content/child/webcrypto/status.h" 8 #include "content/child/webcrypto/status.h"
9 #include "content/child/webcrypto/webcrypto_util.h" 9 #include "content/child/webcrypto/webcrypto_util.h"
10 10
11 namespace content { 11 namespace content {
12 12
13 namespace webcrypto { 13 namespace webcrypto {
14 14
15 KeyOpenSsl::KeyOpenSsl(const CryptoData& serialized_key_data) 15 KeyOpenSsl::KeyOpenSsl(const CryptoData& serialized_key_data)
16 : serialized_key_data_( 16 : serialized_key_data_(
17 serialized_key_data.bytes(), 17 serialized_key_data.bytes(),
18 serialized_key_data.bytes() + serialized_key_data.byte_length()) { 18 serialized_key_data.bytes() + serialized_key_data.byte_length()) {
19 } 19 }
20 20
21 KeyOpenSsl::~KeyOpenSsl() { 21 KeyOpenSsl::~KeyOpenSsl() {
22 } 22 }
23 23
24 SymKeyOpenSsl* KeyOpenSsl::AsSymKey() { 24 SymKeyOpenSsl* KeyOpenSsl::AsSymKey() {
25 return NULL; 25 return NULL;
26 } 26 }
27 27
28 AsymKeyOpenSsl* KeyOpenSsl::AsAsymKey() {
29 return NULL;
30 }
31
28 SymKeyOpenSsl::~SymKeyOpenSsl() { 32 SymKeyOpenSsl::~SymKeyOpenSsl() {
29 } 33 }
30 34
31 SymKeyOpenSsl* SymKeyOpenSsl::Cast(const blink::WebCryptoKey& key) { 35 SymKeyOpenSsl* SymKeyOpenSsl::Cast(const blink::WebCryptoKey& key) {
32 KeyOpenSsl* platform_key = reinterpret_cast<KeyOpenSsl*>(key.handle()); 36 KeyOpenSsl* platform_key = reinterpret_cast<KeyOpenSsl*>(key.handle());
33 return platform_key->AsSymKey(); 37 return platform_key->AsSymKey();
34 } 38 }
35 39
36 SymKeyOpenSsl* SymKeyOpenSsl::AsSymKey() { 40 SymKeyOpenSsl* SymKeyOpenSsl::AsSymKey() {
37 return this; 41 return this;
38 } 42 }
39 43
40 SymKeyOpenSsl::SymKeyOpenSsl(const CryptoData& raw_key_data) 44 SymKeyOpenSsl::SymKeyOpenSsl(const CryptoData& raw_key_data)
41 : KeyOpenSsl(raw_key_data) { 45 : KeyOpenSsl(raw_key_data) {
42 } 46 }
43 47
48 AsymKeyOpenSsl::~AsymKeyOpenSsl() {
49 }
50
51 AsymKeyOpenSsl* AsymKeyOpenSsl::Cast(const blink::WebCryptoKey& key) {
52 return reinterpret_cast<KeyOpenSsl*>(key.handle())->AsAsymKey();
53 }
54
55 AsymKeyOpenSsl* AsymKeyOpenSsl::AsAsymKey() {
56 return this;
57 }
58
59 AsymKeyOpenSsl::AsymKeyOpenSsl(crypto::ScopedEVP_PKEY key,
60 const CryptoData& serialized_key_data)
61 : KeyOpenSsl(serialized_key_data), key_(key.Pass()) {
62 }
63
44 bool PlatformSerializeKeyForClone(const blink::WebCryptoKey& key, 64 bool PlatformSerializeKeyForClone(const blink::WebCryptoKey& key,
45 blink::WebVector<uint8>* key_data) { 65 blink::WebVector<uint8>* key_data) {
46 const KeyOpenSsl* openssl_key = static_cast<KeyOpenSsl*>(key.handle()); 66 const KeyOpenSsl* openssl_key = static_cast<KeyOpenSsl*>(key.handle());
47 *key_data = openssl_key->serialized_key_data(); 67 *key_data = openssl_key->serialized_key_data();
48 return true; 68 return true;
49 } 69 }
50 70
51 } // namespace webcrypto 71 } // namespace webcrypto
52 72
53 } // namespace content 73 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698