client_cert_verifier.h 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. // Copyright (c) 2015 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. #ifndef NET_CERT_CLIENT_CERT_VERIFIER_H_
  5. #define NET_CERT_CLIENT_CERT_VERIFIER_H_
  6. #include <memory>
  7. #include "net/base/completion_once_callback.h"
  8. #include "net/base/net_export.h"
  9. namespace net {
  10. class X509Certificate;
  11. // ClientCertVerifier represents a service for verifying certificates.
  12. class NET_EXPORT ClientCertVerifier {
  13. public:
  14. class Request {
  15. public:
  16. Request() = default;
  17. Request(const Request&) = delete;
  18. Request& operator=(const Request&) = delete;
  19. // Destruction of the Request cancels it.
  20. virtual ~Request() = default;
  21. };
  22. virtual ~ClientCertVerifier() = default;
  23. // Verifies the given certificate as a client certificate.
  24. // Returns OK if successful or an error code upon failure.
  25. virtual int Verify(X509Certificate* cert,
  26. CompletionOnceCallback callback,
  27. std::unique_ptr<Request>* out_req) = 0;
  28. };
  29. } // namespace net
  30. #endif // NET_CERT_CLIENT_CERT_VERIFIER_H_