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);
2538
internal static partial bool CertAddCertificateContextToStore(global::Microsoft.Win32.SafeHandles.SafeCertStoreHandle hCertStore, global::Microsoft.Win32.SafeHandles.SafeCertContextHandle pCertContext, global::Interop.
Crypt32
.CertStoreAddDisposition dwAddDisposition, nint ppStoreContext)
2577
static extern unsafe int __PInvoke(nint __hCertStore_native, nint __pCertContext_native, global::Interop.
Crypt32
.CertStoreAddDisposition __dwAddDisposition_native, nint __ppStoreContext_native);
2586
internal static partial bool CertAddCertificateLinkToStore(global::Microsoft.Win32.SafeHandles.SafeCertStoreHandle hCertStore, global::Microsoft.Win32.SafeHandles.SafeCertContextHandle pCertContext, global::Interop.
Crypt32
.CertStoreAddDisposition dwAddDisposition, nint ppStoreContext)
2625
static extern unsafe int __PInvoke(nint __hCertStore_native, nint __pCertContext_native, global::Interop.
Crypt32
.CertStoreAddDisposition __dwAddDisposition_native, nint __ppStoreContext_native);
2661
internal static partial bool CertControlStore(global::Microsoft.Win32.SafeHandles.SafeCertStoreHandle hCertStore, global::Interop.
Crypt32
.CertControlStoreFlags dwFlags, global::Interop.
Crypt32
.CertControlStoreType dwControlType, nint pvCtrlPara)
2695
static extern unsafe int __PInvoke(nint __hCertStore_native, global::Interop.
Crypt32
.CertControlStoreFlags __dwFlags_native, global::Interop.
Crypt32
.CertControlStoreType __dwControlType_native, nint __pvCtrlPara_native);
2704
internal static partial bool CertCreateCertificateChainEngine(ref global::Interop.
Crypt32
.CERT_CHAIN_ENGINE_CONFIG pConfig, out global::Microsoft.Win32.SafeHandles.SafeChainEngineHandle hChainEngineHandle)
2717
fixed (global::Interop.
Crypt32
.CERT_CHAIN_ENGINE_CONFIG* __pConfig_native = &pConfig)
2745
static extern unsafe int __PInvoke(global::Interop.
Crypt32
.CERT_CHAIN_ENGINE_CONFIG* __pConfig_native, nint* __hChainEngineHandle_native);
2754
internal static unsafe partial bool CertDeleteCertificateFromStore(global::Interop.
Crypt32
.CERT_CONTEXT* pCertContext)
2772
static extern unsafe int __PInvoke(global::Interop.
Crypt32
.CERT_CONTEXT* __pCertContext_native);
2961
internal static unsafe partial global::Interop.
Crypt32
.CERT_CONTEXT* CertEnumCertificatesInStore(global::Microsoft.Win32.SafeHandles.SafeCertStoreHandle hCertStore, global::Interop.
Crypt32
.CERT_CONTEXT* pPrevCertContext)
2965
global::Interop.
Crypt32
.CERT_CONTEXT* __retVal = default;
2991
static extern unsafe global::Interop.
Crypt32
.CERT_CONTEXT* __PInvoke(nint __hCertStore_native, global::Interop.
Crypt32
.CERT_CONTEXT* __pPrevCertContext_native);
3000
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)
3045
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);
3054
internal static unsafe partial global::Interop.
Crypt32
.CERT_EXTENSION* CertFindExtension(string pszObjId, int cExtensions, nint rgExtensions)
3058
global::Interop.
Crypt32
.CERT_EXTENSION* __retVal = default;
3084
static extern unsafe global::Interop.
Crypt32
.CERT_EXTENSION* __PInvoke(byte* __pszObjId_native, int __cExtensions_native, nint __rgExtensions_native);
3123
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)
3143
fixed (global::Interop.
Crypt32
.CERT_CHAIN_PARA* __pChainPara_native = &pChainPara)
3178
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);
3187
internal static partial bool CertGetCertificateContextProperty(global::Microsoft.Win32.SafeHandles.SafeCertContextHandle pCertContext, global::Interop.
Crypt32
.CertContextPropId dwPropId, byte[] pvData, ref int pcbData)
3224
static extern unsafe int __PInvoke(nint __pCertContext_native, global::Interop.
Crypt32
.CertContextPropId __dwPropId_native, byte* __pvData_native, int* __pcbData_native);
3233
internal static unsafe partial bool CertGetCertificateContextPropertyPtr(global::Microsoft.Win32.SafeHandles.SafeCertContextHandle pCertContext, global::Interop.
Crypt32
.CertContextPropId dwPropId, byte* pvData, ref int pcbData)
3269
static extern unsafe int __PInvoke(nint __pCertContext_native, global::Interop.
Crypt32
.CertContextPropId __dwPropId_native, byte* __pvData_native, int* __pcbData_native);
3278
internal static partial bool CertGetCertificateContextProperty(global::Microsoft.Win32.SafeHandles.SafeCertContextHandle pCertContext, global::Interop.
Crypt32
.CertContextPropId dwPropId, out nint pvData, ref int pcbData)
3316
static extern unsafe int __PInvoke(nint __pCertContext_native, global::Interop.
Crypt32
.CertContextPropId __dwPropId_native, nint* __pvData_native, int* __pcbData_native);
3325
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)
3340
fixed (global::Interop.
Crypt32
.DATA_BLOB* __pvData_native = &pvData)
3363
static extern unsafe int __PInvoke(nint __pCertContext_native, global::Interop.
Crypt32
.CertContextPropId __dwPropId_native, global::Interop.
Crypt32
.DATA_BLOB* __pvData_native, int* __pcbData_native);
3372
internal static unsafe partial bool CertGetCertificateContextPropertyString(global::Microsoft.Win32.SafeHandles.SafeCertContextHandle pCertContext, global::Interop.
Crypt32
.CertContextPropId dwPropId, byte* pvData, ref uint pcbData)
3408
static extern unsafe int __PInvoke(nint __pCertContext_native, global::Interop.
Crypt32
.CertContextPropId __dwPropId_native, byte* __pvData_native, uint* __pcbData_native);
3417
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)
3424
fixed (global::Interop.
Crypt32
.X509KeyUsageFlags* __pbKeyUsage_native = &pbKeyUsage)
3438
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);
3447
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)
3459
fixed (global::Interop.
Crypt32
.CertNameStringType* __pvTypePara_native = &pvTypePara)
3479
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);
3574
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)
3587
fixed (global::Interop.
Crypt32
.CERT_CHAIN_POLICY_STATUS* __pPolicyStatus_native = &pPolicyStatus)
3588
fixed (global::Interop.
Crypt32
.CERT_CHAIN_POLICY_PARA* __pPolicyPara_native = &pPolicyPara)
3611
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);
3644
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)
3682
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);
3691
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)
3704
fixed (global::Interop.
Crypt32
.DATA_BLOB* __pvSaveToPara_native = &pvSaveToPara)
3727
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);
3782
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)
3816
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);
3825
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)
3843
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);
3852
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)
3886
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);
3895
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)
3934
static extern unsafe int __PInvoke(nint __pCertContext_native, global::Interop.
Crypt32
.CertContextPropId __dwPropId_native, global::Interop.
Crypt32
.CertSetPropertyFlags __dwFlags_native, nint __keyHandle_native);
3943
internal static unsafe partial bool CertSetCertificateContextProperty(nint pCertContext, global::Interop.
Crypt32
.CertContextPropId dwPropId, global::Interop.
Crypt32
.CertSetPropertyFlags dwFlags, global::Microsoft.Win32.SafeHandles.SafeNCryptKeyHandle keyHandle)
3977
static extern unsafe int __PInvoke(nint __pCertContext_native, global::Interop.
Crypt32
.CertContextPropId __dwPropId_native, global::Interop.
Crypt32
.CertSetPropertyFlags __dwFlags_native, nint __keyHandle_native);
3986
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)
4008
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);
4017
internal static unsafe partial int CertVerifyTimeValidity(ref global::Interop.
Crypt32
.FILETIME pTimeToVerify, global::Interop.
Crypt32
.CERT_INFO* pCertInfo)
4022
fixed (global::Interop.
Crypt32
.FILETIME* __pTimeToVerify_native = &pTimeToVerify)
4034
static extern unsafe int __PInvoke(global::Interop.
Crypt32
.FILETIME* __pTimeToVerify_native, global::Interop.
Crypt32
.CERT_INFO* __pCertInfo_native);
4043
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)
4063
fixed (global::Interop.
Crypt32
.CryptKeySpec* __pdwKeySpec_native = &pdwKeySpec)
4097
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);
4106
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)
4128
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);
4137
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)
4158
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);
4167
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)
4187
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);
4196
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)
4233
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);
4242
internal static unsafe partial bool CryptEncodeObject(global::Interop.
Crypt32
.CertEncodingType dwCertEncodingType, nint lpszStructType, void* pvStructInfo, byte[] pbEncoded, ref int pcbEncoded)
4263
static extern unsafe int __PInvoke(global::Interop.
Crypt32
.CertEncodingType __dwCertEncodingType_native, nint __lpszStructType_native, void* __pvStructInfo_native, byte* __pbEncoded_native, int* __pcbEncoded_native);
4272
internal static unsafe partial bool CryptEncodeObject(global::Interop.
Crypt32
.CertEncodingType dwCertEncodingType, string lpszStructType, void* pvStructInfo, byte[] pbEncoded, ref int pcbEncoded)
4309
static extern unsafe int __PInvoke(global::Interop.
Crypt32
.CertEncodingType __dwCertEncodingType_native, byte* __lpszStructType_native, void* __pvStructInfo_native, byte* __pbEncoded_native, int* __pcbEncoded_native);
4348
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)
4387
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);
4423
internal static partial bool CryptMsgGetParam(global::Microsoft.Win32.SafeHandles.SafeCryptMsgHandle hCryptMsg, global::Interop.
Crypt32
.CryptMsgParamType dwParamType, int dwIndex, out int pvData, ref int pcbData)
4461
static extern unsafe int __PInvoke(nint __hCryptMsg_native, global::Interop.
Crypt32
.CryptMsgParamType __dwParamType_native, int __dwIndex_native, int* __pvData_native, int* __pcbData_native);
4470
internal static unsafe partial bool CryptMsgGetParam(global::Microsoft.Win32.SafeHandles.SafeCryptMsgHandle hCryptMsg, global::Interop.
Crypt32
.CryptMsgParamType dwParamType, int dwIndex, byte* pvData, ref int pcbData)
4506
static extern unsafe int __PInvoke(nint __hCryptMsg_native, global::Interop.
Crypt32
.CryptMsgParamType __dwParamType_native, int __dwIndex_native, byte* __pvData_native, int* __pcbData_native);
4515
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)
4530
fixed (global::Interop.
Crypt32
.CryptMsgType* __pvData_native = &pvData)
4553
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);
4562
internal static partial bool CryptMsgGetParam(global::Microsoft.Win32.SafeHandles.SafeCryptMsgHandle hCryptMsg, global::Interop.
Crypt32
.CryptMsgParamType dwParamType, int dwIndex, nint pvData, ref int pcbData)
4598
static extern unsafe int __PInvoke(nint __hCryptMsg_native, global::Interop.
Crypt32
.CryptMsgParamType __dwParamType_native, int __dwIndex_native, nint __pvData_native, int* __pcbData_native);
4607
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)
4629
fixed (global::Interop.
Crypt32
.FormatType* __pdwFormatType_native = &pdwFormatType)
4630
fixed (global::Interop.
Crypt32
.ContentType* __pdwContentType_native = &pdwContentType)
4631
fixed (global::Interop.
Crypt32
.CertEncodingType* __pdwMsgAndCertEncodingType_native = &pdwMsgAndCertEncodingType)
4665
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);
4674
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)
4681
fixed (global::Interop.
Crypt32
.ContentType* __pdwContentType_native = &pdwContentType)
4695
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);
4704
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)
4718
fixed (global::Interop.
Crypt32
.ContentType* __pdwContentType_native = &pdwContentType)
4746
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);
4755
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)
4769
fixed (global::Interop.
Crypt32
.ContentType* __pdwContentType_native = &pdwContentType)
4797
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);
4806
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);
4814
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);
4822
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)
4838
fixed (global::Interop.
Crypt32
.DATA_BLOB* __pPFX_native = &pPFX)
4863
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);
4872
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)
4887
fixed (global::Interop.
Crypt32
.DATA_BLOB* __pPFX_native = &pPFX)
4919
static extern unsafe nint __PInvoke(global::Interop.
Crypt32
.DATA_BLOB* __pPFX_native, nint __password_native, global::Interop.
Crypt32
.PfxCertStoreFlags __dwFlags_native);
4928
internal static unsafe partial global::Microsoft.Win32.SafeHandles.SafeCertStoreHandle PFXImportCertStore(ref global::Interop.
Crypt32
.DATA_BLOB pPFX, char* password, global::Interop.
Crypt32
.PfxCertStoreFlags dwFlags)
4939
fixed (global::Interop.
Crypt32
.DATA_BLOB* __pPFX_native = &pPFX)
4966
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;