public static bool HasCngKey(this X509Certificate certificate) { if (X509Native.HasCertificateProperty(certificate.Handle, X509Native.CertificateProperty.KeyProviderInfo)) { X509Native.CERT_KEY_PROV_INFO keyProvInfo = X509Native.GetCertificateProperty <X509Native.CERT_KEY_PROV_INFO>(certificate.Handle, X509Native.CertificateProperty.KeyProviderInfo); return(keyProvInfo.dwProvType == 0); } else { return(false); } }
public static bool HasCngKey(this X509Certificate certificate) { using (SafeCertContextHandle certContext = certificate.GetCertificateContext()) { if (X509Native.HasCertificateProperty(certContext, X509Native.CertificateProperty.KeyProviderInfo)) { X509Native.CRYPT_KEY_PROV_INFO keyProvInfo = X509Native.GetCertificateProperty <X509Native.CRYPT_KEY_PROV_INFO>(certContext, X509Native.CertificateProperty.KeyProviderInfo); return(keyProvInfo.dwProvType == 0); } else { return(false); } } }