| Index: net/cert/x509_util_ios.cc
|
| diff --git a/net/cert/x509_util_ios.cc b/net/cert/x509_util_ios.cc
|
| deleted file mode 100644
|
| index 0c644a8a25a4b87809d3253d1c7d068cdd09e1fb..0000000000000000000000000000000000000000
|
| --- a/net/cert/x509_util_ios.cc
|
| +++ /dev/null
|
| @@ -1,142 +0,0 @@
|
| -// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "net/cert/x509_util_ios.h"
|
| -
|
| -#include <cert.h>
|
| -#include <CommonCrypto/CommonDigest.h>
|
| -#include <nss.h>
|
| -#include <prtypes.h>
|
| -
|
| -#include "base/mac/scoped_cftyperef.h"
|
| -#include "base/memory/ref_counted.h"
|
| -#include "crypto/nss_util.h"
|
| -#include "net/cert/x509_certificate.h"
|
| -#include "net/cert/x509_util_nss.h"
|
| -
|
| -using base::ScopedCFTypeRef;
|
| -
|
| -namespace net {
|
| -namespace x509_util_ios {
|
| -
|
| -namespace {
|
| -
|
| -// Creates an NSS certificate handle from |data|, which is |length| bytes in
|
| -// size.
|
| -CERTCertificate* CreateNSSCertHandleFromBytes(const char* data,
|
| - int length) {
|
| - if (length < 0)
|
| - return NULL;
|
| -
|
| - crypto::EnsureNSSInit();
|
| -
|
| - if (!NSS_IsInitialized())
|
| - return NULL;
|
| -
|
| - SECItem der_cert;
|
| - der_cert.data = reinterpret_cast<unsigned char*>(const_cast<char*>(data));
|
| - der_cert.len = length;
|
| - der_cert.type = siDERCertBuffer;
|
| -
|
| - // Parse into a certificate structure.
|
| - return CERT_NewTempCertificate(CERT_GetDefaultCertDB(), &der_cert, NULL,
|
| - PR_FALSE, PR_TRUE);
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| -CERTCertificate* CreateNSSCertHandleFromOSHandle(
|
| - SecCertificateRef cert_handle) {
|
| - ScopedCFTypeRef<CFDataRef> cert_data(SecCertificateCopyData(cert_handle));
|
| - return CreateNSSCertHandleFromBytes(
|
| - reinterpret_cast<const char*>(CFDataGetBytePtr(cert_data)),
|
| - CFDataGetLength(cert_data));
|
| -}
|
| -
|
| -SecCertificateRef CreateOSCertHandleFromNSSHandle(
|
| - CERTCertificate* nss_cert_handle) {
|
| - return X509Certificate::CreateOSCertHandleFromBytes(
|
| - reinterpret_cast<const char*>(nss_cert_handle->derCert.data),
|
| - nss_cert_handle->derCert.len);
|
| -}
|
| -
|
| -scoped_refptr<X509Certificate> CreateCertFromNSSHandles(
|
| - CERTCertificate* cert_handle,
|
| - const std::vector<CERTCertificate*>& intermediates) {
|
| - ScopedCFTypeRef<SecCertificateRef> os_server_cert(
|
| - CreateOSCertHandleFromNSSHandle(cert_handle));
|
| - if (!os_server_cert)
|
| - return nullptr;
|
| - std::vector<SecCertificateRef> os_intermediates;
|
| - for (size_t i = 0; i < intermediates.size(); ++i) {
|
| - SecCertificateRef intermediate =
|
| - CreateOSCertHandleFromNSSHandle(intermediates[i]);
|
| - if (!intermediate)
|
| - break;
|
| - os_intermediates.push_back(intermediate);
|
| - }
|
| -
|
| - scoped_refptr<X509Certificate> cert = nullptr;
|
| - if (intermediates.size() == os_intermediates.size()) {
|
| - cert = X509Certificate::CreateFromHandle(os_server_cert,
|
| - os_intermediates);
|
| - }
|
| -
|
| - for (size_t i = 0; i < os_intermediates.size(); ++i)
|
| - CFRelease(os_intermediates[i]);
|
| - return cert;
|
| -}
|
| -
|
| -SHA1HashValue CalculateFingerprintNSS(CERTCertificate* cert) {
|
| - DCHECK(cert->derCert.data);
|
| - DCHECK_NE(0U, cert->derCert.len);
|
| - SHA1HashValue sha1;
|
| - memset(sha1.data, 0, sizeof(sha1.data));
|
| - CC_SHA1(cert->derCert.data, cert->derCert.len, sha1.data);
|
| - return sha1;
|
| -}
|
| -
|
| -// NSSCertificate implementation.
|
| -
|
| -NSSCertificate::NSSCertificate(SecCertificateRef cert_handle) {
|
| - nss_cert_handle_ = CreateNSSCertHandleFromOSHandle(cert_handle);
|
| - DLOG_IF(ERROR, cert_handle && !nss_cert_handle_)
|
| - << "Could not convert SecCertificateRef to CERTCertificate*";
|
| -}
|
| -
|
| -NSSCertificate::~NSSCertificate() {
|
| - CERT_DestroyCertificate(nss_cert_handle_);
|
| -}
|
| -
|
| -CERTCertificate* NSSCertificate::cert_handle() const {
|
| - return nss_cert_handle_;
|
| -}
|
| -
|
| -// NSSCertChain implementation
|
| -
|
| -NSSCertChain::NSSCertChain(X509Certificate* certificate) {
|
| - DCHECK(certificate);
|
| - certs_.push_back(CreateNSSCertHandleFromOSHandle(
|
| - certificate->os_cert_handle()));
|
| - const X509Certificate::OSCertHandles& cert_intermediates =
|
| - certificate->GetIntermediateCertificates();
|
| - for (size_t i = 0; i < cert_intermediates.size(); ++i)
|
| - certs_.push_back(CreateNSSCertHandleFromOSHandle(cert_intermediates[i]));
|
| -}
|
| -
|
| -NSSCertChain::~NSSCertChain() {
|
| - for (size_t i = 0; i < certs_.size(); ++i)
|
| - CERT_DestroyCertificate(certs_[i]);
|
| -}
|
| -
|
| -CERTCertificate* NSSCertChain::cert_handle() const {
|
| - return certs_.empty() ? NULL : certs_.front();
|
| -}
|
| -
|
| -const std::vector<CERTCertificate*>& NSSCertChain::cert_chain() const {
|
| - return certs_;
|
| -}
|
| -
|
| -} // namespace x509_util_ios
|
| -} // namespace net
|
|
|