| Index: net/base/x509_certificate.h
|
| diff --git a/net/base/x509_certificate.h b/net/base/x509_certificate.h
|
| index 8e56098000e62d7727e8dd7b47c2cafcb4763b69..08aee5949c9225a0d1f59a67b7fd487c107436c6 100644
|
| --- a/net/base/x509_certificate.h
|
| +++ b/net/base/x509_certificate.h
|
| @@ -48,7 +48,10 @@ class CertVerifyResult;
|
|
|
| typedef std::vector<scoped_refptr<X509Certificate> > CertificateList;
|
|
|
| -// X509Certificate represents an X.509 certificate used by SSL.
|
| +// X509Certificate represents a X.509 certificate, which is comprised a
|
| +// particular identity or end-entity certificate, such as an SSL server
|
| +// identity or an SSL client certificate, and zero or more intermediate
|
| +// certificates that may be used to build a path to a root certificate.
|
| class NET_API X509Certificate
|
| : public base::RefCountedThreadSafe<X509Certificate> {
|
| public:
|
| @@ -76,18 +79,6 @@ class NET_API X509Certificate
|
| bool operator() (X509Certificate* lhs, X509Certificate* rhs) const;
|
| };
|
|
|
| - // Where the certificate comes from. The enumeration constants are
|
| - // listed in increasing order of preference.
|
| - enum Source {
|
| - SOURCE_UNUSED = 0, // The source_ member is not used.
|
| - SOURCE_LONE_CERT_IMPORT = 1, // From importing a certificate without
|
| - // any intermediate CA certificates.
|
| - SOURCE_FROM_CACHE = 2, // From the disk cache - which contains
|
| - // intermediate CA certificates, but may be
|
| - // stale.
|
| - SOURCE_FROM_NETWORK = 3, // From the network.
|
| - };
|
| -
|
| enum VerifyFlags {
|
| VERIFY_REV_CHECKING_ENABLED = 1 << 0,
|
| VERIFY_EV_CERT = 1 << 1,
|
| @@ -136,22 +127,16 @@ class NET_API X509Certificate
|
| base::Time start_date, base::Time expiration_date);
|
|
|
| // Create an X509Certificate from a handle to the certificate object in the
|
| - // underlying crypto library. |source| specifies where |cert_handle| comes
|
| - // from. Given two certificate handles for the same certificate, our
|
| - // certificate cache prefers the handle from the network because our HTTP
|
| - // cache isn't caching the corresponding intermediate CA certificates yet
|
| - // (http://crbug.com/7065).
|
| - // The returned pointer must be stored in a scoped_refptr<X509Certificate>.
|
| + // underlying crypto library. The returned pointer must be stored in a
|
| + // scoped_refptr<X509Certificate>.
|
| static X509Certificate* CreateFromHandle(OSCertHandle cert_handle,
|
| - Source source,
|
| const OSCertHandles& intermediates);
|
|
|
| // Create an X509Certificate from a chain of DER encoded certificates. The
|
| // first certificate in the chain is the end-entity certificate to which a
|
| // handle is returned. The other certificates in the chain are intermediate
|
| - // certificates. See the comment for |CreateFromHandle| about the |source|
|
| - // argument.
|
| - // The returned pointer must be stored in a scoped_refptr<X509Certificate>.
|
| + // certificates. The returned pointer must be stored in a
|
| + // scoped_refptr<X509Certificate>.
|
| static X509Certificate* CreateFromDERCertChain(
|
| const std::vector<base::StringPiece>& der_certs);
|
|
|
| @@ -301,17 +286,6 @@ class NET_API X509Certificate
|
| CFArrayRef CreateClientCertificateChain() const;
|
| #endif
|
|
|
| -#if defined(OS_WIN)
|
| - // Returns a handle to a global, in-memory certificate store. We use it for
|
| - // two purposes:
|
| - // 1. Import server certificates into this store so that we can verify and
|
| - // display the certificates using CryptoAPI.
|
| - // 2. Copy client certificates from the "MY" system certificate store into
|
| - // this store so that we can close the system store when we finish
|
| - // searching for client certificates.
|
| - static HCERTSTORE cert_store();
|
| -#endif
|
| -
|
| #if defined(USE_OPENSSL)
|
| // Returns a handle to a global, in-memory certificate store. We
|
| // use it for test code, e.g. importing the test server's certificate.
|
| @@ -371,6 +345,10 @@ class NET_API X509Certificate
|
| // Frees (or releases a reference to) an OS certificate handle.
|
| static void FreeOSCertHandle(OSCertHandle cert_handle);
|
|
|
| + // Calculates the SHA-1 fingerprint of the certificate. Returns an empty
|
| + // (all zero) fingerprint on failure.
|
| + static SHA1Fingerprint CalculateFingerprint(OSCertHandle cert_handle);
|
| +
|
| private:
|
| friend class base::RefCountedThreadSafe<X509Certificate>;
|
| friend class TestRootCerts; // For unit tests
|
| @@ -381,7 +359,7 @@ class NET_API X509Certificate
|
|
|
| // Construct an X509Certificate from a handle to the certificate object
|
| // in the underlying crypto library.
|
| - X509Certificate(OSCertHandle cert_handle, Source source,
|
| + X509Certificate(OSCertHandle cert_handle,
|
| const OSCertHandles& intermediates);
|
|
|
| ~X509Certificate();
|
| @@ -406,10 +384,6 @@ class NET_API X509Certificate
|
| static void ResetCertStore();
|
| #endif
|
|
|
| - // Calculates the SHA-1 fingerprint of the certificate. Returns an empty
|
| - // (all zero) fingerprint on failure.
|
| - static SHA1Fingerprint CalculateFingerprint(OSCertHandle cert_handle);
|
| -
|
| // Verifies that |hostname| matches one of the certificate names or IP
|
| // addresses supplied, based on TLS name matching rules - specifically,
|
| // following http://tools.ietf.org/html/rfc6125.
|
| @@ -491,9 +465,6 @@ class NET_API X509Certificate
|
| mutable base::Lock verification_lock_;
|
| #endif
|
|
|
| - // Where the certificate comes from.
|
| - Source source_;
|
| -
|
| DISALLOW_COPY_AND_ASSIGN(X509Certificate);
|
| };
|
|
|
|
|