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

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

Issue 634033002: Check whether or not a certificate is self-signed. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: iOS implementation. Created 6 years, 1 month 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 "net/cert/x509_certificate.h" 5 #include "net/cert/x509_certificate.h"
6 6
7 #include <CommonCrypto/CommonDigest.h> 7 #include <CommonCrypto/CommonDigest.h>
8 #include <Security/Security.h> 8 #include <Security/Security.h>
9 9
10 #include <cert.h> 10 #include <cert.h>
(...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after
243 } 243 }
244 244
245 // static 245 // static
246 void X509Certificate::GetPublicKeyInfo(OSCertHandle cert_handle, 246 void X509Certificate::GetPublicKeyInfo(OSCertHandle cert_handle,
247 size_t* size_bits, 247 size_t* size_bits,
248 PublicKeyType* type) { 248 PublicKeyType* type) {
249 x509_util_ios::NSSCertificate nss_cert(cert_handle); 249 x509_util_ios::NSSCertificate nss_cert(cert_handle);
250 x509_util::GetPublicKeyInfo(nss_cert.cert_handle(), size_bits, type); 250 x509_util::GetPublicKeyInfo(nss_cert.cert_handle(), size_bits, type);
251 } 251 }
252 252
253 // static
254 bool X509Certificate::IsSelfSigned(OSCertHandle cert_handle) {
255 x509_util_ios::NSSCertificate nss_cert(cert_handle);
256 SECKEYPublicKey* public_key = CERT_ExtractPublicKey(nss_cert.cert_handle());
Ryan Sleevi 2014/10/27 23:33:13 BUG: You're leaking this
palmer 2014/10/28 00:59:38 What's the best way to handle it? I don't see a sc
palmer 2014/10/28 23:13:41 Done.
257 if (!public_key)
258 return false;
259 return SECSuccess == CERT_VerifySignedDataWithPublicKey(
260 &nss_cert.cert_handle()->signatureWrap, public_key, NULL);
261 }
262
253 } // namespace net 263 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698