2019-08-07 15:04:09 +00:00
|
|
|
// Copyright (c) 2019 GitHub, Inc.
|
|
|
|
// Use of this source code is governed by the MIT license that can be
|
|
|
|
// found in the LICENSE file.
|
|
|
|
|
2021-11-22 07:34:31 +00:00
|
|
|
#ifndef ELECTRON_SHELL_BROWSER_NET_CERT_VERIFIER_CLIENT_H_
|
|
|
|
#define ELECTRON_SHELL_BROWSER_NET_CERT_VERIFIER_CLIENT_H_
|
2019-08-07 15:04:09 +00:00
|
|
|
|
|
|
|
#include <string>
|
|
|
|
|
|
|
|
#include "net/cert/x509_certificate.h"
|
|
|
|
#include "services/network/public/mojom/network_context.mojom.h"
|
|
|
|
|
|
|
|
namespace electron {
|
|
|
|
|
|
|
|
struct VerifyRequestParams {
|
|
|
|
std::string hostname;
|
|
|
|
std::string default_result;
|
|
|
|
int error_code;
|
|
|
|
scoped_refptr<net::X509Certificate> certificate;
|
2020-01-27 18:48:29 +00:00
|
|
|
scoped_refptr<net::X509Certificate> validated_certificate;
|
2021-08-02 01:24:58 +00:00
|
|
|
bool is_issued_by_known_root;
|
2019-08-07 15:04:09 +00:00
|
|
|
|
|
|
|
VerifyRequestParams();
|
|
|
|
VerifyRequestParams(const VerifyRequestParams&);
|
|
|
|
~VerifyRequestParams();
|
|
|
|
};
|
|
|
|
|
|
|
|
class CertVerifierClient : public network::mojom::CertVerifierClient {
|
|
|
|
public:
|
|
|
|
using CertVerifyProc =
|
|
|
|
base::RepeatingCallback<void(const VerifyRequestParams& request,
|
2021-06-16 22:43:51 +00:00
|
|
|
base::OnceCallback<void(int)>)>;
|
2019-08-07 15:04:09 +00:00
|
|
|
|
|
|
|
explicit CertVerifierClient(CertVerifyProc proc);
|
|
|
|
~CertVerifierClient() override;
|
|
|
|
|
|
|
|
// network::mojom::CertVerifierClient
|
|
|
|
void Verify(int default_error,
|
|
|
|
const net::CertVerifyResult& default_result,
|
|
|
|
const scoped_refptr<net::X509Certificate>& certificate,
|
|
|
|
const std::string& hostname,
|
|
|
|
int flags,
|
2021-06-03 08:05:04 +00:00
|
|
|
const absl::optional<std::string>& ocsp_response,
|
2019-08-07 15:04:09 +00:00
|
|
|
VerifyCallback callback) override;
|
|
|
|
|
|
|
|
private:
|
|
|
|
CertVerifyProc cert_verify_proc_;
|
|
|
|
};
|
|
|
|
|
|
|
|
} // namespace electron
|
|
|
|
|
2021-11-22 07:34:31 +00:00
|
|
|
#endif // ELECTRON_SHELL_BROWSER_NET_CERT_VERIFIER_CLIENT_H_
|