| Index: net/cert/internal/parsed_certificate.cc
|
| diff --git a/net/cert/internal/parsed_certificate.cc b/net/cert/internal/parsed_certificate.cc
|
| index 8ea860f3c94a95d1e6e267cbb1781ad85217594c..e8e08c4e0acc897d4599594c65cfbb0e59fcfcb6 100644
|
| --- a/net/cert/internal/parsed_certificate.cc
|
| +++ b/net/cert/internal/parsed_certificate.cc
|
| @@ -27,7 +27,8 @@ ParsedCertificate::~ParsedCertificate() {}
|
| scoped_refptr<ParsedCertificate> ParsedCertificate::CreateFromCertificateData(
|
| const uint8_t* data,
|
| size_t length,
|
| - DataSource source) {
|
| + DataSource source,
|
| + const ParseCertificateOptions& options) {
|
| scoped_refptr<ParsedCertificate> result(new ParsedCertificate);
|
|
|
| switch (source) {
|
| @@ -47,8 +48,10 @@ scoped_refptr<ParsedCertificate> ParsedCertificate::CreateFromCertificateData(
|
| return nullptr;
|
| }
|
|
|
| - if (!ParseTbsCertificate(result->tbs_certificate_tlv_, &result->tbs_))
|
| + if (!ParseTbsCertificate(result->tbs_certificate_tlv_, options,
|
| + &result->tbs_)) {
|
| return nullptr;
|
| + }
|
|
|
| // Attempt to parse the signature algorithm contained in the Certificate.
|
| // Do not give up on failure here, since SignatureAlgorithm::CreateFromDer
|
| @@ -147,19 +150,21 @@ scoped_refptr<ParsedCertificate> ParsedCertificate::CreateFromCertificateData(
|
| }
|
|
|
| scoped_refptr<ParsedCertificate> ParsedCertificate::CreateFromCertificateCopy(
|
| - const base::StringPiece& data) {
|
| + const base::StringPiece& data,
|
| + const ParseCertificateOptions& options) {
|
| return ParsedCertificate::CreateFromCertificateData(
|
| reinterpret_cast<const uint8_t*>(data.data()), data.size(),
|
| - DataSource::INTERNAL_COPY);
|
| + DataSource::INTERNAL_COPY, options);
|
| }
|
|
|
| bool ParsedCertificate::CreateAndAddToVector(
|
| const uint8_t* data,
|
| size_t length,
|
| DataSource source,
|
| + const ParseCertificateOptions& options,
|
| std::vector<scoped_refptr<ParsedCertificate>>* chain) {
|
| scoped_refptr<ParsedCertificate> cert(
|
| - CreateFromCertificateData(data, length, source));
|
| + CreateFromCertificateData(data, length, source, options));
|
| if (!cert)
|
| return false;
|
| chain->push_back(std::move(cert));
|
|
|