| Index: net/cert/internal/path_builder.h
|
| diff --git a/net/cert/internal/path_builder.h b/net/cert/internal/path_builder.h
|
| index 361e745602f69184cbffa58165ace5959f8ed9fd..04a571a9a3bb3ec47cd2f4023bae0431c5e56b54 100644
|
| --- a/net/cert/internal/path_builder.h
|
| +++ b/net/cert/internal/path_builder.h
|
| @@ -32,17 +32,18 @@ class SignaturePolicy;
|
| // By convention:
|
| // certs[0] is the target certificate
|
| // certs[i] was issued by certs[i+1]
|
| -// certs.back() was issued by trust_anchor
|
| +// certs.back() is the root certificate.
|
| //
|
| -// TODO(eroman): The current code doesn't allow for the target certificate to
|
| -// be the trust anchor. Should it?
|
| +// Note that the final certificate may or may not be a trust achor -- inspect
|
| +// |last_cert_trust| to determine it (or use GetTrustedCert())
|
| struct NET_EXPORT CertPath {
|
| CertPath();
|
| ~CertPath();
|
|
|
| - scoped_refptr<TrustAnchor> trust_anchor;
|
| + // Contains information on whether certs.back() is trusted.
|
| + CertificateTrust last_cert_trust;
|
|
|
| - // Path in the forward direction (path[0] is the target cert).
|
| + // Path in the forward direction (see class description).
|
| ParsedCertificateList certs;
|
|
|
| // Resets the path to empty path (same as if default constructed).
|
| @@ -50,6 +51,10 @@ struct NET_EXPORT CertPath {
|
|
|
| // TODO(eroman): Can we remove this? Unclear on how this relates to validity.
|
| bool IsEmpty() const;
|
| +
|
| + // Returns the chain's root certificate or nullptr if the chain doesn't chain
|
| + // to a trust anchor.
|
| + const ParsedCertificate* GetTrustedCert() const;
|
| };
|
|
|
| // Checks whether a certificate is trusted by building candidate paths to trust
|
| @@ -116,7 +121,7 @@ class NET_EXPORT CertPathBuilder {
|
| // The caller must keep |trust_store|, |signature_policy|, and |*result| valid
|
| // for the lifetime of the CertPathBuilder.
|
| CertPathBuilder(scoped_refptr<ParsedCertificate> cert,
|
| - const TrustStore* trust_store,
|
| + TrustStore* trust_store,
|
| const SignaturePolicy* signature_policy,
|
| const der::GeneralizedTime& time,
|
| KeyPurpose key_purpose,
|
|
|