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

Unified Diff: net/quic/test_tools/crypto_test_utils_chromium.cc

Issue 1882433002: Removing NSS files and USE_OPENSSL flag (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase. Created 4 years, 8 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
« no previous file with comments | « net/quic/quic_stream_factory.cc ('k') | net/quic/test_tools/crypto_test_utils_nss.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/quic/test_tools/crypto_test_utils_chromium.cc
diff --git a/net/quic/test_tools/crypto_test_utils_chromium.cc b/net/quic/test_tools/crypto_test_utils_chromium.cc
index d78df969b69c0555e21664eb1e4f9d5a6f9dd5c4..121db431beeed29a26ad3d0ce23dd8d011feaf14 100644
--- a/net/quic/test_tools/crypto_test_utils_chromium.cc
+++ b/net/quic/test_tools/crypto_test_utils_chromium.cc
@@ -75,157 +75,11 @@ class TestProofVerifierChromium : public ProofVerifierChromium {
std::unique_ptr<CTVerifier> cert_transparency_verifier_;
};
-const char kSignature[] = "signature";
-const char kSCT[] = "CryptoServerTests";
-
-class FakeProofSource : public ProofSource {
- public:
- FakeProofSource() {}
- ~FakeProofSource() override {}
-
- // ProofSource interface
- bool Initialize(const base::FilePath& cert_path,
- const base::FilePath& key_path,
- const base::FilePath& sct_path) {
- std::string cert_data;
- if (!base::ReadFileToString(cert_path, &cert_data)) {
- DLOG(FATAL) << "Unable to read certificates.";
- return false;
- }
-
- CertificateList certs_in_file =
- X509Certificate::CreateCertificateListFromBytes(
- cert_data.data(), cert_data.size(), X509Certificate::FORMAT_AUTO);
-
- if (certs_in_file.empty()) {
- DLOG(FATAL) << "No certificates.";
- return false;
- }
-
- vector<string> certs;
- for (const scoped_refptr<X509Certificate>& cert : certs_in_file) {
- std::string der_encoded_cert;
- if (!X509Certificate::GetDEREncoded(cert->os_cert_handle(),
- &der_encoded_cert)) {
- return false;
- }
- certs.push_back(der_encoded_cert);
- }
- chain_ = new ProofSource::Chain(certs);
- return true;
- }
-
- bool GetProof(const IPAddress& server_ip,
- const std::string& hostname,
- const std::string& server_config,
- QuicVersion quic_version,
- StringPiece chlo_hash,
- bool ecdsa_ok,
- scoped_refptr<ProofSource::Chain>* out_chain,
- std::string* out_signature,
- std::string* out_leaf_cert_sct) override {
- out_signature->assign(kSignature);
- *out_chain = chain_;
- *out_leaf_cert_sct = kSCT;
- return true;
- }
-
- private:
- scoped_refptr<ProofSource::Chain> chain_;
-
- DISALLOW_COPY_AND_ASSIGN(FakeProofSource);
-};
-
-class FakeProofVerifier : public TestProofVerifierChromium {
- public:
- FakeProofVerifier(
- std::unique_ptr<CertVerifier> cert_verifier,
- std::unique_ptr<TransportSecurityState> transport_security_state,
- std::unique_ptr<CTVerifier> cert_transparency_verifier,
- const std::string& cert_file)
- : TestProofVerifierChromium(std::move(cert_verifier),
- std::move(transport_security_state),
- std::move(cert_transparency_verifier),
- cert_file) {}
- ~FakeProofVerifier() override {}
-
- // ProofVerifier interface
- QuicAsyncStatus VerifyProof(
- const std::string& hostname,
- const uint16_t port,
- const std::string& server_config,
- QuicVersion quic_version,
- StringPiece chlo_hash,
- const std::vector<std::string>& certs,
- const std::string& cert_sct,
- const std::string& signature,
- const ProofVerifyContext* verify_context,
- std::string* error_details,
- std::unique_ptr<ProofVerifyDetails>* verify_details,
- ProofVerifierCallback* callback) override {
- error_details->clear();
- std::unique_ptr<ProofVerifyDetailsChromium> verify_details_chromium(
- new ProofVerifyDetailsChromium);
- DCHECK(!certs.empty());
- // Convert certs to X509Certificate.
- vector<StringPiece> cert_pieces(certs.size());
- for (unsigned i = 0; i < certs.size(); i++) {
- cert_pieces[i] = base::StringPiece(certs[i]);
- }
- scoped_refptr<X509Certificate> x509_cert =
- X509Certificate::CreateFromDERCertChain(cert_pieces);
-
- if (!x509_cert.get()) {
- *error_details = "Failed to create certificate chain";
- verify_details_chromium->cert_verify_result.cert_status =
- CERT_STATUS_INVALID;
- *verify_details = std::move(verify_details_chromium);
- return QUIC_FAILURE;
- }
-
- const ProofVerifyContextChromium* chromium_context =
- reinterpret_cast<const ProofVerifyContextChromium*>(verify_context);
- std::unique_ptr<CertVerifier::Request> cert_verifier_request_;
- TestCompletionCallback test_callback;
- int result = cert_verifier()->Verify(
- x509_cert.get(), hostname, std::string(),
- chromium_context->cert_verify_flags,
- SSLConfigService::GetCRLSet().get(),
- &verify_details_chromium->cert_verify_result, test_callback.callback(),
- &cert_verifier_request_, chromium_context->net_log);
- if (result != OK) {
- std::string error_string = ErrorToString(result);
- *error_details = StringPrintf("Failed to verify certificate chain: %s",
- error_string.c_str());
- verify_details_chromium->cert_verify_result.cert_status =
- CERT_STATUS_INVALID;
- *verify_details = std::move(verify_details_chromium);
- return QUIC_FAILURE;
- }
- if (signature != kSignature) {
- *error_details = "Invalid proof";
- verify_details_chromium->cert_verify_result.cert_status =
- CERT_STATUS_INVALID;
- *verify_details = std::move(verify_details_chromium);
- return QUIC_FAILURE;
- }
- *verify_details = std::move(verify_details_chromium);
- return QUIC_SUCCESS;
- }
-
- private:
- DISALLOW_COPY_AND_ASSIGN(FakeProofVerifier);
-};
-
} // namespace
// static
ProofSource* CryptoTestUtils::ProofSourceForTesting() {
-#if defined(USE_OPENSSL)
ProofSourceChromium* source = new ProofSourceChromium();
-#else
- FakeProofSource* source = new FakeProofSource();
-#endif
base::FilePath certs_dir = GetTestCertsDirectory();
CHECK(source->Initialize(
certs_dir.AppendASCII("quic_chain.crt"),
@@ -252,15 +106,9 @@ ProofVerifier* ProofVerifierForTestingInternal(bool use_real_proof_verifier) {
std::move(cert_verifier), base::WrapUnique(new TransportSecurityState),
base::WrapUnique(new MultiLogCTVerifier), "quic_root.crt");
}
-#if defined(USE_OPENSSL)
return new TestProofVerifierChromium(
std::move(cert_verifier), base::WrapUnique(new TransportSecurityState),
base::WrapUnique(new MultiLogCTVerifier), "quic_root.crt");
-#else
- return new FakeProofVerifier(
- std::move(cert_verifier), base::WrapUnique(new TransportSecurityState),
- base::WrapUnique(new MultiLogCTVerifier), "quic_root.crt");
-#endif
}
// static
« no previous file with comments | « net/quic/quic_stream_factory.cc ('k') | net/quic/test_tools/crypto_test_utils_nss.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698