656 references to Crypt32
System.Security.Cryptography (656)
_generated\0\LibraryImports.g.cs (224)
58
internal static unsafe partial bool CryptAcquireContext(out nint psafeProvHandle, char* pszContainer, char* pszProvider, int dwProvType, global::Interop.
Crypt32
.CryptAcquireContextFlags dwFlags)
79
static extern unsafe int __PInvoke(nint* __psafeProvHandle_native, char* __pszContainer_native, char* __pszProvider_native, int __dwProvType_native, global::Interop.
Crypt32
.CryptAcquireContextFlags __dwFlags_native);
2537
internal static partial bool CertAddCertificateContextToStore(global::Microsoft.Win32.SafeHandles.SafeCertStoreHandle hCertStore, global::Microsoft.Win32.SafeHandles.SafeCertContextHandle pCertContext, global::Interop.
Crypt32
.CertStoreAddDisposition dwAddDisposition, nint ppStoreContext)
2576
static extern unsafe int __PInvoke(nint __hCertStore_native, nint __pCertContext_native, global::Interop.
Crypt32
.CertStoreAddDisposition __dwAddDisposition_native, nint __ppStoreContext_native);
2585
internal static partial bool CertAddCertificateLinkToStore(global::Microsoft.Win32.SafeHandles.SafeCertStoreHandle hCertStore, global::Microsoft.Win32.SafeHandles.SafeCertContextHandle pCertContext, global::Interop.
Crypt32
.CertStoreAddDisposition dwAddDisposition, nint ppStoreContext)
2624
static extern unsafe int __PInvoke(nint __hCertStore_native, nint __pCertContext_native, global::Interop.
Crypt32
.CertStoreAddDisposition __dwAddDisposition_native, nint __ppStoreContext_native);
2660
internal static partial bool CertControlStore(global::Microsoft.Win32.SafeHandles.SafeCertStoreHandle hCertStore, global::Interop.
Crypt32
.CertControlStoreFlags dwFlags, global::Interop.
Crypt32
.CertControlStoreType dwControlType, nint pvCtrlPara)
2694
static extern unsafe int __PInvoke(nint __hCertStore_native, global::Interop.
Crypt32
.CertControlStoreFlags __dwFlags_native, global::Interop.
Crypt32
.CertControlStoreType __dwControlType_native, nint __pvCtrlPara_native);
2703
internal static partial bool CertCreateCertificateChainEngine(ref global::Interop.
Crypt32
.CERT_CHAIN_ENGINE_CONFIG pConfig, out global::Microsoft.Win32.SafeHandles.SafeChainEngineHandle hChainEngineHandle)
2716
fixed (global::Interop.
Crypt32
.CERT_CHAIN_ENGINE_CONFIG* __pConfig_native = &pConfig)
2744
static extern unsafe int __PInvoke(global::Interop.
Crypt32
.CERT_CHAIN_ENGINE_CONFIG* __pConfig_native, nint* __hChainEngineHandle_native);
2753
internal static unsafe partial bool CertDeleteCertificateFromStore(global::Interop.
Crypt32
.CERT_CONTEXT* pCertContext)
2771
static extern unsafe int __PInvoke(global::Interop.
Crypt32
.CERT_CONTEXT* __pCertContext_native);
2960
internal static unsafe partial global::Interop.
Crypt32
.CERT_CONTEXT* CertEnumCertificatesInStore(global::Microsoft.Win32.SafeHandles.SafeCertStoreHandle hCertStore, global::Interop.
Crypt32
.CERT_CONTEXT* pPrevCertContext)
2964
global::Interop.
Crypt32
.CERT_CONTEXT* __retVal = default;
2990
static extern unsafe global::Interop.
Crypt32
.CERT_CONTEXT* __PInvoke(nint __hCertStore_native, global::Interop.
Crypt32
.CERT_CONTEXT* __pPrevCertContext_native);
2999
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)
3044
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);
3053
internal static unsafe partial global::Interop.
Crypt32
.CERT_EXTENSION* CertFindExtension(string pszObjId, int cExtensions, nint rgExtensions)
3057
global::Interop.
Crypt32
.CERT_EXTENSION* __retVal = default;
3083
static extern unsafe global::Interop.
Crypt32
.CERT_EXTENSION* __PInvoke(byte* __pszObjId_native, int __cExtensions_native, nint __rgExtensions_native);
3122
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)
3142
fixed (global::Interop.
Crypt32
.CERT_CHAIN_PARA* __pChainPara_native = &pChainPara)
3177
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);
3186
internal static partial bool CertGetCertificateContextProperty(global::Microsoft.Win32.SafeHandles.SafeCertContextHandle pCertContext, global::Interop.
Crypt32
.CertContextPropId dwPropId, byte[] pvData, ref int pcbData)
3223
static extern unsafe int __PInvoke(nint __pCertContext_native, global::Interop.
Crypt32
.CertContextPropId __dwPropId_native, byte* __pvData_native, int* __pcbData_native);
3232
internal static unsafe partial bool CertGetCertificateContextPropertyPtr(global::Microsoft.Win32.SafeHandles.SafeCertContextHandle pCertContext, global::Interop.
Crypt32
.CertContextPropId dwPropId, byte* pvData, ref int pcbData)
3268
static extern unsafe int __PInvoke(nint __pCertContext_native, global::Interop.
Crypt32
.CertContextPropId __dwPropId_native, byte* __pvData_native, int* __pcbData_native);
3277
internal static partial bool CertGetCertificateContextProperty(global::Microsoft.Win32.SafeHandles.SafeCertContextHandle pCertContext, global::Interop.
Crypt32
.CertContextPropId dwPropId, out nint pvData, ref int pcbData)
3315
static extern unsafe int __PInvoke(nint __pCertContext_native, global::Interop.
Crypt32
.CertContextPropId __dwPropId_native, nint* __pvData_native, int* __pcbData_native);
3324
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)
3339
fixed (global::Interop.
Crypt32
.DATA_BLOB* __pvData_native = &pvData)
3362
static extern unsafe int __PInvoke(nint __pCertContext_native, global::Interop.
Crypt32
.CertContextPropId __dwPropId_native, global::Interop.
Crypt32
.DATA_BLOB* __pvData_native, int* __pcbData_native);
3371
internal static unsafe partial bool CertGetCertificateContextPropertyString(global::Microsoft.Win32.SafeHandles.SafeCertContextHandle pCertContext, global::Interop.
Crypt32
.CertContextPropId dwPropId, byte* pvData, ref uint pcbData)
3407
static extern unsafe int __PInvoke(nint __pCertContext_native, global::Interop.
Crypt32
.CertContextPropId __dwPropId_native, byte* __pvData_native, uint* __pcbData_native);
3416
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)
3423
fixed (global::Interop.
Crypt32
.X509KeyUsageFlags* __pbKeyUsage_native = &pbKeyUsage)
3437
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);
3446
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)
3458
fixed (global::Interop.
Crypt32
.CertNameStringType* __pvTypePara_native = &pvTypePara)
3478
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);
3573
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)
3586
fixed (global::Interop.
Crypt32
.CERT_CHAIN_POLICY_STATUS* __pPolicyStatus_native = &pPolicyStatus)
3587
fixed (global::Interop.
Crypt32
.CERT_CHAIN_POLICY_PARA* __pPolicyPara_native = &pPolicyPara)
3610
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);
3643
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)
3681
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);
3690
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)
3703
fixed (global::Interop.
Crypt32
.DATA_BLOB* __pvSaveToPara_native = &pvSaveToPara)
3726
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);
3781
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)
3815
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);
3824
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)
3842
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);
3851
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)
3885
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);
3894
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)
3933
static extern unsafe int __PInvoke(nint __pCertContext_native, global::Interop.
Crypt32
.CertContextPropId __dwPropId_native, global::Interop.
Crypt32
.CertSetPropertyFlags __dwFlags_native, nint __keyHandle_native);
3942
internal static unsafe partial bool CertSetCertificateContextProperty(nint pCertContext, global::Interop.
Crypt32
.CertContextPropId dwPropId, global::Interop.
Crypt32
.CertSetPropertyFlags dwFlags, global::Microsoft.Win32.SafeHandles.SafeNCryptKeyHandle keyHandle)
3976
static extern unsafe int __PInvoke(nint __pCertContext_native, global::Interop.
Crypt32
.CertContextPropId __dwPropId_native, global::Interop.
Crypt32
.CertSetPropertyFlags __dwFlags_native, nint __keyHandle_native);
3985
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)
4007
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);
4016
internal static unsafe partial int CertVerifyTimeValidity(ref global::Interop.
Crypt32
.FILETIME pTimeToVerify, global::Interop.
Crypt32
.CERT_INFO* pCertInfo)
4021
fixed (global::Interop.
Crypt32
.FILETIME* __pTimeToVerify_native = &pTimeToVerify)
4033
static extern unsafe int __PInvoke(global::Interop.
Crypt32
.FILETIME* __pTimeToVerify_native, global::Interop.
Crypt32
.CERT_INFO* __pCertInfo_native);
4042
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)
4062
fixed (global::Interop.
Crypt32
.CryptKeySpec* __pdwKeySpec_native = &pdwKeySpec)
4096
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);
4105
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)
4127
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);
4136
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)
4157
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);
4166
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)
4186
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);
4195
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)
4232
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);
4241
internal static unsafe partial bool CryptEncodeObject(global::Interop.
Crypt32
.CertEncodingType dwCertEncodingType, nint lpszStructType, void* pvStructInfo, byte[] pbEncoded, ref int pcbEncoded)
4262
static extern unsafe int __PInvoke(global::Interop.
Crypt32
.CertEncodingType __dwCertEncodingType_native, nint __lpszStructType_native, void* __pvStructInfo_native, byte* __pbEncoded_native, int* __pcbEncoded_native);
4271
internal static unsafe partial bool CryptEncodeObject(global::Interop.
Crypt32
.CertEncodingType dwCertEncodingType, string lpszStructType, void* pvStructInfo, byte[] pbEncoded, ref int pcbEncoded)
4308
static extern unsafe int __PInvoke(global::Interop.
Crypt32
.CertEncodingType __dwCertEncodingType_native, byte* __lpszStructType_native, void* __pvStructInfo_native, byte* __pbEncoded_native, int* __pcbEncoded_native);
4347
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)
4386
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);
4422
internal static partial bool CryptMsgGetParam(global::Microsoft.Win32.SafeHandles.SafeCryptMsgHandle hCryptMsg, global::Interop.
Crypt32
.CryptMsgParamType dwParamType, int dwIndex, out int pvData, ref int pcbData)
4460
static extern unsafe int __PInvoke(nint __hCryptMsg_native, global::Interop.
Crypt32
.CryptMsgParamType __dwParamType_native, int __dwIndex_native, int* __pvData_native, int* __pcbData_native);
4469
internal static unsafe partial bool CryptMsgGetParam(global::Microsoft.Win32.SafeHandles.SafeCryptMsgHandle hCryptMsg, global::Interop.
Crypt32
.CryptMsgParamType dwParamType, int dwIndex, byte* pvData, ref int pcbData)
4505
static extern unsafe int __PInvoke(nint __hCryptMsg_native, global::Interop.
Crypt32
.CryptMsgParamType __dwParamType_native, int __dwIndex_native, byte* __pvData_native, int* __pcbData_native);
4514
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)
4529
fixed (global::Interop.
Crypt32
.CryptMsgType* __pvData_native = &pvData)
4552
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);
4561
internal static partial bool CryptMsgGetParam(global::Microsoft.Win32.SafeHandles.SafeCryptMsgHandle hCryptMsg, global::Interop.
Crypt32
.CryptMsgParamType dwParamType, int dwIndex, nint pvData, ref int pcbData)
4597
static extern unsafe int __PInvoke(nint __hCryptMsg_native, global::Interop.
Crypt32
.CryptMsgParamType __dwParamType_native, int __dwIndex_native, nint __pvData_native, int* __pcbData_native);
4606
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)
4628
fixed (global::Interop.
Crypt32
.FormatType* __pdwFormatType_native = &pdwFormatType)
4629
fixed (global::Interop.
Crypt32
.ContentType* __pdwContentType_native = &pdwContentType)
4630
fixed (global::Interop.
Crypt32
.CertEncodingType* __pdwMsgAndCertEncodingType_native = &pdwMsgAndCertEncodingType)
4664
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);
4673
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)
4680
fixed (global::Interop.
Crypt32
.ContentType* __pdwContentType_native = &pdwContentType)
4694
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);
4703
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)
4717
fixed (global::Interop.
Crypt32
.ContentType* __pdwContentType_native = &pdwContentType)
4745
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);
4754
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)
4768
fixed (global::Interop.
Crypt32
.ContentType* __pdwContentType_native = &pdwContentType)
4796
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);
4805
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);
4813
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);
4821
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)
4837
fixed (global::Interop.
Crypt32
.DATA_BLOB* __pPFX_native = &pPFX)
4862
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);
4871
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)
4886
fixed (global::Interop.
Crypt32
.DATA_BLOB* __pPFX_native = &pPFX)
4918
static extern unsafe nint __PInvoke(global::Interop.
Crypt32
.DATA_BLOB* __pPFX_native, nint __password_native, global::Interop.
Crypt32
.PfxCertStoreFlags __dwFlags_native);
4927
internal static unsafe partial global::Microsoft.Win32.SafeHandles.SafeCertStoreHandle PFXImportCertStore(ref global::Interop.
Crypt32
.DATA_BLOB pPFX, char* password, global::Interop.
Crypt32
.PfxCertStoreFlags dwFlags)
4938
fixed (global::Interop.
Crypt32
.DATA_BLOB* __pPFX_native = &pPFX)
4965
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)
19
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;