1 // Copyright 2013 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "net/quic/test_tools/crypto_test_utils.h" 6 7 #include "base/memory/ref_counted.h" 8 #include "base/memory/scoped_ptr.h" 9 #include "net/base/test_data_directory.h" 10 #include "net/cert/cert_verifier.h" 11 #include "net/cert/test_root_certs.h" 12 #include "net/cert/x509_certificate.h" 13 #include "net/quic/crypto/proof_source_chromium.h" 14 #include "net/quic/crypto/proof_verifier_chromium.h" 15 #include "net/test/cert_test_util.h" 16 17 namespace net { 18 19 namespace test { 20 21 class TestProofVerifierChromium : public ProofVerifierChromium { 22 public: 23 TestProofVerifierChromium(CertVerifier* cert_verifier, 24 const std::string& cert_file) 25 : ProofVerifierChromium(cert_verifier, BoundNetLog()), 26 cert_verifier_(cert_verifier) { 27 // Load and install the root for the validated chain. 28 scoped_refptr<X509Certificate> root_cert = 29 ImportCertFromFile(GetTestCertsDirectory(), cert_file); 30 scoped_root_.Reset(root_cert.get()); 31 } 32 virtual ~TestProofVerifierChromium() { } 33 34 private: 35 ScopedTestRoot scoped_root_; 36 scoped_ptr<CertVerifier> cert_verifier_; 37 }; 38 39 // static 40 ProofSource* CryptoTestUtils::ProofSourceForTesting() { 41 return new ProofSourceChromium(); 42 } 43 44 // static 45 ProofVerifier* CryptoTestUtils::ProofVerifierForTesting() { 46 TestProofVerifierChromium* proof_verifier = new TestProofVerifierChromium( 47 CertVerifier::CreateDefault(), "quic_root.crt"); 48 return proof_verifier; 49 } 50 51 } // namespace test 52 53 } // namespace net 54