14 bool flag = chain.
Build(remoteCertificate);
22 global::Interop.Crypt32.SSL_EXTRA_CERT_CHAIN_POLICY_PARA sSL_EXTRA_CERT_CHAIN_POLICY_PARA =
default(global::Interop.Crypt32.SSL_EXTRA_CERT_CHAIN_POLICY_PARA);
23 sSL_EXTRA_CERT_CHAIN_POLICY_PARA.cbSize = (uint)
sizeof(global::Interop.Crypt32.SSL_EXTRA_CERT_CHAIN_POLICY_PARA);
24 sSL_EXTRA_CERT_CHAIN_POLICY_PARA.dwAuthType = (isServer ? 1u : 2u);
25 sSL_EXTRA_CERT_CHAIN_POLICY_PARA.fdwChecks = 0u;
26 sSL_EXTRA_CERT_CHAIN_POLICY_PARA.pwszServerName =
null;
27 global::Interop.Crypt32.SSL_EXTRA_CERT_CHAIN_POLICY_PARA sSL_EXTRA_CERT_CHAIN_POLICY_PARA2 = sSL_EXTRA_CERT_CHAIN_POLICY_PARA;
28 global::Interop.Crypt32.CERT_CHAIN_POLICY_PARA cERT_CHAIN_POLICY_PARA =
default(global::Interop.Crypt32.CERT_CHAIN_POLICY_PARA);
29 cERT_CHAIN_POLICY_PARA.cbSize = (uint)
sizeof(global::Interop.Crypt32.CERT_CHAIN_POLICY_PARA);
30 cERT_CHAIN_POLICY_PARA.dwFlags = 0u;
31 cERT_CHAIN_POLICY_PARA.pvExtraPolicyPara = &sSL_EXTRA_CERT_CHAIN_POLICY_PARA2;
32 global::Interop.Crypt32.CERT_CHAIN_POLICY_PARA cpp = cERT_CHAIN_POLICY_PARA;
33 fixed (
char* pwszServerName = hostName)
35 sSL_EXTRA_CERT_CHAIN_POLICY_PARA2.pwszServerName = pwszServerName;
38 num =
Verify(safeHandle, ref cpp);
39 if (num == 2148204815u)
49 return sslPolicyErrors;
54 global::Interop.Crypt32.CERT_CHAIN_POLICY_STATUS pPolicyStatus =
default(global::Interop.Crypt32.CERT_CHAIN_POLICY_STATUS);
55 pPolicyStatus.cbSize = (uint)
sizeof(global::Interop.Crypt32.CERT_CHAIN_POLICY_STATUS);
56 bool flag = global::Interop.Crypt32.CertVerifyCertificateChainPolicy((
IntPtr)4, chainContext, ref cpp, ref pPolicyStatus);
59 System.
Net.
NetEventSource.
Info(chainContext, $
"CertVerifyCertificateChainPolicy returned: {flag}. Status: {pPolicyStatus.dwError}",
"Verify");
61 return pPolicyStatus.dwError;