| 
									
										
										
										
											2019-08-07 08:04:09 -07: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 08:34:31 +01:00
										 |  |  | #ifndef ELECTRON_SHELL_BROWSER_NET_CERT_VERIFIER_CLIENT_H_
 | 
					
						
							|  |  |  | #define ELECTRON_SHELL_BROWSER_NET_CERT_VERIFIER_CLIENT_H_
 | 
					
						
							| 
									
										
										
										
											2019-08-07 08:04:09 -07: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 10:48:29 -08:00
										 |  |  |   scoped_refptr<net::X509Certificate> validated_certificate; | 
					
						
							| 
									
										
										
										
											2021-08-02 04:24:58 +03:00
										 |  |  |   bool is_issued_by_known_root; | 
					
						
							| 
									
										
										
										
											2019-08-07 08:04:09 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  |   VerifyRequestParams(); | 
					
						
							|  |  |  |   VerifyRequestParams(const VerifyRequestParams&); | 
					
						
							|  |  |  |   ~VerifyRequestParams(); | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CertVerifierClient : public network::mojom::CertVerifierClient { | 
					
						
							|  |  |  |  public: | 
					
						
							|  |  |  |   using CertVerifyProc = | 
					
						
							|  |  |  |       base::RepeatingCallback<void(const VerifyRequestParams& request, | 
					
						
							| 
									
										
										
										
											2021-06-16 15:43:51 -07:00
										 |  |  |                                    base::OnceCallback<void(int)>)>; | 
					
						
							| 
									
										
										
										
											2019-08-07 08:04:09 -07: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, | 
					
						
							| 
									
										
										
										
											2024-01-10 23:23:35 +01:00
										 |  |  |               const std::optional<std::string>& ocsp_response, | 
					
						
							| 
									
										
										
										
											2019-08-07 08:04:09 -07:00
										 |  |  |               VerifyCallback callback) override; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |  private: | 
					
						
							|  |  |  |   CertVerifyProc cert_verify_proc_; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | }  // namespace electron
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-22 08:34:31 +01:00
										 |  |  | #endif  // ELECTRON_SHELL_BROWSER_NET_CERT_VERIFIER_CLIENT_H_
 |