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

Side by Side Diff: crypto/symmetric_key_nss.cc

Issue 8949056: This adds support for encrypted ONC import (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Handling decryption errors better Created 8 years, 11 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 (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "crypto/symmetric_key.h" 5 #include "crypto/symmetric_key.h"
6 6
7 #include <nss.h> 7 #include <nss.h>
8 #include <pk11pub.h> 8 #include <pk11pub.h>
9 9
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
100 // it's not PK11_OriginFortezzaHack, so we pass PK11_OriginUnwrap as a 100 // it's not PK11_OriginFortezzaHack, so we pass PK11_OriginUnwrap as a
101 // placeholder. 101 // placeholder.
102 PK11SymKey* sym_key = PK11_ImportSymKey(slot.get(), cipher, PK11_OriginUnwrap, 102 PK11SymKey* sym_key = PK11_ImportSymKey(slot.get(), cipher, PK11_OriginUnwrap,
103 CKA_ENCRYPT, &key_item, NULL); 103 CKA_ENCRYPT, &key_item, NULL);
104 if (!sym_key) 104 if (!sym_key)
105 return NULL; 105 return NULL;
106 106
107 return new SymmetricKey(sym_key); 107 return new SymmetricKey(sym_key);
108 } 108 }
109 109
110 bool SymmetricKey::GetRawKey(std::string* raw_key) { 110 bool SymmetricKey::GetRawKey(std::string* raw_key) const {
111 SECStatus rv = PK11_ExtractKeyValue(key_.get()); 111 SECStatus rv = PK11_ExtractKeyValue(key_.get());
112 if (SECSuccess != rv) 112 if (SECSuccess != rv)
113 return false; 113 return false;
114 114
115 SECItem* key_item = PK11_GetKeyData(key_.get()); 115 SECItem* key_item = PK11_GetKeyData(key_.get());
116 if (!key_item) 116 if (!key_item)
117 return false; 117 return false;
118 118
119 raw_key->assign(reinterpret_cast<char*>(key_item->data), key_item->len); 119 raw_key->assign(reinterpret_cast<char*>(key_item->data), key_item->len);
120 return true; 120 return true;
121 } 121 }
122 122
123 #if defined(OS_CHROMEOS) 123 #if defined(OS_CHROMEOS)
124 // static 124 // static
125 SymmetricKey* SymmetricKey::CreateFromKey(PK11SymKey* key) { 125 SymmetricKey* SymmetricKey::CreateFromKey(PK11SymKey* key) {
126 return new SymmetricKey(key); 126 return new SymmetricKey(key);
127 } 127 }
128 #endif 128 #endif
129 129
130 SymmetricKey::SymmetricKey(PK11SymKey* key) : key_(key) { 130 SymmetricKey::SymmetricKey(PK11SymKey* key) : key_(key) {
131 DCHECK(key); 131 DCHECK(key);
132 } 132 }
133 133
134 } // namespace crypto 134 } // namespace crypto
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698