656 references to Crypt32
System.Security.Cryptography (656)
_generated\0\LibraryImports.g.cs (224)
57
internal static unsafe partial bool CryptAcquireContext(out nint psafeProvHandle, char* pszContainer, char* pszProvider, int dwProvType, global::Interop.
Crypt32
.CryptAcquireContextFlags dwFlags)
77
static extern unsafe int __PInvoke(nint* __psafeProvHandle_native, char* __pszContainer_native, char* __pszProvider_native, int __dwProvType_native, global::Interop.
Crypt32
.CryptAcquireContextFlags __dwFlags_native);
2482
internal static partial bool CertAddCertificateContextToStore(global::Microsoft.Win32.SafeHandles.SafeCertStoreHandle hCertStore, global::Microsoft.Win32.SafeHandles.SafeCertContextHandle pCertContext, global::Interop.
Crypt32
.CertStoreAddDisposition dwAddDisposition, nint ppStoreContext)
2520
static extern unsafe int __PInvoke(nint __hCertStore_native, nint __pCertContext_native, global::Interop.
Crypt32
.CertStoreAddDisposition __dwAddDisposition_native, nint __ppStoreContext_native);
2529
internal static partial bool CertAddCertificateLinkToStore(global::Microsoft.Win32.SafeHandles.SafeCertStoreHandle hCertStore, global::Microsoft.Win32.SafeHandles.SafeCertContextHandle pCertContext, global::Interop.
Crypt32
.CertStoreAddDisposition dwAddDisposition, nint ppStoreContext)
2567
static extern unsafe int __PInvoke(nint __hCertStore_native, nint __pCertContext_native, global::Interop.
Crypt32
.CertStoreAddDisposition __dwAddDisposition_native, nint __ppStoreContext_native);
2602
internal static partial bool CertControlStore(global::Microsoft.Win32.SafeHandles.SafeCertStoreHandle hCertStore, global::Interop.
Crypt32
.CertControlStoreFlags dwFlags, global::Interop.
Crypt32
.CertControlStoreType dwControlType, nint pvCtrlPara)
2635
static extern unsafe int __PInvoke(nint __hCertStore_native, global::Interop.
Crypt32
.CertControlStoreFlags __dwFlags_native, global::Interop.
Crypt32
.CertControlStoreType __dwControlType_native, nint __pvCtrlPara_native);
2644
internal static partial bool CertCreateCertificateChainEngine(ref global::Interop.
Crypt32
.CERT_CHAIN_ENGINE_CONFIG pConfig, out global::Microsoft.Win32.SafeHandles.SafeChainEngineHandle hChainEngineHandle)
2657
fixed (global::Interop.
Crypt32
.CERT_CHAIN_ENGINE_CONFIG* __pConfig_native = &pConfig)
2684
static extern unsafe int __PInvoke(global::Interop.
Crypt32
.CERT_CHAIN_ENGINE_CONFIG* __pConfig_native, nint* __hChainEngineHandle_native);
2693
internal static unsafe partial bool CertDeleteCertificateFromStore(global::Interop.
Crypt32
.CERT_CONTEXT* pCertContext)
2710
static extern unsafe int __PInvoke(global::Interop.
Crypt32
.CERT_CONTEXT* __pCertContext_native);
2895
internal static unsafe partial global::Interop.
Crypt32
.CERT_CONTEXT* CertEnumCertificatesInStore(global::Microsoft.Win32.SafeHandles.SafeCertStoreHandle hCertStore, global::Interop.
Crypt32
.CERT_CONTEXT* pPrevCertContext)
2899
global::Interop.
Crypt32
.CERT_CONTEXT* __retVal = default;
2924
static extern unsafe global::Interop.
Crypt32
.CERT_CONTEXT* __PInvoke(nint __hCertStore_native, global::Interop.
Crypt32
.CERT_CONTEXT* __pPrevCertContext_native);
2933
internal static unsafe partial global::Microsoft.Win32.SafeHandles.SafeCertContextHandle CertFindCertificateInStore(global::Microsoft.Win32.SafeHandles.SafeCertStoreHandle hCertStore, global::Interop.
Crypt32
.CertEncodingType dwCertEncodingType, global::Interop.
Crypt32
.CertFindFlags dwFindFlags, global::Interop.
Crypt32
.CertFindType dwFindType, void* pvFindPara, global::Interop.
Crypt32
.CERT_CONTEXT* pPrevCertContext)
2977
static extern unsafe nint __PInvoke(nint __hCertStore_native, global::Interop.
Crypt32
.CertEncodingType __dwCertEncodingType_native, global::Interop.
Crypt32
.CertFindFlags __dwFindFlags_native, global::Interop.
Crypt32
.CertFindType __dwFindType_native, void* __pvFindPara_native, global::Interop.
Crypt32
.CERT_CONTEXT* __pPrevCertContext_native);
2986
internal static unsafe partial global::Interop.
Crypt32
.CERT_EXTENSION* CertFindExtension(string pszObjId, int cExtensions, nint rgExtensions)
2990
global::Interop.
Crypt32
.CERT_EXTENSION* __retVal = default;
3015
static extern unsafe global::Interop.
Crypt32
.CERT_EXTENSION* __PInvoke(byte* __pszObjId_native, int __cExtensions_native, nint __rgExtensions_native);
3053
internal static unsafe partial bool CertGetCertificateChain(nint hChainEngine, global::Microsoft.Win32.SafeHandles.SafeCertContextHandle pCertContext, global::Interop.
Crypt32
.FILETIME* pTime, global::Microsoft.Win32.SafeHandles.SafeCertStoreHandle hStore, ref global::Interop.
Crypt32
.CERT_CHAIN_PARA pChainPara, global::Interop.
Crypt32
.CertChainFlags dwFlags, nint pvReserved, out global::Microsoft.Win32.SafeHandles.SafeX509ChainHandle ppChainContext)
3073
fixed (global::Interop.
Crypt32
.CERT_CHAIN_PARA* __pChainPara_native = &pChainPara)
3107
static extern unsafe int __PInvoke(nint __hChainEngine_native, nint __pCertContext_native, global::Interop.
Crypt32
.FILETIME* __pTime_native, nint __hStore_native, global::Interop.
Crypt32
.CERT_CHAIN_PARA* __pChainPara_native, global::Interop.
Crypt32
.CertChainFlags __dwFlags_native, nint __pvReserved_native, nint* __ppChainContext_native);
3116
internal static partial bool CertGetCertificateContextProperty(global::Microsoft.Win32.SafeHandles.SafeCertContextHandle pCertContext, global::Interop.
Crypt32
.CertContextPropId dwPropId, byte[] pvData, ref int pcbData)
3152
static extern unsafe int __PInvoke(nint __pCertContext_native, global::Interop.
Crypt32
.CertContextPropId __dwPropId_native, byte* __pvData_native, int* __pcbData_native);
3161
internal static unsafe partial bool CertGetCertificateContextPropertyPtr(global::Microsoft.Win32.SafeHandles.SafeCertContextHandle pCertContext, global::Interop.
Crypt32
.CertContextPropId dwPropId, byte* pvData, ref int pcbData)
3196
static extern unsafe int __PInvoke(nint __pCertContext_native, global::Interop.
Crypt32
.CertContextPropId __dwPropId_native, byte* __pvData_native, int* __pcbData_native);
3205
internal static partial bool CertGetCertificateContextProperty(global::Microsoft.Win32.SafeHandles.SafeCertContextHandle pCertContext, global::Interop.
Crypt32
.CertContextPropId dwPropId, out nint pvData, ref int pcbData)
3242
static extern unsafe int __PInvoke(nint __pCertContext_native, global::Interop.
Crypt32
.CertContextPropId __dwPropId_native, nint* __pvData_native, int* __pcbData_native);
3251
internal static partial bool CertGetCertificateContextProperty(global::Microsoft.Win32.SafeHandles.SafeCertContextHandle pCertContext, global::Interop.
Crypt32
.CertContextPropId dwPropId, out global::Interop.
Crypt32
.DATA_BLOB pvData, ref int pcbData)
3266
fixed (global::Interop.
Crypt32
.DATA_BLOB* __pvData_native = &pvData)
3288
static extern unsafe int __PInvoke(nint __pCertContext_native, global::Interop.
Crypt32
.CertContextPropId __dwPropId_native, global::Interop.
Crypt32
.DATA_BLOB* __pvData_native, int* __pcbData_native);
3297
internal static unsafe partial bool CertGetCertificateContextPropertyString(global::Microsoft.Win32.SafeHandles.SafeCertContextHandle pCertContext, global::Interop.
Crypt32
.CertContextPropId dwPropId, byte* pvData, ref uint pcbData)
3332
static extern unsafe int __PInvoke(nint __pCertContext_native, global::Interop.
Crypt32
.CertContextPropId __dwPropId_native, byte* __pvData_native, uint* __pcbData_native);
3341
internal static unsafe partial bool CertGetIntendedKeyUsage(global::Interop.
Crypt32
.CertEncodingType dwCertEncodingType, global::Interop.
Crypt32
.CERT_INFO* pCertInfo, out global::Interop.
Crypt32
.X509KeyUsageFlags pbKeyUsage, int cbKeyUsage)
3348
fixed (global::Interop.
Crypt32
.X509KeyUsageFlags* __pbKeyUsage_native = &pbKeyUsage)
3361
static extern unsafe int __PInvoke(global::Interop.
Crypt32
.CertEncodingType __dwCertEncodingType_native, global::Interop.
Crypt32
.CERT_INFO* __pCertInfo_native, global::Interop.
Crypt32
.X509KeyUsageFlags* __pbKeyUsage_native, int __cbKeyUsage_native);
3370
internal static unsafe partial int CertGetNameString(global::Microsoft.Win32.SafeHandles.SafeCertContextHandle pCertContext, global::Interop.
Crypt32
.CertNameType dwType, global::Interop.
Crypt32
.CertNameFlags dwFlags, in global::Interop.
Crypt32
.CertNameStringType pvTypePara, char* pszNameString, int cchNameString)
3382
fixed (global::Interop.
Crypt32
.CertNameStringType* __pvTypePara_native = &pvTypePara)
3401
static extern unsafe int __PInvoke(nint __pCertContext_native, global::Interop.
Crypt32
.CertNameType __dwType_native, global::Interop.
Crypt32
.CertNameFlags __dwFlags_native, global::Interop.
Crypt32
.CertNameStringType* __pvTypePara_native, char* __pszNameString_native, int __cchNameString_native);
3494
internal static partial bool CertVerifyCertificateChainPolicy(nint pszPolicyOID, global::Microsoft.Win32.SafeHandles.SafeX509ChainHandle pChainContext, ref global::Interop.
Crypt32
.CERT_CHAIN_POLICY_PARA pPolicyPara, ref global::Interop.
Crypt32
.CERT_CHAIN_POLICY_STATUS pPolicyStatus)
3507
fixed (global::Interop.
Crypt32
.CERT_CHAIN_POLICY_STATUS* __pPolicyStatus_native = &pPolicyStatus)
3508
fixed (global::Interop.
Crypt32
.CERT_CHAIN_POLICY_PARA* __pPolicyPara_native = &pPolicyPara)
3530
static extern unsafe int __PInvoke(nint __pszPolicyOID_native, nint __pChainContext_native, global::Interop.
Crypt32
.CERT_CHAIN_POLICY_PARA* __pPolicyPara_native, global::Interop.
Crypt32
.CERT_CHAIN_POLICY_STATUS* __pPolicyStatus_native);
3562
internal static partial global::Microsoft.Win32.SafeHandles.SafeCertStoreHandle CertOpenStore(nint lpszStoreProvider, global::Interop.
Crypt32
.CertEncodingType dwMsgAndCertEncodingType, nint hCryptProv, global::Interop.
Crypt32
.CertStoreFlags dwFlags, string pvPara)
3599
static extern unsafe nint __PInvoke(nint __lpszStoreProvider_native, global::Interop.
Crypt32
.CertEncodingType __dwMsgAndCertEncodingType_native, nint __hCryptProv_native, global::Interop.
Crypt32
.CertStoreFlags __dwFlags_native, ushort* __pvPara_native);
3608
public static partial bool CertSaveStore(global::Microsoft.Win32.SafeHandles.SafeCertStoreHandle hCertStore, global::Interop.
Crypt32
.CertEncodingType dwMsgAndCertEncodingType, global::Interop.
Crypt32
.CertStoreSaveAs dwSaveAs, global::Interop.
Crypt32
.CertStoreSaveTo dwSaveTo, ref global::Interop.
Crypt32
.DATA_BLOB pvSaveToPara, int dwFlags)
3621
fixed (global::Interop.
Crypt32
.DATA_BLOB* __pvSaveToPara_native = &pvSaveToPara)
3643
static extern unsafe int __PInvoke(nint __hCertStore_native, global::Interop.
Crypt32
.CertEncodingType __dwMsgAndCertEncodingType_native, global::Interop.
Crypt32
.CertStoreSaveAs __dwSaveAs_native, global::Interop.
Crypt32
.CertStoreSaveTo __dwSaveTo_native, global::Interop.
Crypt32
.DATA_BLOB* __pvSaveToPara_native, int __dwFlags_native);
3697
internal static unsafe partial bool CertSetCertificateContextProperty(global::Microsoft.Win32.SafeHandles.SafeCertContextHandle pCertContext, global::Interop.
Crypt32
.CertContextPropId dwPropId, global::Interop.
Crypt32
.CertSetPropertyFlags dwFlags, global::Interop.
Crypt32
.CRYPT_KEY_PROV_INFO* pvData)
3730
static extern unsafe int __PInvoke(nint __pCertContext_native, global::Interop.
Crypt32
.CertContextPropId __dwPropId_native, global::Interop.
Crypt32
.CertSetPropertyFlags __dwFlags_native, global::Interop.
Crypt32
.CRYPT_KEY_PROV_INFO* __pvData_native);
3739
internal static unsafe partial bool CertSetCertificateContextProperty(nint pCertContext, global::Interop.
Crypt32
.CertContextPropId dwPropId, global::Interop.
Crypt32
.CertSetPropertyFlags dwFlags, global::Interop.
Crypt32
.CRYPT_KEY_PROV_INFO* pvData)
3756
static extern unsafe int __PInvoke(nint __pCertContext_native, global::Interop.
Crypt32
.CertContextPropId __dwPropId_native, global::Interop.
Crypt32
.CertSetPropertyFlags __dwFlags_native, global::Interop.
Crypt32
.CRYPT_KEY_PROV_INFO* __pvData_native);
3765
internal static unsafe partial bool CertSetCertificateContextProperty(global::Microsoft.Win32.SafeHandles.SafeCertContextHandle pCertContext, global::Interop.
Crypt32
.CertContextPropId dwPropId, global::Interop.
Crypt32
.CertSetPropertyFlags dwFlags, global::Interop.
Crypt32
.DATA_BLOB* pvData)
3798
static extern unsafe int __PInvoke(nint __pCertContext_native, global::Interop.
Crypt32
.CertContextPropId __dwPropId_native, global::Interop.
Crypt32
.CertSetPropertyFlags __dwFlags_native, global::Interop.
Crypt32
.DATA_BLOB* __pvData_native);
3807
internal static unsafe partial bool CertSetCertificateContextProperty(global::Microsoft.Win32.SafeHandles.SafeCertContextHandle pCertContext, global::Interop.
Crypt32
.CertContextPropId dwPropId, global::Interop.
Crypt32
.CertSetPropertyFlags dwFlags, global::Microsoft.Win32.SafeHandles.SafeNCryptKeyHandle keyHandle)
3845
static extern unsafe int __PInvoke(nint __pCertContext_native, global::Interop.
Crypt32
.CertContextPropId __dwPropId_native, global::Interop.
Crypt32
.CertSetPropertyFlags __dwFlags_native, nint __keyHandle_native);
3854
internal static unsafe partial bool CertSetCertificateContextProperty(nint pCertContext, global::Interop.
Crypt32
.CertContextPropId dwPropId, global::Interop.
Crypt32
.CertSetPropertyFlags dwFlags, global::Microsoft.Win32.SafeHandles.SafeNCryptKeyHandle keyHandle)
3887
static extern unsafe int __PInvoke(nint __pCertContext_native, global::Interop.
Crypt32
.CertContextPropId __dwPropId_native, global::Interop.
Crypt32
.CertSetPropertyFlags __dwFlags_native, nint __keyHandle_native);
3896
internal static partial bool CertStrToName(global::Interop.
Crypt32
.CertEncodingType dwCertEncodingType, string pszX500, global::Interop.
Crypt32
.CertNameStrTypeAndFlags dwStrType, nint pvReserved, byte[] pbEncoded, ref int pcbEncoded, nint ppszError)
3917
static extern unsafe int __PInvoke(global::Interop.
Crypt32
.CertEncodingType __dwCertEncodingType_native, ushort* __pszX500_native, global::Interop.
Crypt32
.CertNameStrTypeAndFlags __dwStrType_native, nint __pvReserved_native, byte* __pbEncoded_native, int* __pcbEncoded_native, nint __ppszError_native);
3926
internal static unsafe partial int CertVerifyTimeValidity(ref global::Interop.
Crypt32
.FILETIME pTimeToVerify, global::Interop.
Crypt32
.CERT_INFO* pCertInfo)
3931
fixed (global::Interop.
Crypt32
.FILETIME* __pTimeToVerify_native = &pTimeToVerify)
3942
static extern unsafe int __PInvoke(global::Interop.
Crypt32
.FILETIME* __pTimeToVerify_native, global::Interop.
Crypt32
.CERT_INFO* __pCertInfo_native);
3951
public static partial bool CryptAcquireCertificatePrivateKey(global::Microsoft.Win32.SafeHandles.SafeCertContextHandle pCert, global::Interop.
Crypt32
.CryptAcquireCertificatePrivateKeyFlags dwFlags, nint pvParameters, out global::Microsoft.Win32.SafeHandles.SafeNCryptKeyHandle phCryptProvOrNCryptKey, out global::Interop.
Crypt32
.CryptKeySpec pdwKeySpec, out bool pfCallerFreeProvOrNCryptKey)
3971
fixed (global::Interop.
Crypt32
.CryptKeySpec* __pdwKeySpec_native = &pdwKeySpec)
4004
static extern unsafe int __PInvoke(nint __pCert_native, global::Interop.
Crypt32
.CryptAcquireCertificatePrivateKeyFlags __dwFlags_native, nint __pvParameters_native, nint* __phCryptProvOrNCryptKey_native, global::Interop.
Crypt32
.CryptKeySpec* __pdwKeySpec_native, int* __pfCallerFreeProvOrNCryptKey_native);
4013
internal static partial bool CryptDecodeObject(global::Interop.
Crypt32
.CertEncodingType dwCertEncodingType, nint lpszStructType, byte[] pbEncoded, int cbEncoded, global::Interop.
Crypt32
.CryptDecodeObjectFlags dwFlags, byte[] pvStructInfo, ref int pcbStructInfo)
4034
static extern unsafe int __PInvoke(global::Interop.
Crypt32
.CertEncodingType __dwCertEncodingType_native, nint __lpszStructType_native, byte* __pbEncoded_native, int __cbEncoded_native, global::Interop.
Crypt32
.CryptDecodeObjectFlags __dwFlags_native, byte* __pvStructInfo_native, int* __pcbStructInfo_native);
4043
internal static unsafe partial bool CryptDecodeObjectPointer(global::Interop.
Crypt32
.CertEncodingType dwCertEncodingType, nint lpszStructType, byte[] pbEncoded, int cbEncoded, global::Interop.
Crypt32
.CryptDecodeObjectFlags dwFlags, void* pvStructInfo, ref int pcbStructInfo)
4063
static extern unsafe int __PInvoke(global::Interop.
Crypt32
.CertEncodingType __dwCertEncodingType_native, nint __lpszStructType_native, byte* __pbEncoded_native, int __cbEncoded_native, global::Interop.
Crypt32
.CryptDecodeObjectFlags __dwFlags_native, void* __pvStructInfo_native, int* __pcbStructInfo_native);
4072
internal static unsafe partial bool CryptDecodeObjectPointer(global::Interop.
Crypt32
.CertEncodingType dwCertEncodingType, nint lpszStructType, byte* pbEncoded, int cbEncoded, global::Interop.
Crypt32
.CryptDecodeObjectFlags dwFlags, void* pvStructInfo, ref int pcbStructInfo)
4091
static extern unsafe int __PInvoke(global::Interop.
Crypt32
.CertEncodingType __dwCertEncodingType_native, nint __lpszStructType_native, byte* __pbEncoded_native, int __cbEncoded_native, global::Interop.
Crypt32
.CryptDecodeObjectFlags __dwFlags_native, void* __pvStructInfo_native, int* __pcbStructInfo_native);
4100
internal static unsafe partial bool CryptDecodeObjectPointer(global::Interop.
Crypt32
.CertEncodingType dwCertEncodingType, string lpszStructType, byte[] pbEncoded, int cbEncoded, global::Interop.
Crypt32
.CryptDecodeObjectFlags dwFlags, void* pvStructInfo, ref int pcbStructInfo)
4136
static extern unsafe int __PInvoke(global::Interop.
Crypt32
.CertEncodingType __dwCertEncodingType_native, byte* __lpszStructType_native, byte* __pbEncoded_native, int __cbEncoded_native, global::Interop.
Crypt32
.CryptDecodeObjectFlags __dwFlags_native, void* __pvStructInfo_native, int* __pcbStructInfo_native);
4145
internal static unsafe partial bool CryptEncodeObject(global::Interop.
Crypt32
.CertEncodingType dwCertEncodingType, nint lpszStructType, void* pvStructInfo, byte[] pbEncoded, ref int pcbEncoded)
4165
static extern unsafe int __PInvoke(global::Interop.
Crypt32
.CertEncodingType __dwCertEncodingType_native, nint __lpszStructType_native, void* __pvStructInfo_native, byte* __pbEncoded_native, int* __pcbEncoded_native);
4174
internal static unsafe partial bool CryptEncodeObject(global::Interop.
Crypt32
.CertEncodingType dwCertEncodingType, string lpszStructType, void* pvStructInfo, byte[] pbEncoded, ref int pcbEncoded)
4210
static extern unsafe int __PInvoke(global::Interop.
Crypt32
.CertEncodingType __dwCertEncodingType_native, byte* __lpszStructType_native, void* __pvStructInfo_native, byte* __pbEncoded_native, int* __pcbEncoded_native);
4248
internal static unsafe partial bool CryptImportPublicKeyInfoEx2(global::Interop.
Crypt32
.CertEncodingType dwCertEncodingType, global::Interop.
Crypt32
.CERT_PUBLIC_KEY_INFO* pInfo, global::Interop.
Crypt32
.CryptImportPublicKeyInfoFlags dwFlags, void* pvAuxInfo, out global::Microsoft.Win32.SafeHandles.SafeBCryptKeyHandle phKey)
4286
static extern unsafe int __PInvoke(global::Interop.
Crypt32
.CertEncodingType __dwCertEncodingType_native, global::Interop.
Crypt32
.CERT_PUBLIC_KEY_INFO* __pInfo_native, global::Interop.
Crypt32
.CryptImportPublicKeyInfoFlags __dwFlags_native, void* __pvAuxInfo_native, nint* __phKey_native);
4321
internal static partial bool CryptMsgGetParam(global::Microsoft.Win32.SafeHandles.SafeCryptMsgHandle hCryptMsg, global::Interop.
Crypt32
.CryptMsgParamType dwParamType, int dwIndex, out int pvData, ref int pcbData)
4358
static extern unsafe int __PInvoke(nint __hCryptMsg_native, global::Interop.
Crypt32
.CryptMsgParamType __dwParamType_native, int __dwIndex_native, int* __pvData_native, int* __pcbData_native);
4367
internal static unsafe partial bool CryptMsgGetParam(global::Microsoft.Win32.SafeHandles.SafeCryptMsgHandle hCryptMsg, global::Interop.
Crypt32
.CryptMsgParamType dwParamType, int dwIndex, byte* pvData, ref int pcbData)
4402
static extern unsafe int __PInvoke(nint __hCryptMsg_native, global::Interop.
Crypt32
.CryptMsgParamType __dwParamType_native, int __dwIndex_native, byte* __pvData_native, int* __pcbData_native);
4411
internal static partial bool CryptMsgGetParam(global::Microsoft.Win32.SafeHandles.SafeCryptMsgHandle hCryptMsg, global::Interop.
Crypt32
.CryptMsgParamType dwParamType, int dwIndex, out global::Interop.
Crypt32
.CryptMsgType pvData, ref int pcbData)
4426
fixed (global::Interop.
Crypt32
.CryptMsgType* __pvData_native = &pvData)
4448
static extern unsafe int __PInvoke(nint __hCryptMsg_native, global::Interop.
Crypt32
.CryptMsgParamType __dwParamType_native, int __dwIndex_native, global::Interop.
Crypt32
.CryptMsgType* __pvData_native, int* __pcbData_native);
4457
internal static partial bool CryptMsgGetParam(global::Microsoft.Win32.SafeHandles.SafeCryptMsgHandle hCryptMsg, global::Interop.
Crypt32
.CryptMsgParamType dwParamType, int dwIndex, nint pvData, ref int pcbData)
4492
static extern unsafe int __PInvoke(nint __hCryptMsg_native, global::Interop.
Crypt32
.CryptMsgParamType __dwParamType_native, int __dwIndex_native, nint __pvData_native, int* __pcbData_native);
4501
internal static unsafe partial bool CryptQueryObject(global::Interop.
Crypt32
.CertQueryObjectType dwObjectType, void* pvObject, global::Interop.
Crypt32
.ExpectedContentTypeFlags dwExpectedContentTypeFlags, global::Interop.
Crypt32
.ExpectedFormatTypeFlags dwExpectedFormatTypeFlags, int dwFlags, out global::Interop.
Crypt32
.CertEncodingType pdwMsgAndCertEncodingType, out global::Interop.
Crypt32
.ContentType pdwContentType, out global::Interop.
Crypt32
.FormatType pdwFormatType, out global::Microsoft.Win32.SafeHandles.SafeCertStoreHandle phCertStore, out global::Microsoft.Win32.SafeHandles.SafeCryptMsgHandle phMsg, out global::Microsoft.Win32.SafeHandles.SafeCertContextHandle ppvContext)
4523
fixed (global::Interop.
Crypt32
.FormatType* __pdwFormatType_native = &pdwFormatType)
4524
fixed (global::Interop.
Crypt32
.ContentType* __pdwContentType_native = &pdwContentType)
4525
fixed (global::Interop.
Crypt32
.CertEncodingType* __pdwMsgAndCertEncodingType_native = &pdwMsgAndCertEncodingType)
4558
static extern unsafe int __PInvoke(global::Interop.
Crypt32
.CertQueryObjectType __dwObjectType_native, void* __pvObject_native, global::Interop.
Crypt32
.ExpectedContentTypeFlags __dwExpectedContentTypeFlags_native, global::Interop.
Crypt32
.ExpectedFormatTypeFlags __dwExpectedFormatTypeFlags_native, int __dwFlags_native, global::Interop.
Crypt32
.CertEncodingType* __pdwMsgAndCertEncodingType_native, global::Interop.
Crypt32
.ContentType* __pdwContentType_native, global::Interop.
Crypt32
.FormatType* __pdwFormatType_native, nint* __phCertStore_native, nint* __phMsg_native, nint* __ppvContext_native);
4567
internal static unsafe partial bool CryptQueryObject(global::Interop.
Crypt32
.CertQueryObjectType dwObjectType, void* pvObject, global::Interop.
Crypt32
.ExpectedContentTypeFlags dwExpectedContentTypeFlags, global::Interop.
Crypt32
.ExpectedFormatTypeFlags dwExpectedFormatTypeFlags, int dwFlags, nint pdwMsgAndCertEncodingType, out global::Interop.
Crypt32
.ContentType pdwContentType, nint pdwFormatType, nint phCertStore, nint phMsg, nint ppvContext)
4574
fixed (global::Interop.
Crypt32
.ContentType* __pdwContentType_native = &pdwContentType)
4587
static extern unsafe int __PInvoke(global::Interop.
Crypt32
.CertQueryObjectType __dwObjectType_native, void* __pvObject_native, global::Interop.
Crypt32
.ExpectedContentTypeFlags __dwExpectedContentTypeFlags_native, global::Interop.
Crypt32
.ExpectedFormatTypeFlags __dwExpectedFormatTypeFlags_native, int __dwFlags_native, nint __pdwMsgAndCertEncodingType_native, global::Interop.
Crypt32
.ContentType* __pdwContentType_native, nint __pdwFormatType_native, nint __phCertStore_native, nint __phMsg_native, nint __ppvContext_native);
4596
internal static unsafe partial bool CryptQueryObject(global::Interop.
Crypt32
.CertQueryObjectType dwObjectType, void* pvObject, global::Interop.
Crypt32
.ExpectedContentTypeFlags dwExpectedContentTypeFlags, global::Interop.
Crypt32
.ExpectedFormatTypeFlags dwExpectedFormatTypeFlags, int dwFlags, nint pdwMsgAndCertEncodingType, out global::Interop.
Crypt32
.ContentType pdwContentType, nint pdwFormatType, out global::Microsoft.Win32.SafeHandles.SafeCertStoreHandle phCertStore, nint phMsg, nint ppvContext)
4610
fixed (global::Interop.
Crypt32
.ContentType* __pdwContentType_native = &pdwContentType)
4637
static extern unsafe int __PInvoke(global::Interop.
Crypt32
.CertQueryObjectType __dwObjectType_native, void* __pvObject_native, global::Interop.
Crypt32
.ExpectedContentTypeFlags __dwExpectedContentTypeFlags_native, global::Interop.
Crypt32
.ExpectedFormatTypeFlags __dwExpectedFormatTypeFlags_native, int __dwFlags_native, nint __pdwMsgAndCertEncodingType_native, global::Interop.
Crypt32
.ContentType* __pdwContentType_native, nint __pdwFormatType_native, nint* __phCertStore_native, nint __phMsg_native, nint __ppvContext_native);
4646
internal static unsafe partial bool CryptQueryObject(global::Interop.
Crypt32
.CertQueryObjectType dwObjectType, void* pvObject, global::Interop.
Crypt32
.ExpectedContentTypeFlags dwExpectedContentTypeFlags, global::Interop.
Crypt32
.ExpectedFormatTypeFlags dwExpectedFormatTypeFlags, int dwFlags, nint pdwMsgAndCertEncodingType, out global::Interop.
Crypt32
.ContentType pdwContentType, nint pdwFormatType, nint phCertStore, nint phMsg, out global::Microsoft.Win32.SafeHandles.SafeCertContextHandle ppvContext)
4660
fixed (global::Interop.
Crypt32
.ContentType* __pdwContentType_native = &pdwContentType)
4687
static extern unsafe int __PInvoke(global::Interop.
Crypt32
.CertQueryObjectType __dwObjectType_native, void* __pvObject_native, global::Interop.
Crypt32
.ExpectedContentTypeFlags __dwExpectedContentTypeFlags_native, global::Interop.
Crypt32
.ExpectedFormatTypeFlags __dwExpectedFormatTypeFlags_native, int __dwFlags_native, nint __pdwMsgAndCertEncodingType_native, global::Interop.
Crypt32
.ContentType* __pdwContentType_native, nint __pdwFormatType_native, nint __phCertStore_native, nint __phMsg_native, nint* __ppvContext_native);
4696
private static unsafe extern partial global::Interop.
Crypt32
.CRYPT_OID_INFO* CryptFindOIDInfo(global::Interop.
Crypt32
.CryptOidInfoKeyType dwKeyType, nint pvKey, global::System.Security.Cryptography.OidGroup group);
4704
private static unsafe extern partial global::Interop.
Crypt32
.CRYPT_OID_INFO* CryptFindOIDInfo(global::Interop.
Crypt32
.CryptOidInfoKeyType dwKeyType, void* pvKey, global::System.Security.Cryptography.OidGroup group);
4712
internal static unsafe partial bool PFXExportCertStoreEx(global::Microsoft.Win32.SafeHandles.SafeCertStoreHandle hStore, ref global::Interop.
Crypt32
.DATA_BLOB pPFX, global::Microsoft.Win32.SafeHandles.SafePasswordHandle szPassword, global::Interop.
Crypt32
.PKCS12_PBES2_EXPORT_PARAMS* pvPara, global::Interop.
Crypt32
.PFXExportFlags dwFlags)
4728
fixed (global::Interop.
Crypt32
.DATA_BLOB* __pPFX_native = &pPFX)
4752
static extern unsafe int __PInvoke(nint __hStore_native, global::Interop.
Crypt32
.DATA_BLOB* __pPFX_native, nint __szPassword_native, global::Interop.
Crypt32
.PKCS12_PBES2_EXPORT_PARAMS* __pvPara_native, global::Interop.
Crypt32
.PFXExportFlags __dwFlags_native);
4761
internal static partial global::Microsoft.Win32.SafeHandles.SafeCertStoreHandle PFXImportCertStore(ref global::Interop.
Crypt32
.DATA_BLOB pPFX, global::Microsoft.Win32.SafeHandles.SafePasswordHandle password, global::Interop.
Crypt32
.PfxCertStoreFlags dwFlags)
4776
fixed (global::Interop.
Crypt32
.DATA_BLOB* __pPFX_native = &pPFX)
4807
static extern unsafe nint __PInvoke(global::Interop.
Crypt32
.DATA_BLOB* __pPFX_native, nint __password_native, global::Interop.
Crypt32
.PfxCertStoreFlags __dwFlags_native);
4816
internal static unsafe partial global::Microsoft.Win32.SafeHandles.SafeCertStoreHandle PFXImportCertStore(ref global::Interop.
Crypt32
.DATA_BLOB pPFX, char* password, global::Interop.
Crypt32
.PfxCertStoreFlags dwFlags)
4827
fixed (global::Interop.
Crypt32
.DATA_BLOB* __pPFX_native = &pPFX)
4853
static extern unsafe nint __PInvoke(global::Interop.
Crypt32
.DATA_BLOB* __pPFX_native, char* __password_native, global::Interop.
Crypt32
.PfxCertStoreFlags __dwFlags_native);
src\runtime\src\libraries\Common\src\Interop\Windows\Advapi32\Interop.CryptAcquireContext_IntPtr.cs (1)
18
Interop.
Crypt32
.CryptAcquireContextFlags dwFlags);
src\runtime\src\libraries\Common\src\Microsoft\Win32\SafeHandles\SafeCertContextHandle.cs (1)
8
using static Interop.
Crypt32
;
src\runtime\src\libraries\Common\src\Microsoft\Win32\SafeHandles\SafeCertContextHandleWithKeyContainerDeletion.cs (11)
18
using (SafeCertContextHandle certContext = Interop.
Crypt32
.CertDuplicateCertificateContext(handle))
32
bool containsPrivateKey = Interop.
Crypt32
.CertGetCertificateContextProperty(pCertContext, Interop.
Crypt32
.CertContextPropId.CERT_KEY_PROV_INFO_PROP_ID, null, ref cb);
37
if (!Interop.
Crypt32
.CertGetCertificateContextProperty(pCertContext, Interop.
Crypt32
.CertContextPropId.CERT_KEY_PROV_INFO_PROP_ID, provInfoAsBytes, ref cb))
44
Interop.
Crypt32
.CRYPT_KEY_PROV_INFO* pProvInfo = (Interop.
Crypt32
.CRYPT_KEY_PROV_INFO*)pProvInfoAsBytes;
55
if ((pProvInfo->dwFlags & Interop.
Crypt32
.CryptAcquireContextFlags.CRYPT_MACHINE_KEYSET) != 0)
75
Interop.
Crypt32
.CryptAcquireContextFlags flags = (pProvInfo->dwFlags & Interop.
Crypt32
.CryptAcquireContextFlags.CRYPT_MACHINE_KEYSET) | Interop.
Crypt32
.CryptAcquireContextFlags.CRYPT_DELETEKEYSET;
src\runtime\src\libraries\Common\src\Microsoft\Win32\SafeHandles\SafeCertStoreHandle.cs (1)
13
bool success = Interop.
Crypt32
.CertCloseStore(handle, 0);
src\runtime\src\libraries\Common\src\Microsoft\Win32\SafeHandles\SafeChainEngineHandle.cs (3)
22
new SafeChainEngineHandle((IntPtr)Interop.
Crypt32
.ChainEngine.HCCE_LOCAL_MACHINE);
25
new SafeChainEngineHandle((IntPtr)Interop.
Crypt32
.ChainEngine.HCCE_CURRENT_USER);
29
Interop.
Crypt32
.CertFreeCertificateChainEngine(handle);
src\runtime\src\libraries\Common\src\Microsoft\Win32\SafeHandles\SafeCryptMsgHandle.cs (1)
13
bool success = Interop.
Crypt32
.CryptMsgClose(handle);
src\runtime\src\libraries\Common\src\System\Security\Cryptography\ECCng.HashAlgorithm.cs (3)
6
using static Interop.
Crypt32
;
22
CRYPT_OID_INFO oid = Interop.
Crypt32
.FindOidInfo(
41
CRYPT_OID_INFO oid = Interop.
Crypt32
.FindAlgIdOidInfo(hashId);
src\runtime\src\libraries\Common\src\System\Security\Cryptography\X509Certificates\CertificateHelpers.Windows.cs (21)
141
if (Interop.
Crypt32
.CertGetCertificateContextProperty(
143
Interop.
Crypt32
.CertContextPropId.CERT_NCRYPT_KEY_HANDLE_PROP_ID,
157
if (!Interop.
Crypt32
.CryptAcquireCertificatePrivateKey(
159
Interop.
Crypt32
.CryptAcquireCertificatePrivateKeyFlags.CRYPT_ACQUIRE_ONLY_NCRYPT_KEY_FLAG,
162
out Interop.
Crypt32
.CryptKeySpec _,
218
if (!Interop.
Crypt32
.CertGetCertificateContextProperty(hCertContext, Interop.
Crypt32
.CertContextPropId.CERT_KEY_PROV_INFO_PROP_ID, null, ref cbData))
235
if (!Interop.
Crypt32
.CertGetCertificateContextProperty(hCertContext, Interop.
Crypt32
.CertContextPropId.CERT_KEY_PROV_INFO_PROP_ID, privateKey, ref cbData))
237
Interop.
Crypt32
.CRYPT_KEY_PROV_INFO* pKeyProvInfo = (Interop.
Crypt32
.CRYPT_KEY_PROV_INFO*)pPrivateKey;
245
Flags = (pKeyProvInfo->dwFlags & Interop.
Crypt32
.CryptAcquireContextFlags.CRYPT_MACHINE_KEYSET) == Interop.
Crypt32
.CryptAcquireContextFlags.CRYPT_MACHINE_KEYSET ? CspProviderFlags.UseMachineKeyStore : 0,
272
Interop.
Crypt32
.CRYPT_KEY_PROV_INFO keyProvInfo = default;
279
keyProvInfo.dwFlags = machineKey ? Interop.
Crypt32
.CryptAcquireContextFlags.CRYPT_MACHINE_KEYSET : 0;
282
if (!Interop.
Crypt32
.CertSetCertificateContextProperty(
284
Interop.
Crypt32
.CertContextPropId.CERT_KEY_PROV_INFO_PROP_ID,
285
Interop.
Crypt32
.CertSetPropertyFlags.None,
313
if (!Interop.
Crypt32
.CertSetCertificateContextProperty(
315
Interop.
Crypt32
.CertContextPropId.CERT_NCRYPT_KEY_HANDLE_PROP_ID,
316
Interop.
Crypt32
.CertSetPropertyFlags.CERT_SET_PROPERTY_INHIBIT_PERSIST_FLAG,
System\Security\Cryptography\CapiHelper.Windows.cs (2)
11
using static Interop.
Crypt32
;
1149
return global::Interop.
Crypt32
.FindOidInfo(CryptOidInfoKeyType.CRYPT_OID_INFO_OID_KEY, oid, oidGroup, fallBackToAllGroups: false).AlgId;
System\Security\Cryptography\CngAsnFormatter.cs (4)
21
int dwFormatStrType = multiLine ? Interop.
Crypt32
.CRYPT_FORMAT_STR_MULTI_LINE : Interop.
Crypt32
.CRYPT_FORMAT_STR_NONE;
30
if (Interop.
Crypt32
.CryptFormatObject(X509_ASN_ENCODING, 0, dwFormatStrType, IntPtr.Zero, (byte*)oidValuePtr, rawData, rawData.Length, null, ref cbFormat))
38
if (Interop.
Crypt32
.CryptFormatObject(X509_ASN_ENCODING, 0, dwFormatStrType, IntPtr.Zero, (byte*)oidValuePtr, rawData, rawData.Length, bufferPtr, ref cbFormat))
System\Security\Cryptography\OidLookup.Windows.cs (3)
4
using static Interop.
Crypt32
;
17
CRYPT_OID_INFO oidInfo = Interop.
Crypt32
.FindOidInfo(CryptOidInfoKeyType.CRYPT_OID_INFO_OID_KEY, oid, oidGroup, fallBackToAllGroups);
23
CRYPT_OID_INFO oidInfo = Interop.
Crypt32
.FindOidInfo(CryptOidInfoKeyType.CRYPT_OID_INFO_NAME_KEY, friendlyName, oidGroup, fallBackToAllGroups);
System\Security\Cryptography\X509Certificates\CertificateHelpers.Windows.cs (1)
180
return Interop.
Crypt32
.CertDuplicateCertificateContext(handle.DangerousGetHandle());
System\Security\Cryptography\X509Certificates\CertificatePal.Windows.cs (61)
24
SafeCertContextHandle safeCertContextHandle = Interop.
Crypt32
.CertDuplicateCertificateContext(handle);
33
bool deleteKeyContainer = Interop.
Crypt32
.CertGetCertificateContextProperty(safeCertContextHandle, Interop.
Crypt32
.CertContextPropId.CERT_CLR_DELETE_KEY_PROP_ID, out Interop.
Crypt32
.DATA_BLOB _, ref cbData);
68
if (!Interop.
Crypt32
.CertGetCertificateContextProperty(_certContext, Interop.
Crypt32
.CertContextPropId.CERT_SHA1_HASH_PROP_ID, null, ref cbData))
72
if (!Interop.
Crypt32
.CertGetCertificateContextProperty(_certContext, Interop.
Crypt32
.CertContextPropId.CERT_SHA1_HASH_PROP_ID, thumbprint, ref cbData))
106
algId = Interop.
Crypt32
.FindOidInfo(Interop.
Crypt32
.CryptOidInfoKeyType.CRYPT_OID_INFO_OID_KEY, keyAlgorithmOid, OidGroup.PublicKeyAlgorithm, fallBackToAllGroups: true).AlgId;
126
Interop.
Crypt32
.DATA_BLOB parametersBlob = pCertContext->pCertInfo->SubjectPublicKeyInfo.Algorithm.Parameters;
153
if (!Interop.
Crypt32
.CertGetCertificateContextProperty(_certContext, Interop.
Crypt32
.CertContextPropId.CERT_PUBKEY_ALG_PARA_PROP_ID, null, ref cbData))
155
Interop.
Crypt32
.CERT_CHAIN_PARA chainPara = default;
156
chainPara.cbSize = sizeof(Interop.
Crypt32
.CERT_CHAIN_PARA);
157
if (!Interop.
Crypt32
.CertGetCertificateChain((IntPtr)Interop.
Crypt32
.ChainEngine.HCCE_CURRENT_USER, _certContext, null, SafeCertStoreHandle.InvalidHandle, ref chainPara, Interop.
Crypt32
.CertChainFlags.None, IntPtr.Zero, out certChainContext))
159
if (!Interop.
Crypt32
.CertGetCertificateContextProperty(_certContext, Interop.
Crypt32
.CertContextPropId.CERT_PUBKEY_ALG_PARA_PROP_ID, null, ref cbData))
164
if (!Interop.
Crypt32
.CertGetCertificateContextProperty(_certContext, Interop.
Crypt32
.CertContextPropId.CERT_PUBKEY_ALG_PARA_PROP_ID, keyAlgorithmParameters, ref cbData))
272
bool archivePropertyExists = Interop.
Crypt32
.CertGetCertificateContextProperty(_certContext, Interop.
Crypt32
.CertContextPropId.CERT_ARCHIVED_PROP_ID, null!, ref uninteresting);
280
Interop.
Crypt32
.DATA_BLOB blob = new Interop.
Crypt32
.DATA_BLOB(IntPtr.Zero, 0);
281
Interop.
Crypt32
.DATA_BLOB* pValue = value ? &blob : (Interop.
Crypt32
.DATA_BLOB*)null;
282
if (!Interop.
Crypt32
.CertSetCertificateContextProperty(_certContext, Interop.
Crypt32
.CertContextPropId.CERT_ARCHIVED_PROP_ID, Interop.
Crypt32
.CertSetPropertyFlags.None, pValue))
295
if (!Interop.
Crypt32
.CertGetCertificateContextPropertyString(_certContext, Interop.
Crypt32
.CertContextPropId.CERT_FRIENDLY_NAME_PROP_ID, null, ref cbData))
304
if (!Interop.
Crypt32
.CertGetCertificateContextPropertyString(_certContext, Interop.
Crypt32
.CertContextPropId.CERT_FRIENDLY_NAME_PROP_ID, (byte*)ptr, ref cbData))
320
Interop.
Crypt32
.DATA_BLOB blob = new Interop.
Crypt32
.DATA_BLOB(pFriendlyName, checked(2 * ((uint)friendlyName.Length + 1)));
321
if (!Interop.
Crypt32
.CertSetCertificateContextProperty(_certContext, Interop.
Crypt32
.CertContextPropId.CERT_FRIENDLY_NAME_PROP_ID, Interop.
Crypt32
.CertSetPropertyFlags.None, &blob))
377
Interop.
Crypt32
.CERT_INFO* pCertInfo = certContext->pCertInfo;
383
Interop.
Crypt32
.CERT_EXTENSION* pCertExtension = (Interop.
Crypt32
.CERT_EXTENSION*)pCertInfo->rgExtension.ToPointer() + i;
403
forIssuer ? Interop.
Crypt32
.CertNameFlags.CERT_NAME_ISSUER_FLAG : Interop.
Crypt32
.CertNameFlags.None,
404
Interop.
Crypt32
.CertNameStringType.CERT_X500_NAME_STR | Interop.
Crypt32
.CertNameStringType.CERT_NAME_STR_REVERSE_FLAG);
490
return Interop.
Crypt32
.CertDuplicateCertificateContext((IntPtr)certContext);
495
private static Interop.
Crypt32
.CertNameType MapNameType(X509NameType nameType)
500
return Interop.
Crypt32
.CertNameType.CERT_NAME_SIMPLE_DISPLAY_TYPE;
503
return Interop.
Crypt32
.CertNameType.CERT_NAME_EMAIL_TYPE;
506
return Interop.
Crypt32
.CertNameType.CERT_NAME_UPN_TYPE;
510
return Interop.
Crypt32
.CertNameType.CERT_NAME_DNS_TYPE;
513
return Interop.
Crypt32
.CertNameType.CERT_NAME_URL_TYPE;
523
Interop.
Crypt32
.CertNameType.CERT_NAME_RDN_TYPE,
524
issuer ? Interop.
Crypt32
.CertNameFlags.CERT_NAME_ISSUER_FLAG : Interop.
Crypt32
.CertNameFlags.None,
525
Interop.
Crypt32
.CertNameStringType.CERT_X500_NAME_STR | (reverse ? Interop.
Crypt32
.CertNameStringType.CERT_NAME_STR_REVERSE_FLAG : 0));
542
certContext = Interop.
Crypt32
.CertDuplicateCertificateContextWithKeyContainerDeletion(oldCertContext.DangerousGetHandle());
592
private unsafe delegate T CertContextCallback<T>(Interop.
Crypt32
.CERT_CONTEXT* certContext);
System\Security\Cryptography\X509Certificates\CertificatePal.Windows.Import.cs (27)
31
Interop.
Crypt32
.ContentType contentType;
44
Interop.
Crypt32
.DATA_BLOB certBlob = new Interop.
Crypt32
.DATA_BLOB(new IntPtr(pRawData), (uint)(loadFromFile ? 0 : rawData.Length));
46
Interop.
Crypt32
.CertQueryObjectType objectType = loadFromFile ? Interop.
Crypt32
.CertQueryObjectType.CERT_QUERY_OBJECT_FILE : Interop.
Crypt32
.CertQueryObjectType.CERT_QUERY_OBJECT_BLOB;
49
bool success = Interop.
Crypt32
.CryptQueryObject(
70
if (contentType == Interop.
Crypt32
.ContentType.CERT_QUERY_CONTENT_PKCS7_SIGNED || contentType == Interop.
Crypt32
.ContentType.CERT_QUERY_CONTENT_PKCS7_SIGNED_EMBED)
75
else if (contentType == Interop.
Crypt32
.ContentType.CERT_QUERY_CONTENT_PFX)
126
if (!Interop.
Crypt32
.CryptMsgGetParam(hCryptMsg, Interop.
Crypt32
.CryptMsgParamType.CMSG_SIGNER_COUNT_PARAM, 0, out dwSigners, ref cbSigners))
133
if (!Interop.
Crypt32
.CryptMsgGetParam(hCryptMsg, Interop.
Crypt32
.CryptMsgParamType.CMSG_SIGNER_INFO_PARAM, 0, default(byte*), ref cbData))
138
if (!Interop.
Crypt32
.CryptMsgGetParam(hCryptMsg, Interop.
Crypt32
.CryptMsgParamType.CMSG_SIGNER_INFO_PARAM, 0, pCmsgSignerBytes, ref cbData))
143
Interop.
Crypt32
.CERT_INFO certInfo = default(Interop.
Crypt32
.CERT_INFO);
150
if (!Interop.crypt32.CertFindCertificateInStore(hCertStore, Interop.
Crypt32
.CertFindType.CERT_FIND_SUBJECT_CERT, &certInfo, ref pCertContext))
161
private const Interop.
Crypt32
.ExpectedContentTypeFlags X509ExpectedContentTypeFlags =
162
Interop.
Crypt32
.ExpectedContentTypeFlags.CERT_QUERY_CONTENT_FLAG_CERT |
163
Interop.
Crypt32
.ExpectedContentTypeFlags.CERT_QUERY_CONTENT_FLAG_SERIALIZED_CERT |
164
Interop.
Crypt32
.ExpectedContentTypeFlags.CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED |
165
Interop.
Crypt32
.ExpectedContentTypeFlags.CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED_EMBED |
166
Interop.
Crypt32
.ExpectedContentTypeFlags.CERT_QUERY_CONTENT_FLAG_PFX;
168
private const Interop.
Crypt32
.ExpectedFormatTypeFlags X509ExpectedFormatTypeFlags = Interop.
Crypt32
.ExpectedFormatTypeFlags.CERT_QUERY_FORMAT_FLAG_ALL;
System\Security\Cryptography\X509Certificates\CertificatePal.Windows.PrivateKey.cs (5)
259
Interop.
Crypt32
.CRYPT_KEY_PROV_INFO keyProvInfo = default;
266
keyProvInfo.dwFlags = keyContainerInfo.MachineKeyStore ? Interop.
Crypt32
.CryptAcquireContextFlags.CRYPT_MACHINE_KEYSET : 0;
270
if (!Interop.
Crypt32
.CertSetCertificateContextProperty(
272
Interop.
Crypt32
.CertContextPropId.CERT_KEY_PROV_INFO_PROP_ID,
273
Interop.
Crypt32
.CertSetPropertyFlags.None,
System\Security\Cryptography\X509Certificates\ChainPal.Windows.BuildChain.cs (20)
38
Interop.
Crypt32
.CERT_CHAIN_PARA chainPara = default;
39
chainPara.cbSize = sizeof(Interop.
Crypt32
.CERT_CHAIN_PARA);
46
chainPara.RequestedUsage.dwType = Interop.
Crypt32
.CertUsageMatchType.USAGE_MATCH_TYPE_AND;
56
chainPara.RequestedIssuancePolicy.dwType = Interop.
Crypt32
.CertUsageMatchType.USAGE_MATCH_TYPE_AND;
63
Interop.
Crypt32
.FILETIME ft = Interop.
Crypt32
.FILETIME.FromDateTime(verificationTime);
64
Interop.
Crypt32
.CertChainFlags flags = MapRevocationFlags(revocationMode, revocationFlag, disableAia);
68
if (!Interop.
Crypt32
.CertGetCertificateChain(storeHandle.DangerousGetHandle(), certContext, &ft, extraStoreHandle, ref chainPara, flags, IntPtr.Zero, out chain))
95
Interop.
Crypt32
.CERT_CHAIN_ENGINE_CONFIG customChainEngine = default;
96
customChainEngine.cbSize = sizeof(Interop.
Crypt32
.CERT_CHAIN_ENGINE_CONFIG);
118
private static Interop.
Crypt32
.CertChainFlags MapRevocationFlags(
123
const Interop.
Crypt32
.CertChainFlags AiaDisabledFlags =
124
Interop.
Crypt32
.CertChainFlags.CERT_CHAIN_DISABLE_AIA | Interop.
Crypt32
.CertChainFlags.CERT_CHAIN_DISABLE_AUTH_ROOT_AUTO_UPDATE;
126
Interop.
Crypt32
.CertChainFlags dwFlags = disableAia ? AiaDisabledFlags : Interop.
Crypt32
.CertChainFlags.None;
132
dwFlags |= Interop.
Crypt32
.CertChainFlags.CERT_CHAIN_REVOCATION_CHECK_CACHE_ONLY;
135
dwFlags |= Interop.
Crypt32
.CertChainFlags.CERT_CHAIN_REVOCATION_CHECK_END_CERT;
137
dwFlags |= Interop.
Crypt32
.CertChainFlags.CERT_CHAIN_REVOCATION_CHECK_CHAIN;
139
dwFlags |= Interop.
Crypt32
.CertChainFlags.CERT_CHAIN_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT;
System\Security\Cryptography\X509Certificates\ChainPal.Windows.cs (6)
26
SafeX509ChainHandle certChainHandle = Interop.
Crypt32
.CertDuplicateCertificateChain(chainContext);
46
Interop.
Crypt32
.CERT_CHAIN_POLICY_PARA para = default;
47
para.cbSize = (uint)sizeof(Interop.
Crypt32
.CERT_CHAIN_POLICY_PARA);
50
Interop.
Crypt32
.CERT_CHAIN_POLICY_STATUS status = default;
51
status.cbSize = (uint)sizeof(Interop.
Crypt32
.CERT_CHAIN_POLICY_STATUS);
115
Interop.
Crypt32
.CertFreeCertificateChain(handle);
System\Security\Cryptography\X509Certificates\FindPal.Windows.cs (47)
32
string? oidValue = Interop.
Crypt32
.FindOidInfo(Interop.
Crypt32
.CryptOidInfoKeyType.CRYPT_OID_INFO_NAME_KEY, maybeOid, expectedGroup, fallBackToAllGroups: true).OID;
47
Interop.
Crypt32
.DATA_BLOB blob = new Interop.
Crypt32
.DATA_BLOB(new IntPtr(pThumbPrint), (uint)thumbPrint.Length);
48
FindCore<object>(Interop.
Crypt32
.CertFindType.CERT_FIND_HASH, &blob);
56
FindCore<object>(Interop.
Crypt32
.CertFindType.CERT_FIND_SUBJECT_STR, pSubjectName);
66
string actual = GetCertNameInfo(pCertContext, Interop.
Crypt32
.CertNameType.CERT_NAME_RDN_TYPE, Interop.
Crypt32
.CertNameFlags.None);
75
FindCore<object>(Interop.
Crypt32
.CertFindType.CERT_FIND_ISSUER_STR, pIssuerName);
85
string actual = GetCertNameInfo(pCertContext, Interop.
Crypt32
.CertNameType.CERT_NAME_RDN_TYPE, Interop.
Crypt32
.CertNameFlags.CERT_NAME_ISSUER_FLAG);
116
Interop.
Crypt32
.FILETIME fileTime = Interop.
Crypt32
.FILETIME.FromDateTime(dateTime);
122
int comparison = Interop.
Crypt32
.CertVerifyTimeValidity(
146
string expectedOidValue = Interop.
Crypt32
.FindOidInfo(
147
Interop.
Crypt32
.CryptOidInfoKeyType.CRYPT_OID_INFO_NAME_KEY,
166
Interop.
Crypt32
.CERT_INFO* pCertInfo = pCertContext.DangerousCertContext->pCertInfo;
167
Interop.
Crypt32
.CERT_EXTENSION* pV1Template = Interop.
Crypt32
.CertFindExtension(
188
Interop.
Crypt32
.CERT_EXTENSION* pV2Template = Interop.
Crypt32
.CertFindExtension(
221
if (!Interop.
Crypt32
.CertGetValidUsages(1, ref pCertContext, out numOids, null, ref cbData))
234
if (!Interop.
Crypt32
.CertGetValidUsages(1, ref pCertContext, out numOids, pOidsPointer, ref cbData))
280
Interop.
Crypt32
.CERT_INFO* pCertInfo = pCertContext.DangerousCertContext->pCertInfo;
281
Interop.
Crypt32
.CERT_EXTENSION* pCertExtension = Interop.
Crypt32
.CertFindExtension(
310
Interop.
Crypt32
.CERT_INFO* pCertInfo = pCertContext.DangerousCertContext->pCertInfo;
311
Interop.
Crypt32
.CERT_EXTENSION* pCertExtension = Interop.
Crypt32
.CertFindExtension(oidValue, pCertInfo->cExtension, pCertInfo->rgExtension);
323
Interop.
Crypt32
.CERT_INFO* pCertInfo = pCertContext.DangerousCertContext->pCertInfo;
326
if (!Interop.crypt32.CertGetIntendedKeyUsage(Interop.
Crypt32
.CertEncodingType.All, pCertInfo, out actual, sizeof(X509KeyUsageFlags)))
346
if (!Interop.
Crypt32
.CertGetCertificateContextPropertyPtr(
348
Interop.
Crypt32
.CertContextPropId.CERT_KEY_IDENTIFIER_PROP_ID,
366
if (!Interop.
Crypt32
.CertGetCertificateContextPropertyPtr(
368
Interop.
Crypt32
.CertContextPropId.CERT_KEY_IDENTIFIER_PROP_ID,
388
FindCore(Interop.
Crypt32
.CertFindType.CERT_FIND_ANY, null, state, filter);
391
private unsafe void FindCore<TState>(Interop.
Crypt32
.CertFindType dwFindType, void* pvFindPara, TState state = default!, Func<TState, SafeCertContextHandle, bool>? filter = null)
395
Interop.
Crypt32
.CertEncodingType.All,
397
Interop.
Crypt32
.CertStoreFlags.CERT_STORE_ENUM_ARCHIVED_FLAG | Interop.
Crypt32
.CertStoreFlags.CERT_STORE_CREATE_NEW_FLAG,
424
if (!Interop.
Crypt32
.CertAddCertificateLinkToStore(findResults, pCertContext, Interop.
Crypt32
.CertStoreAddDisposition.CERT_STORE_ADD_ALWAYS, IntPtr.Zero))
473
private static string GetCertNameInfo(SafeCertContextHandle pCertContext, Interop.
Crypt32
.CertNameType dwNameType, Interop.
Crypt32
.CertNameFlags dwNameFlags)
475
Debug.Assert(dwNameType != Interop.
Crypt32
.CertNameType.CERT_NAME_ATTR_TYPE);
480
Interop.
Crypt32
.CertNameStringType.CERT_X500_NAME_STR | Interop.
Crypt32
.CertNameStringType.CERT_NAME_STR_REVERSE_FLAG);
System\Security\Cryptography\X509Certificates\StorePal.Windows.cs (7)
22
SafeCertStoreHandle certStoreHandle = Interop.
Crypt32
.CertDuplicateStore(storeHandle);
54
if (!Interop.
Crypt32
.CertAddCertificateContextToStore(_certStore, certContext, Interop.
Crypt32
.CertStoreAddDisposition.CERT_STORE_ADD_REPLACE_EXISTING_INHERIT_PROPERTIES, IntPtr.Zero))
66
Interop.
Crypt32
.CERT_CONTEXT* pCertContext = existingCertContext.DangerousCertContext;
67
if (!Interop.crypt32.CertFindCertificateInStore(_certStore, Interop.
Crypt32
.CertFindType.CERT_FIND_EXISTING, pCertContext, ref enumCertContext))
70
Interop.
Crypt32
.CERT_CONTEXT* pCertContextToDelete = enumCertContext.Disconnect(); // CertDeleteCertificateFromContext always frees the context (even on error)
73
if (!Interop.
Crypt32
.CertDeleteCertificateFromStore(pCertContextToDelete))
System\Security\Cryptography\X509Certificates\StorePal.Windows.Export.cs (24)
62
if (!Interop.
Crypt32
.CertSerializeCertificateStoreElement(pCertContext, 0, null, ref cbEncoded))
66
if (!Interop.
Crypt32
.CertSerializeCertificateStoreElement(pCertContext, 0, pbEncoded, ref cbEncoded))
81
return SaveToMemoryStore(Interop.
Crypt32
.CertStoreSaveAs.CERT_STORE_SAVE_AS_STORE);
84
return SaveToMemoryStore(Interop.
Crypt32
.CertStoreSaveAs.CERT_STORE_SAVE_AS_PKCS7);
104
Interop.
Crypt32
.DATA_BLOB dataBlob = new Interop.
Crypt32
.DATA_BLOB(IntPtr.Zero, 0);
105
Interop.
Crypt32
.PFXExportFlags flags =
106
Interop.
Crypt32
.PFXExportFlags.EXPORT_PRIVATE_KEYS |
107
Interop.
Crypt32
.PFXExportFlags.REPORT_NOT_ABLE_TO_EXPORT_PRIVATE_KEY;
109
Interop.
Crypt32
.PKCS12_PBES2_EXPORT_PARAMS* exportParams = null;
113
Interop.
Crypt32
.PKCS12_PBES2_EXPORT_PARAMS specifiedParams = new()
115
dwSize = (uint)sizeof(Interop.
Crypt32
.PKCS12_PBES2_EXPORT_PARAMS),
124
flags |= Interop.
Crypt32
.PFXExportFlags.PKCS12_EXPORT_PBES2_PARAMS;
143
if (!Interop.
Crypt32
.PFXExportCertStoreEx(_certStore, ref dataBlob, password, exportParams, flags))
154
if (!Interop.
Crypt32
.PFXExportCertStoreEx(_certStore, ref dataBlob, password, exportParams, flags))
251
private byte[] SaveToMemoryStore(Interop.
Crypt32
.CertStoreSaveAs dwSaveAs)
255
Interop.
Crypt32
.DATA_BLOB blob = new Interop.
Crypt32
.DATA_BLOB(IntPtr.Zero, 0);
256
if (!Interop.
Crypt32
.CertSaveStore(_certStore, Interop.
Crypt32
.CertEncodingType.All, dwSaveAs, Interop.
Crypt32
.CertStoreSaveTo.CERT_STORE_SAVE_TO_MEMORY, ref blob, 0))
263
if (!Interop.
Crypt32
.CertSaveStore(_certStore, Interop.
Crypt32
.CertEncodingType.All, dwSaveAs, Interop.
Crypt32
.CertStoreSaveTo.CERT_STORE_SAVE_TO_MEMORY, ref blob, 0))
System\Security\Cryptography\X509Certificates\StorePal.Windows.Import.cs (40)
35
Interop.
Crypt32
.DATA_BLOB blob = new Interop.
Crypt32
.DATA_BLOB(new IntPtr(pRawData), (uint)(fromFile ? 0 : rawData!.Length));
38
Interop.
Crypt32
.ContentType contentType;
40
if (!Interop.
Crypt32
.CryptQueryObject(
41
fromFile ? Interop.
Crypt32
.CertQueryObjectType.CERT_QUERY_OBJECT_FILE : Interop.
Crypt32
.CertQueryObjectType.CERT_QUERY_OBJECT_BLOB,
44
Interop.
Crypt32
.ExpectedFormatTypeFlags.CERT_QUERY_FORMAT_FLAG_ALL,
59
if (contentType == Interop.
Crypt32
.ContentType.CERT_QUERY_CONTENT_PFX)
126
Interop.
Crypt32
.CertEncodingType.All,
128
Interop.
Crypt32
.CertStoreFlags.CERT_STORE_ENUM_ARCHIVED_FLAG | Interop.
Crypt32
.CertStoreFlags.CERT_STORE_CREATE_NEW_FLAG | Interop.
Crypt32
.CertStoreFlags.CERT_STORE_DEFER_CLOSE_UNTIL_LAST_FREE_FLAG,
134
!Interop.
Crypt32
.CertAddCertificateLinkToStore(certStore, certContext, Interop.
Crypt32
.CertStoreAddDisposition.CERT_STORE_ADD_ALWAYS, IntPtr.Zero))
156
Interop.
Crypt32
.CertEncodingType.All,
158
Interop.
Crypt32
.CertStoreFlags.CERT_STORE_ENUM_ARCHIVED_FLAG | Interop.
Crypt32
.CertStoreFlags.CERT_STORE_CREATE_NEW_FLAG,
176
if (!Interop.
Crypt32
.CertAddCertificateLinkToStore(certStore, certContext, Interop.
Crypt32
.CertStoreAddDisposition.CERT_STORE_ADD_ALWAYS, IntPtr.Zero))
194
Interop.
Crypt32
.CertStoreFlags certStoreFlags = MapX509StoreFlags(storeLocation, openFlags);
196
SafeCertStoreHandle certStore = Interop.crypt32.CertOpenStore(CertStoreProvider.CERT_STORE_PROV_SYSTEM_W, Interop.
Crypt32
.CertEncodingType.All, IntPtr.Zero, certStoreFlags, storeName);
210
_ = Interop.
Crypt32
.CertControlStore(certStore, Interop.
Crypt32
.CertControlStoreFlags.None, Interop.
Crypt32
.CertControlStoreType.CERT_STORE_CTRL_AUTO_RESYNC, IntPtr.Zero);
216
private static Interop.
Crypt32
.CertStoreFlags MapX509StoreFlags(StoreLocation storeLocation, OpenFlags flags)
218
Interop.
Crypt32
.CertStoreFlags dwFlags = 0;
223
dwFlags |= Interop.
Crypt32
.CertStoreFlags.CERT_STORE_READONLY_FLAG;
226
dwFlags |= Interop.
Crypt32
.CertStoreFlags.CERT_STORE_MAXIMUM_ALLOWED_FLAG;
231
dwFlags |= Interop.
Crypt32
.CertStoreFlags.CERT_STORE_OPEN_EXISTING_FLAG;
233
dwFlags |= Interop.
Crypt32
.CertStoreFlags.CERT_STORE_ENUM_ARCHIVED_FLAG;
236
dwFlags |= Interop.
Crypt32
.CertStoreFlags.CERT_SYSTEM_STORE_LOCAL_MACHINE;
238
dwFlags |= Interop.
Crypt32
.CertStoreFlags.CERT_SYSTEM_STORE_CURRENT_USER;
243
private const Interop.
Crypt32
.ExpectedContentTypeFlags StoreExpectedContentFlags =
244
Interop.
Crypt32
.ExpectedContentTypeFlags.CERT_QUERY_CONTENT_FLAG_CERT |
245
Interop.
Crypt32
.ExpectedContentTypeFlags.CERT_QUERY_CONTENT_FLAG_SERIALIZED_CERT |
246
Interop.
Crypt32
.ExpectedContentTypeFlags.CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED |
247
Interop.
Crypt32
.ExpectedContentTypeFlags.CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED_EMBED |
248
Interop.
Crypt32
.ExpectedContentTypeFlags.CERT_QUERY_CONTENT_FLAG_PKCS7_UNSIGNED |
249
Interop.
Crypt32
.ExpectedContentTypeFlags.CERT_QUERY_CONTENT_FLAG_PFX |
250
Interop.
Crypt32
.ExpectedContentTypeFlags.CERT_QUERY_CONTENT_FLAG_SERIALIZED_STORE;
System\Security\Cryptography\X509Certificates\WindowsHelpers.cs (14)
86
Interop.
Crypt32
.CertEncodingType.All,
90
Interop.
Crypt32
.CryptDecodeObjectFlags.None,
108
Interop.
Crypt32
.CertEncodingType.All,
112
Interop.
Crypt32
.CryptDecodeObjectFlags.None,
131
if (!Interop.
Crypt32
.CryptDecodeObjectPointer(
132
Interop.
Crypt32
.CertEncodingType.All,
136
Interop.
Crypt32
.CryptDecodeObjectFlags.None,
153
if (!Interop.
Crypt32
.CryptDecodeObjectPointer(
154
Interop.
Crypt32
.CertEncodingType.All,
158
Interop.
Crypt32
.CryptDecodeObjectFlags.None,
179
Interop.
Crypt32
.CertEncodingType.All,
182
Interop.
Crypt32
.CryptDecodeObjectFlags.None,
201
Interop.
Crypt32
.CertEncodingType.All,
204
Interop.
Crypt32
.CryptDecodeObjectFlags.None,
System\Security\Cryptography\X509Certificates\WindowsInterop.crypt32.cs (44)
22
Interop.
Crypt32
.CertNameType certNameType,
23
Interop.
Crypt32
.CertNameFlags certNameFlags,
24
Interop.
Crypt32
.CertNameStringType strType)
26
int cchCount =
Crypt32
.CertGetNameString(certContext, certNameType, certNameFlags, strType, null, 0);
35
if (
Crypt32
.CertGetNameString(certContext, certNameType, certNameFlags, strType, ptr, cchCount) == 0)
45
public static SafeCertStoreHandle CertOpenStore(CertStoreProvider lpszStoreProvider, Interop.
Crypt32
.CertEncodingType dwMsgAndCertEncodingType, IntPtr hCryptProv, Interop.
Crypt32
.CertStoreFlags dwFlags, string? pvPara)
47
return
Crypt32
.CertOpenStore((IntPtr)lpszStoreProvider, dwMsgAndCertEncodingType, hCryptProv, dwFlags, pvPara);
59
Interop.
Crypt32
.CERT_CONTEXT* pPrevCertContext;
70
Marshal.InitHandle(pCertContext, (IntPtr)
Crypt32
.CertEnumCertificatesInStore(hCertStore, pPrevCertContext));
81
public static bool CryptDecodeObject(Interop.
Crypt32
.CertEncodingType dwCertEncodingType, CryptDecodeObjectStructType lpszStructType, byte[] pbEncoded, int cbEncoded, Interop.
Crypt32
.CryptDecodeObjectFlags dwFlags, byte[]? pvStructInfo, ref int pcbStructInfo)
83
return Interop.
Crypt32
.CryptDecodeObject(dwCertEncodingType, (IntPtr)lpszStructType, pbEncoded, cbEncoded, dwFlags, pvStructInfo, ref pcbStructInfo);
86
public static unsafe bool CryptDecodeObjectPointer(Interop.
Crypt32
.CertEncodingType dwCertEncodingType, CryptDecodeObjectStructType lpszStructType, byte[] pbEncoded, int cbEncoded, Interop.
Crypt32
.CryptDecodeObjectFlags dwFlags, void* pvStructInfo, ref int pcbStructInfo)
88
return Interop.
Crypt32
.CryptDecodeObjectPointer(dwCertEncodingType, (IntPtr)lpszStructType, pbEncoded, cbEncoded, dwFlags, pvStructInfo, ref pcbStructInfo);
91
public static unsafe bool CryptDecodeObjectPointer(Interop.
Crypt32
.CertEncodingType dwCertEncodingType, CryptDecodeObjectStructType lpszStructType, ReadOnlySpan<byte> encoded, Interop.
Crypt32
.CryptDecodeObjectFlags dwFlags, void* pvStructInfo, ref int pcbStructInfo)
95
return Interop.
Crypt32
.CryptDecodeObjectPointer(dwCertEncodingType, (IntPtr)lpszStructType, pEncoded, encoded.Length, dwFlags, pvStructInfo, ref pcbStructInfo);
99
public static unsafe bool CryptEncodeObject(Interop.
Crypt32
.CertEncodingType dwCertEncodingType, CryptDecodeObjectStructType lpszStructType, void* pvStructInfo, byte[]? pbEncoded, ref int pcbEncoded)
101
return Interop.
Crypt32
.CryptEncodeObject(dwCertEncodingType, (IntPtr)lpszStructType, pvStructInfo, pbEncoded, ref pcbEncoded);
107
if (!Interop.crypt32.CryptEncodeObject(Interop.
Crypt32
.CertEncodingType.All, lpszStructType, decoded, null, ref cb))
111
if (!Interop.crypt32.CryptEncodeObject(Interop.
Crypt32
.CertEncodingType.All, lpszStructType, decoded, encoded, ref cb))
120
if (!Interop.
Crypt32
.CryptEncodeObject(Interop.
Crypt32
.CertEncodingType.All, lpszStructType, decoded, null, ref cb))
124
if (!Interop.
Crypt32
.CryptEncodeObject(Interop.
Crypt32
.CertEncodingType.All, lpszStructType, decoded, encoded, ref cb))
130
internal static SafeChainEngineHandle CertCreateCertificateChainEngine(ref Interop.
Crypt32
.CERT_CHAIN_ENGINE_CONFIG config)
132
if (!Interop.
Crypt32
.CertCreateCertificateChainEngine(ref config, out SafeChainEngineHandle chainEngineHandle))
149
public static unsafe bool CertFindCertificateInStore(SafeCertStoreHandle hCertStore, Interop.
Crypt32
.CertFindType dwFindType, void* pvFindPara, [NotNull] ref SafeCertContextHandle? pCertContext)
151
Interop.
Crypt32
.CERT_CONTEXT* pPrevCertContext = null;
158
pCertContext = Interop.
Crypt32
.CertFindCertificateInStore(hCertStore, Interop.
Crypt32
.CertEncodingType.All, Interop.
Crypt32
.CertFindFlags.None, dwFindType, pvFindPara, pPrevCertContext);
162
public static unsafe bool CertGetIntendedKeyUsage(Interop.
Crypt32
.CertEncodingType dwCertEncodingType, Interop.
Crypt32
.CERT_INFO* pCertInfo, out X509KeyUsageFlags pbKeyUsage, int cbKeyUsage)
164
bool result = Interop.
Crypt32
.CertGetIntendedKeyUsage(dwCertEncodingType, pCertInfo, out Interop.
Crypt32
.X509KeyUsageFlags x509KeyUsageFlags, cbKeyUsage);
169
public static bool CertVerifyCertificateChainPolicy(ChainPolicy pszPolicyOID, SafeX509ChainHandle pChainContext, ref Interop.
Crypt32
.CERT_CHAIN_POLICY_PARA pPolicyPara, ref Interop.
Crypt32
.CERT_CHAIN_POLICY_STATUS pPolicyStatus)
171
return Interop.
Crypt32
.CertVerifyCertificateChainPolicy((IntPtr)pszPolicyOID, pChainContext, ref pPolicyPara, ref pPolicyStatus);
174
public static bool CryptAcquireCertificatePrivateKey(SafeCertContextHandle pCert, Interop.
Crypt32
.CryptAcquireCertificatePrivateKeyFlags dwFlags, IntPtr pvParameters, out SafeNCryptKeyHandle phCryptProvOrNCryptKey, out int pdwKeySpec, out bool pfCallerFreeProvOrNCryptKey)
176
bool result = Interop.
Crypt32
.CryptAcquireCertificatePrivateKey(pCert, dwFlags, pvParameters, out phCryptProvOrNCryptKey, out Interop.
Crypt32
.CryptKeySpec pdwKeySpecEnum, out pfCallerFreeProvOrNCryptKey);
System\Security\Cryptography\X509Certificates\WindowsStructs.cs (9)
18
public Interop.
Crypt32
.DATA_BLOB Issuer;
19
public Interop.
Crypt32
.DATA_BLOB SerialNumber;
58
public Interop.
Crypt32
.DATA_BLOB p;
59
public Interop.
Crypt32
.DATA_BLOB q;
60
public Interop.
Crypt32
.DATA_BLOB g;
71
public Interop.
Crypt32
.CRYPT_BIT_BLOB SubjectType;
75
public Interop.
Crypt32
.DATA_BLOB* rgSubtreesConstraint; // PCERT_NAME_BLOB
108
public Interop.
Crypt32
.DATA_BLOB Value;
184
public Interop.
Crypt32
.CERT_CONTEXT* pCertContext;
System\Security\Cryptography\X509Certificates\X509CertificateLoader.Windows.cs (23)
19
Interop.
Crypt32
.DATA_BLOB blob = new Interop.
Crypt32
.DATA_BLOB(
24
Interop.
Crypt32
.CertQueryObjectType.CERT_QUERY_OBJECT_BLOB,
37
Interop.
Crypt32
.CertQueryObjectType.CERT_QUERY_OBJECT_FILE,
177
Interop.
Crypt32
.CertQueryObjectType objectType,
183
const Interop.
Crypt32
.ContentType ContentType =
184
Interop.
Crypt32
.ContentType.CERT_QUERY_CONTENT_CERT;
185
const Interop.
Crypt32
.ExpectedContentTypeFlags ExpectedContentType =
186
Interop.
Crypt32
.ExpectedContentTypeFlags.CERT_QUERY_CONTENT_FLAG_CERT;
188
bool loaded = Interop.
Crypt32
.CryptQueryObject(
192
Interop.
Crypt32
.ExpectedFormatTypeFlags.CERT_QUERY_FORMAT_FLAG_ALL,
195
out Interop.
Crypt32
.ContentType actualType,
240
Interop.
Crypt32
.PfxCertStoreFlags flags = MapKeyStorageFlags(keyStorageFlags);
257
Interop.
Crypt32
.DATA_BLOB blob = new((IntPtr)dataPtr, (uint)data.Length);
259
storeHandle = Interop.
Crypt32
.PFXImportCertStore(
280
private static Interop.
Crypt32
.PfxCertStoreFlags MapKeyStorageFlags(X509KeyStorageFlags keyStorageFlags)
284
Interop.
Crypt32
.PfxCertStoreFlags pfxCertStoreFlags = 0;
287
pfxCertStoreFlags |= Interop.
Crypt32
.PfxCertStoreFlags.CRYPT_USER_KEYSET;
289
pfxCertStoreFlags |= Interop.
Crypt32
.PfxCertStoreFlags.CRYPT_MACHINE_KEYSET;
292
pfxCertStoreFlags |= Interop.
Crypt32
.PfxCertStoreFlags.CRYPT_EXPORTABLE;
294
pfxCertStoreFlags |= Interop.
Crypt32
.PfxCertStoreFlags.CRYPT_USER_PROTECTED;
302
pfxCertStoreFlags |= Interop.
Crypt32
.PfxCertStoreFlags.PKCS12_NO_PERSIST_KEY | Interop.
Crypt32
.PfxCertStoreFlags.PKCS12_ALWAYS_CNG_KSP;
System\Security\Cryptography\X509Certificates\X509Pal.Windows.GetCertContentType.cs (20)
17
Interop.
Crypt32
.ContentType contentType;
23
Interop.
Crypt32
.DATA_BLOB certBlob = new Interop.
Crypt32
.DATA_BLOB(new IntPtr(pRawData), (uint)rawData.Length);
24
if (!Interop.
Crypt32
.CryptQueryObject(
25
Interop.
Crypt32
.CertQueryObjectType.CERT_QUERY_OBJECT_BLOB,
27
Interop.
Crypt32
.ExpectedContentTypeFlags.CERT_QUERY_CONTENT_FLAG_ALL,
28
Interop.
Crypt32
.ExpectedFormatTypeFlags.CERT_QUERY_FORMAT_FLAG_ALL,
47
Interop.
Crypt32
.ContentType contentType;
53
if (!Interop.
Crypt32
.CryptQueryObject(
54
Interop.
Crypt32
.CertQueryObjectType.CERT_QUERY_OBJECT_FILE,
56
Interop.
Crypt32
.ExpectedContentTypeFlags.CERT_QUERY_CONTENT_FLAG_ALL,
57
Interop.
Crypt32
.ExpectedFormatTypeFlags.CERT_QUERY_FORMAT_FLAG_ALL,
78
private static X509ContentType MapContentType(Interop.
Crypt32
.ContentType contentType)
82
case Interop.
Crypt32
.ContentType.CERT_QUERY_CONTENT_CERT:
84
case Interop.
Crypt32
.ContentType.CERT_QUERY_CONTENT_SERIALIZED_STORE:
86
case Interop.
Crypt32
.ContentType.CERT_QUERY_CONTENT_SERIALIZED_CERT:
88
case Interop.
Crypt32
.ContentType.CERT_QUERY_CONTENT_PKCS7_SIGNED:
89
case Interop.
Crypt32
.ContentType.CERT_QUERY_CONTENT_PKCS7_UNSIGNED:
91
case Interop.
Crypt32
.ContentType.CERT_QUERY_CONTENT_PKCS7_SIGNED_EMBED:
93
case Interop.
Crypt32
.ContentType.CERT_QUERY_CONTENT_PFX:
System\Security\Cryptography\X509Certificates\X509Pal.Windows.PublicKey.cs (4)
9
using static Interop.
Crypt32
;
51
int algId = Interop.
Crypt32
.FindOidInfo(CryptOidInfoKeyType.CRYPT_OID_INFO_OID_KEY, oid.Value!, OidGroup.PublicKeyAlgorithm, fallBackToAllGroups: true).AlgId;
136
bool success = Interop.
Crypt32
.CryptImportPublicKeyInfoEx2(
137
Interop.
Crypt32
.CertEncodingType.X509_ASN_ENCODING,
System\Security\Cryptography\X509Certificates\X509Pal.Windows.X500DistinguishedName.cs (29)
18
int dwStrType = (int)(Interop.
Crypt32
.CertNameStrTypeAndFlags.CERT_X500_NAME_STR | MapNameToStrFlag(flag));
23
Interop.
Crypt32
.DATA_BLOB nameBlob;
27
int cchDecoded = Interop.
Crypt32
.CertNameToStr((int)Interop.
Crypt32
.CertEncodingType.All, &nameBlob, dwStrType, null, 0);
34
if (Interop.
Crypt32
.CertNameToStr((int)Interop.
Crypt32
.CertEncodingType.All, &nameBlob, dwStrType, ptr, cchDecoded) == 0)
47
Interop.
Crypt32
.CertNameStrTypeAndFlags dwStrType = Interop.
Crypt32
.CertNameStrTypeAndFlags.CERT_X500_NAME_STR | MapNameToStrFlag(flag);
50
if (!Interop.
Crypt32
.CertStrToName(Interop.
Crypt32
.CertEncodingType.All, distinguishedName, dwStrType, IntPtr.Zero, null, ref cbEncoded, IntPtr.Zero))
54
if (!Interop.
Crypt32
.CertStrToName(Interop.
Crypt32
.CertEncodingType.All, distinguishedName, dwStrType, IntPtr.Zero, encodedName, ref cbEncoded, IntPtr.Zero))
65
int stringType = multiLine ? Interop.
Crypt32
.CRYPT_FORMAT_STR_MULTI_LINE : Interop.
Crypt32
.CRYPT_FORMAT_STR_NONE;
68
if (!Interop.
Crypt32
.CryptFormatObject(
69
(int)Interop.
Crypt32
.CertEncodingType.X509_ASN_ENCODING,
86
if (!Interop.
Crypt32
.CryptFormatObject(
87
(int)Interop.
Crypt32
.CertEncodingType.X509_ASN_ENCODING,
104
private static Interop.
Crypt32
.CertNameStrTypeAndFlags MapNameToStrFlag(X500DistinguishedNameFlags flag)
111
Interop.
Crypt32
.CertNameStrTypeAndFlags dwStrType = 0;
115
dwStrType |= Interop.
Crypt32
.CertNameStrTypeAndFlags.CERT_NAME_STR_REVERSE_FLAG;
118
dwStrType |= Interop.
Crypt32
.CertNameStrTypeAndFlags.CERT_NAME_STR_SEMICOLON_FLAG;
120
dwStrType |= Interop.
Crypt32
.CertNameStrTypeAndFlags.CERT_NAME_STR_COMMA_FLAG;
122
dwStrType |= Interop.
Crypt32
.CertNameStrTypeAndFlags.CERT_NAME_STR_CRLF_FLAG;
125
dwStrType |= Interop.
Crypt32
.CertNameStrTypeAndFlags.CERT_NAME_STR_NO_PLUS_FLAG;
127
dwStrType |= Interop.
Crypt32
.CertNameStrTypeAndFlags.CERT_NAME_STR_NO_QUOTING_FLAG;
130
dwStrType |= Interop.
Crypt32
.CertNameStrTypeAndFlags.CERT_NAME_STR_FORCE_UTF8_DIR_STR_FLAG;
133
dwStrType |= Interop.
Crypt32
.CertNameStrTypeAndFlags.CERT_NAME_STR_ENABLE_UTF8_UNICODE_FLAG;
135
dwStrType |= Interop.
Crypt32
.CertNameStrTypeAndFlags.CERT_NAME_STR_ENABLE_T61_UNICODE_FLAG;