Chromium Code Reviews| Index: net/cert/mock_client_cert_verifier.cc |
| diff --git a/net/cert/mock_client_cert_verifier.cc b/net/cert/mock_client_cert_verifier.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..2b0dfd16464212588ad99b3aaad01f986df6b462 |
| --- /dev/null |
| +++ b/net/cert/mock_client_cert_verifier.cc |
| @@ -0,0 +1,41 @@ |
| +// Copyright (c) 2015 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#include "net/cert/mock_client_cert_verifier.h" |
| + |
| +#include "net/base/net_errors.h" |
| +#include "net/cert/x509_certificate.h" |
| + |
| +namespace net { |
| + |
| +struct MockClientCertVerifier::Rule { |
| + Rule(X509Certificate* cert, int rv) : cert(cert), rv(rv) { DCHECK(cert); } |
| + |
| + scoped_refptr<X509Certificate> cert; |
| + int rv; |
| +}; |
| + |
| +MockClientCertVerifier::MockClientCertVerifier() |
| + : default_result_(ERR_CERT_INVALID) {} |
| + |
| +MockClientCertVerifier::~MockClientCertVerifier() {} |
| + |
| +int MockClientCertVerifier::Verify(X509Certificate* cert, |
| + const CompletionCallback& callback, |
| + scoped_ptr<Request>* out_req) { |
| + RuleList::const_iterator it; |
|
davidben
2016/02/17 22:46:03
Unused variable?
ryanchung
2016/02/18 01:07:26
Done.
|
| + for (const Rule& rule : rules_) { |
| + // Check just the server cert. Intermediates will be ignored. |
| + if (rule.cert->Equals(cert)) |
| + return rule.rv; |
| + } |
| + return default_result_; |
| +} |
| + |
| +void MockClientCertVerifier::AddResultForCert(X509Certificate* cert, int rv) { |
| + Rule rule(cert, rv); |
| + rules_.push_back(rule); |
| +} |
| + |
| +} // namespace net |