feat: expose the chromium validated certificate in the certificate verify proc (#21890)

This commit is contained in:
Samuel Attard 2020-01-27 10:48:29 -08:00 committed by Jeremy Apthorp
parent f34cbe66a0
commit 37feeb8e5f
4 changed files with 4 additions and 0 deletions

View file

@ -272,6 +272,7 @@ the original network configuration.
* `request` Object * `request` Object
* `hostname` String * `hostname` String
* `certificate` [Certificate](structures/certificate.md) * `certificate` [Certificate](structures/certificate.md)
* `validatedCertificate` [Certificate](structures/certificate.md)
* `verificationResult` String - Verification result from chromium. * `verificationResult` String - Verification result from chromium.
* `errorCode` Integer - Error code. * `errorCode` Integer - Error code.
* `callback` Function * `callback` Function

View file

@ -32,6 +32,7 @@ void CertVerifierClient::Verify(
params.default_result = net::ErrorToString(default_error); params.default_result = net::ErrorToString(default_error);
params.error_code = default_error; params.error_code = default_error;
params.certificate = certificate; params.certificate = certificate;
params.validated_certificate = default_result.verified_cert;
cert_verify_proc_.Run( cert_verify_proc_.Run(
params, params,
base::AdaptCallbackForRepeating(base::BindOnce( base::AdaptCallbackForRepeating(base::BindOnce(

View file

@ -17,6 +17,7 @@ struct VerifyRequestParams {
std::string default_result; std::string default_result;
int error_code; int error_code;
scoped_refptr<net::X509Certificate> certificate; scoped_refptr<net::X509Certificate> certificate;
scoped_refptr<net::X509Certificate> validated_certificate;
VerifyRequestParams(); VerifyRequestParams();
VerifyRequestParams(const VerifyRequestParams&); VerifyRequestParams(const VerifyRequestParams&);

View file

@ -364,6 +364,7 @@ v8::Local<v8::Value> Converter<electron::VerifyRequestParams>::ToV8(
gin::Dictionary dict = gin::Dictionary::CreateEmpty(isolate); gin::Dictionary dict = gin::Dictionary::CreateEmpty(isolate);
dict.Set("hostname", val.hostname); dict.Set("hostname", val.hostname);
dict.Set("certificate", val.certificate); dict.Set("certificate", val.certificate);
dict.Set("validatedCertificate", val.validated_certificate);
dict.Set("verificationResult", val.default_result); dict.Set("verificationResult", val.default_result);
dict.Set("errorCode", val.error_code); dict.Set("errorCode", val.error_code);
return ConvertToV8(isolate, dict); return ConvertToV8(isolate, dict);