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

Unified Diff: net/cert/internal/parsed_certificate.cc

Issue 2079273004: Allow Cast certificates to have serial numbers greater than 20 bytes. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: remove allowance of invalid serial numbers for cast roots Created 4 years, 6 months 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 side-by-side diff with in-line comments
Download patch
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));
« no previous file with comments | « net/cert/internal/parsed_certificate.h ('k') | net/cert/internal/verify_certificate_chain_pkits_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698