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

Side by Side Diff: net/cert/x509_certificate_nss.cc

Issue 2753123002: Add --ignore-certificate-errors-spki-list switch and UMA histogram. (Closed)
Patch Set: Created 3 years, 9 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 <cert.h> 5 #include <cert.h>
6 #include <cryptohi.h> 6 #include <cryptohi.h>
7 #include <keyhi.h> 7 #include <keyhi.h>
8 #include <nss.h> 8 #include <nss.h>
9 #include <pk11pub.h> 9 #include <pk11pub.h>
10 #include <prtime.h> 10 #include <prtime.h>
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after
211 } 211 }
212 unsigned int result_len; 212 unsigned int result_len;
213 HASH_End(sha256_ctx, sha256.data, &result_len, 213 HASH_End(sha256_ctx, sha256.data, &result_len,
214 HASH_ResultLenContext(sha256_ctx)); 214 HASH_ResultLenContext(sha256_ctx));
215 HASH_Destroy(sha256_ctx); 215 HASH_Destroy(sha256_ctx);
216 216
217 return sha256; 217 return sha256;
218 } 218 }
219 219
220 // static 220 // static
221 SHA256HashValue X509Certificate::CalculatePublicKeyHashSHA256(
222 OSCertHandle cert) {
223 SHA256HashValue sha256;
224 memset(sha256.data, 0, sizeof(sha256.data));
225
226 DCHECK(NULL != cert->derPublicKey.data);
227 DCHECK_NE(0U, cert->derPublicKey.len);
228 SECStatus rv = HASH_HashBuf(HASH_AlgSHA256, sha256.data,
229 cert->derPublicKey.data, cert->derPublicKey.len);
230 DCHECK_EQ(rv, SECSuccess);
231
232 return sha256;
233 }
234
235 // static
221 X509Certificate::OSCertHandle X509Certificate::ReadOSCertHandleFromPickle( 236 X509Certificate::OSCertHandle X509Certificate::ReadOSCertHandleFromPickle(
222 base::PickleIterator* pickle_iter) { 237 base::PickleIterator* pickle_iter) {
223 return x509_util::ReadOSCertHandleFromPickle(pickle_iter); 238 return x509_util::ReadOSCertHandleFromPickle(pickle_iter);
224 } 239 }
225 240
226 // static 241 // static
227 bool X509Certificate::WriteOSCertHandleToPickle(OSCertHandle cert_handle, 242 bool X509Certificate::WriteOSCertHandleToPickle(OSCertHandle cert_handle,
228 base::Pickle* pickle) { 243 base::Pickle* pickle) {
229 return pickle->WriteData( 244 return pickle->WriteData(
230 reinterpret_cast<const char*>(cert_handle->derCert.data), 245 reinterpret_cast<const char*>(cert_handle->derCert.data),
(...skipping 14 matching lines...) Expand all
245 return false; 260 return false;
246 if (SECSuccess != CERT_VerifySignedDataWithPublicKey( 261 if (SECSuccess != CERT_VerifySignedDataWithPublicKey(
247 &cert_handle->signatureWrap, public_key.get(), NULL)) { 262 &cert_handle->signatureWrap, public_key.get(), NULL)) {
248 return false; 263 return false;
249 } 264 }
250 return CERT_CompareName(&cert_handle->subject, &cert_handle->issuer) == 265 return CERT_CompareName(&cert_handle->subject, &cert_handle->issuer) ==
251 SECEqual; 266 SECEqual;
252 } 267 }
253 268
254 } // namespace net 269 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698