Commit 88cf36fd authored by Matt Mueller's avatar Matt Mueller Committed by Commit Bot

net/test: Add CertBuilder::GetX509CertificateChain helper.

Provides a more concise method for creating an X509Certificate with the
necessary intermediate(s).

Change-Id: I20d1cedbc7ee177b27871e460b1db56aec8f4e34
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1815994
Commit-Queue: Matt Mueller <mattm@chromium.org>
Reviewed-by: default avatarEric Roman <eroman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#699051}
parent 195e49a6
This diff is collapsed.
......@@ -327,6 +327,17 @@ scoped_refptr<X509Certificate> CertBuilder::GetX509Certificate() {
return X509Certificate::CreateFromBuffer(DupCertBuffer(), {});
}
scoped_refptr<X509Certificate> CertBuilder::GetX509CertificateChain() {
std::vector<bssl::UniquePtr<CRYPTO_BUFFER>> intermediates;
// Add intermediates, not including the self-signed root.
for (CertBuilder* cert = issuer_; cert && cert != cert->issuer_;
cert = cert->issuer_) {
intermediates.push_back(cert->DupCertBuffer());
}
return X509Certificate::CreateFromBuffer(DupCertBuffer(),
std::move(intermediates));
}
std::string CertBuilder::GetDER() {
return x509_util::CryptoBufferAsStringPiece(GetCertBuffer()).as_string();
}
......
......@@ -87,6 +87,10 @@ class CertBuilder {
// Returns an X509Certificate for the generated certificate.
scoped_refptr<X509Certificate> GetX509Certificate();
// Returns an X509Certificate for the generated certificate, including
// intermediate certificates.
scoped_refptr<X509Certificate> GetX509CertificateChain();
// Returns a copy of the certificate's DER.
std::string GetDER();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment