Generated\Basic.CompilerLog.Util\Basic.CompilerLog.Util.Impl.BasicGeneratedFilesAnalyzerReference\LibraryImports.g.cs (452)
59internal static unsafe partial bool CryptAcquireContext(out nint psafeProvHandle, char* pszContainer, char* pszProvider, int dwProvType, global::Interop.Crypt32.CryptAcquireContextFlags dwFlags)
81static extern unsafe int __PInvoke(nint* __psafeProvHandle_native, char* __pszContainer_native, char* __pszProvider_native, int __dwProvType_native, global::Interop.Crypt32.CryptAcquireContextFlags __dwFlags_native);
91internal static partial bool CryptCreateHash(global::System.Security.Cryptography.SafeProvHandle hProv, int Algid, global::System.Security.Cryptography.SafeCapiKeyHandle hKey, global::Interop.Advapi32.CryptCreateHashFlags dwFlags, out global::System.Security.Cryptography.SafeHashHandle phHash)
143static extern unsafe int __PInvoke(nint __hProv_native, int __Algid_native, nint __hKey_native, global::Interop.Advapi32.CryptCreateHashFlags __dwFlags_native, nint* __phHash_native);
490public static partial bool CryptGetDefaultProvider(int dwProvType, nint pdwReserved, global::Interop.Advapi32.GetDefaultProviderFlags dwFlags, char[] pszProvName, ref int pcbProvName)
512static extern unsafe int __PInvoke(int __dwProvType_native, nint __pdwReserved_native, global::Interop.Advapi32.GetDefaultProviderFlags __dwFlags_native, char* __pszProvName_native, int* __pcbProvName_native);
522public static partial bool CryptGetHashParam(global::System.Security.Cryptography.SafeHashHandle hHash, global::Interop.Advapi32.CryptHashProperty dwParam, out int pbData, ref int pdwDataLen, int dwFlags)
560static extern unsafe int __PInvoke(nint __hHash_native, global::Interop.Advapi32.CryptHashProperty __dwParam_native, int* __pbData_native, int* __pdwDataLen_native, int __dwFlags_native);
570public static partial bool CryptSetHashParam(global::System.Security.Cryptography.SafeHashHandle hHash, global::Interop.Advapi32.CryptHashProperty dwParam, byte[] buffer, int dwFlags)
606static extern unsafe int __PInvoke(nint __hHash_native, global::Interop.Advapi32.CryptHashProperty __dwParam_native, byte* __buffer_native, int __dwFlags_native);
616public static partial bool CryptGetKeyParam(global::System.Security.Cryptography.SafeCapiKeyHandle hKey, global::Interop.Advapi32.CryptGetKeyParamFlags dwParam, byte[] pbData, ref int pdwDataLen, int dwFlags)
653static extern unsafe int __PInvoke(nint __hKey_native, global::Interop.Advapi32.CryptGetKeyParamFlags __dwParam_native, byte* __pbData_native, int* __pdwDataLen_native, int __dwFlags_native);
663public static partial bool CryptSetProvParam(global::System.Runtime.InteropServices.SafeHandle safeProvHandle, global::Interop.Advapi32.CryptProvParam dwParam, nint pbData, int dwFlags)
697static extern unsafe int __PInvoke(nint __safeProvHandle_native, global::Interop.Advapi32.CryptProvParam __dwParam_native, nint __pbData_native, int __dwFlags_native);
707public static partial bool CryptSetProvParam(global::System.Security.Cryptography.SafeProvHandle hProv, global::Interop.Advapi32.CryptProvParam dwParam, ref nint pbData, int dwFlags)
743static extern unsafe int __PInvoke(nint __hProv_native, global::Interop.Advapi32.CryptProvParam __dwParam_native, nint* __pbData_native, int __dwFlags_native);
753public static partial bool CryptGetProvParam(global::System.Runtime.InteropServices.SafeHandle safeProvHandle, global::Interop.Advapi32.CryptProvParam dwParam, nint pbData, ref int dwDataLen, int dwFlags)
789static extern unsafe int __PInvoke(nint __safeProvHandle_native, global::Interop.Advapi32.CryptProvParam __dwParam_native, nint __pbData_native, int* __dwDataLen_native, int __dwFlags_native);
1085public static partial bool CryptSignHash(global::System.Security.Cryptography.SafeHashHandle hHash, global::Interop.Advapi32.KeySpec dwKeySpec, string szDescription, global::Interop.Advapi32.CryptSignAndVerifyHashFlags dwFlags, byte[] pbSignature, ref int pdwSigLen)
1123static extern unsafe int __PInvoke(nint __hHash_native, global::Interop.Advapi32.KeySpec __dwKeySpec_native, ushort* __szDescription_native, global::Interop.Advapi32.CryptSignAndVerifyHashFlags __dwFlags_native, byte* __pbSignature_native, int* __pdwSigLen_native);
1133public static partial bool CryptVerifySignature(global::System.Security.Cryptography.SafeHashHandle hHash, byte[] pbSignature, int dwSigLen, global::System.Security.Cryptography.SafeCapiKeyHandle hPubKey, string szDescription, global::Interop.Advapi32.CryptSignAndVerifyHashFlags dwFlags)
1175static extern unsafe int __PInvoke(nint __hHash_native, byte* __pbSignature_native, int __dwSigLen_native, nint __hPubKey_native, ushort* __szDescription_native, global::Interop.Advapi32.CryptSignAndVerifyHashFlags __dwFlags_native);
1187public static partial global::Interop.BCrypt.NTSTATUS BCryptOpenAlgorithmProvider(out global::Internal.NativeCrypto.SafeAlgorithmHandle phAlgorithm, string pszAlgId, string pszImplementation, int dwFlags)
1194global::Interop.BCrypt.NTSTATUS __retVal = default;
1223static extern unsafe global::Interop.BCrypt.NTSTATUS __PInvoke(nint* __phAlgorithm_native, ushort* __pszAlgId_native, ushort* __pszImplementation_native, int __dwFlags_native);
1236public static partial global::Interop.BCrypt.NTSTATUS BCryptSetProperty(global::Internal.NativeCrypto.SafeAlgorithmHandle hObject, string pszProperty, string pbInput, int cbInput, int dwFlags)
1241global::Interop.BCrypt.NTSTATUS __retVal = default;
1266static extern unsafe global::Interop.BCrypt.NTSTATUS __PInvoke(nint __hObject_native, ushort* __pszProperty_native, ushort* __pbInput_native, int __cbInput_native, int __dwFlags_native);
1279private static partial global::Interop.BCrypt.NTSTATUS BCryptSetIntPropertyPrivate(global::Microsoft.Win32.SafeHandles.SafeBCryptHandle hObject, string pszProperty, ref int pdwInput, int cbInput, int dwFlags)
1284global::Interop.BCrypt.NTSTATUS __retVal = default;
1309static extern unsafe global::Interop.BCrypt.NTSTATUS __PInvoke(nint __hObject_native, ushort* __pszProperty_native, int* __pdwInput_native, int __cbInput_native, int __dwFlags_native);
1322public static partial global::Interop.BCrypt.NTSTATUS BCryptSetProperty(global::Microsoft.Win32.SafeHandles.SafeBCryptHandle hObject, string pszProperty, global::System.ReadOnlySpan<byte> pbInput, int cbInput, int dwFlags)
1327global::Interop.BCrypt.NTSTATUS __retVal = default;
1352static extern unsafe global::Interop.BCrypt.NTSTATUS __PInvoke(nint __hObject_native, ushort* __pszProperty_native, byte* __pbInput_native, int __cbInput_native, int __dwFlags_native);
1379internal static extern partial global::Interop.BCrypt.NTSTATUS BCryptCloseAlgorithmProvider(nint hAlgorithm, int dwFlags);
1387internal static partial global::Interop.BCrypt.NTSTATUS BCryptCreateHash(global::Microsoft.Win32.SafeHandles.SafeBCryptAlgorithmHandle hAlgorithm, out global::Microsoft.Win32.SafeHandles.SafeBCryptHashHandle phHash, nint pbHashObject, int cbHashObject, global::System.ReadOnlySpan<byte> secret, int cbSecret, global::Interop.BCrypt.BCryptCreateHashFlags dwFlags)
1395global::Interop.BCrypt.NTSTATUS __retVal = default;
1430static extern unsafe global::Interop.BCrypt.NTSTATUS __PInvoke(nint __hAlgorithm_native, nint* __phHash_native, nint __pbHashObject_native, int __cbHashObject_native, byte* __secret_native, int __cbSecret_native, global::Interop.BCrypt.BCryptCreateHashFlags __dwFlags_native);
1440internal static partial global::Interop.BCrypt.NTSTATUS BCryptCreateHash(nuint hAlgorithm, out global::Microsoft.Win32.SafeHandles.SafeBCryptHashHandle phHash, nint pbHashObject, int cbHashObject, global::System.ReadOnlySpan<byte> secret, int cbSecret, global::Interop.BCrypt.BCryptCreateHashFlags dwFlags)
1447global::Interop.BCrypt.NTSTATUS __retVal = default;
1475static extern unsafe global::Interop.BCrypt.NTSTATUS __PInvoke(nuint __hAlgorithm_native, nint* __phHash_native, nint __pbHashObject_native, int __cbHashObject_native, byte* __secret_native, int __cbSecret_native, global::Interop.BCrypt.BCryptCreateHashFlags __dwFlags_native);
1485private static unsafe partial global::Interop.BCrypt.NTSTATUS BCryptDecapsulate(global::Microsoft.Win32.SafeHandles.SafeBCryptKeyHandle hKey, byte* pbCipherText, uint cbCipherText, byte* pbSecretKey, uint cbSecretKey, out uint pcbSecretKey, uint dwFlags)
1491global::Interop.BCrypt.NTSTATUS __retVal = default;
1515static extern unsafe global::Interop.BCrypt.NTSTATUS __PInvoke(nint __hKey_native, byte* __pbCipherText_native, uint __cbCipherText_native, byte* __pbSecretKey_native, uint __cbSecretKey_native, uint* __pcbSecretKey_native, uint __dwFlags_native);
1525private static unsafe partial global::Interop.BCrypt.NTSTATUS BCryptEncapsulate(global::Microsoft.Win32.SafeHandles.SafeBCryptKeyHandle hKey, byte* pbSecretKey, uint cbSecretKey, out uint pcbSecretKey, byte* pbCipherText, uint cbCipherText, out uint pcbCipherText, uint dwFlags)
1532global::Interop.BCrypt.NTSTATUS __retVal = default;
1557static extern unsafe global::Interop.BCrypt.NTSTATUS __PInvoke(nint __hKey_native, byte* __pbSecretKey_native, uint __cbSecretKey_native, uint* __pcbSecretKey_native, byte* __pbCipherText_native, uint __cbCipherText_native, uint* __pcbCipherText_native, uint __dwFlags_native);
1567private static unsafe partial global::Interop.BCrypt.NTSTATUS BCryptDeriveKey(global::Microsoft.Win32.SafeHandles.SafeBCryptSecretHandle hSharedSecret, string pwszKDF, ref readonly global::Interop.BCrypt.BCryptBufferDesc pParameterList, byte* pbDerivedKey, uint cbDerivedKey, out uint pcbResult, uint dwFlags)
1573global::Interop.BCrypt.NTSTATUS __retVal = default;
1582fixed (global::Interop.BCrypt.BCryptBufferDesc* __pParameterList_native = &pParameterList)
1599static extern unsafe global::Interop.BCrypt.NTSTATUS __PInvoke(nint __hSharedSecret_native, ushort* __pwszKDF_native, global::Interop.BCrypt.BCryptBufferDesc* __pParameterList_native, byte* __pbDerivedKey_native, uint __cbDerivedKey_native, uint* __pcbResult_native, uint __dwFlags_native);
1609internal static extern partial global::Interop.BCrypt.NTSTATUS BCryptDestroyHash(nint hHash);
1617internal static extern partial global::Interop.BCrypt.NTSTATUS BCryptDestroyKey(nint hKey);
1625internal static extern partial global::Interop.BCrypt.NTSTATUS BCryptDestroySecret(nint hSecret);
1633private static partial global::Interop.BCrypt.NTSTATUS BCryptDuplicateHash(global::Microsoft.Win32.SafeHandles.SafeBCryptHashHandle hHash, out global::Microsoft.Win32.SafeHandles.SafeBCryptHashHandle phNewHash, nint pbHashObject, int cbHashObject, int dwFlags)
1641global::Interop.BCrypt.NTSTATUS __retVal = default;
1674static extern unsafe global::Interop.BCrypt.NTSTATUS __PInvoke(nint __hHash_native, nint* __phNewHash_native, nint __pbHashObject_native, int __cbHashObject_native, int __dwFlags_native);
1684public static unsafe partial global::Interop.BCrypt.NTSTATUS BCryptEncrypt(global::Internal.NativeCrypto.SafeKeyHandle hKey, byte* pbInput, int cbInput, nint paddingInfo, byte[] pbIV, int cbIV, byte* pbOutput, int cbOutput, out int cbResult, int dwFlags)
1690global::Interop.BCrypt.NTSTATUS __retVal = default;
1715static extern unsafe global::Interop.BCrypt.NTSTATUS __PInvoke(nint __hKey_native, byte* __pbInput_native, int __cbInput_native, nint __paddingInfo_native, byte* __pbIV_native, int __cbIV_native, byte* __pbOutput_native, int __cbOutput_native, int* __cbResult_native, int __dwFlags_native);
1725public static unsafe partial global::Interop.BCrypt.NTSTATUS BCryptDecrypt(global::Internal.NativeCrypto.SafeKeyHandle hKey, byte* pbInput, int cbInput, nint paddingInfo, byte[] pbIV, int cbIV, byte* pbOutput, int cbOutput, out int cbResult, int dwFlags)
1731global::Interop.BCrypt.NTSTATUS __retVal = default;
1756static extern unsafe global::Interop.BCrypt.NTSTATUS __PInvoke(nint __hKey_native, byte* __pbInput_native, int __cbInput_native, nint __paddingInfo_native, byte* __pbIV_native, int __cbIV_native, byte* __pbOutput_native, int __cbOutput_native, int* __cbResult_native, int __dwFlags_native);
1766private static unsafe partial global::Interop.BCrypt.NTSTATUS BCryptEncrypt(global::Microsoft.Win32.SafeHandles.SafeBCryptKeyHandle hKey, byte* pbInput, int cbInput, void* paddingInfo, byte* pbIV, int cbIV, byte* pbOutput, int cbOutput, out int cbResult, global::Interop.BCrypt.BCryptEncryptFlags dwFlags)
1772global::Interop.BCrypt.NTSTATUS __retVal = default;
1796static extern unsafe global::Interop.BCrypt.NTSTATUS __PInvoke(nint __hKey_native, byte* __pbInput_native, int __cbInput_native, void* __paddingInfo_native, byte* __pbIV_native, int __cbIV_native, byte* __pbOutput_native, int __cbOutput_native, int* __cbResult_native, global::Interop.BCrypt.BCryptEncryptFlags __dwFlags_native);
1806private static unsafe partial global::Interop.BCrypt.NTSTATUS BCryptDecrypt(global::Microsoft.Win32.SafeHandles.SafeBCryptKeyHandle hKey, byte* pbInput, int cbInput, void* paddingInfo, byte* pbIV, int cbIV, byte* pbOutput, int cbOutput, out int cbResult, global::Interop.BCrypt.BCryptEncryptFlags dwFlags)
1812global::Interop.BCrypt.NTSTATUS __retVal = default;
1836static extern unsafe global::Interop.BCrypt.NTSTATUS __PInvoke(nint __hKey_native, byte* __pbInput_native, int __cbInput_native, void* __paddingInfo_native, byte* __pbIV_native, int __cbIV_native, byte* __pbOutput_native, int __cbOutput_native, int* __cbResult_native, global::Interop.BCrypt.BCryptEncryptFlags __dwFlags_native);
1846private static partial global::Interop.BCrypt.NTSTATUS BCryptExportKey(global::Microsoft.Win32.SafeHandles.SafeBCryptKeyHandle hKey, nint hExportKey, string pszBlobType, byte[] pbOutput, int cbOutput, out int pcbResult, int dwFlags)
1852global::Interop.BCrypt.NTSTATUS __retVal = default;
1878static extern unsafe global::Interop.BCrypt.NTSTATUS __PInvoke(nint __hKey_native, nint __hExportKey_native, ushort* __pszBlobType_native, byte* __pbOutput_native, int __cbOutput_native, int* __pcbResult_native, int __dwFlags_native);
1888private static unsafe partial global::Interop.BCrypt.NTSTATUS BCryptFinalizeKeyPair(global::Microsoft.Win32.SafeHandles.SafeBCryptKeyHandle hKey, uint dwFlags)
1893global::Interop.BCrypt.NTSTATUS __retVal = default;
1915static extern unsafe global::Interop.BCrypt.NTSTATUS __PInvoke(nint __hKey_native, uint __dwFlags_native);
1925internal static partial global::Interop.BCrypt.NTSTATUS BCryptFinishHash(global::Microsoft.Win32.SafeHandles.SafeBCryptHashHandle hHash, global::System.Span<byte> pbOutput, int cbOutput, int dwFlags)
1930global::Interop.BCrypt.NTSTATUS __retVal = default;
1954static extern unsafe global::Interop.BCrypt.NTSTATUS __PInvoke(nint __hHash_native, byte* __pbOutput_native, int __cbOutput_native, int __dwFlags_native);
1964internal static unsafe partial global::Interop.BCrypt.NTSTATUS BCryptFinishHash(global::Microsoft.Win32.SafeHandles.SafeBCryptHashHandle hHash, byte* pbOutput, int cbOutput, int dwFlags)
1969global::Interop.BCrypt.NTSTATUS __retVal = default;
1991static extern unsafe global::Interop.BCrypt.NTSTATUS __PInvoke(nint __hHash_native, byte* __pbOutput_native, int __cbOutput_native, int __dwFlags_native);
2001internal static unsafe extern partial global::Interop.BCrypt.NTSTATUS BCryptGenRandom(nint hAlgorithm, byte* pbBuffer, int cbBuffer, int dwFlags);
2009private static unsafe partial global::Interop.BCrypt.NTSTATUS BCryptGenerateKeyPair(global::Microsoft.Win32.SafeHandles.SafeBCryptAlgorithmHandle hAlgorithm, out global::Microsoft.Win32.SafeHandles.SafeBCryptKeyHandle phKey, int dwLength, uint dwFlags)
2017global::Interop.BCrypt.NTSTATUS __retVal = default;
2050static extern unsafe global::Interop.BCrypt.NTSTATUS __PInvoke(nint __hAlgorithm_native, nint* __phKey_native, int __dwLength_native, uint __dwFlags_native);
2060internal static unsafe partial global::Interop.BCrypt.NTSTATUS BCryptGenerateSymmetricKey(global::Microsoft.Win32.SafeHandles.SafeBCryptAlgorithmHandle hAlgorithm, out global::Microsoft.Win32.SafeHandles.SafeBCryptKeyHandle phKey, nint pbKeyObject, int cbKeyObject, byte* pbSecret, int cbSecret, uint dwFlags)
2068global::Interop.BCrypt.NTSTATUS __retVal = default;
2101static extern unsafe global::Interop.BCrypt.NTSTATUS __PInvoke(nint __hAlgorithm_native, nint* __phKey_native, nint __pbKeyObject_native, int __cbKeyObject_native, byte* __pbSecret_native, int __cbSecret_native, uint __dwFlags_native);
2111internal static unsafe partial global::Interop.BCrypt.NTSTATUS BCryptGenerateSymmetricKey(nuint hAlgorithm, out global::Microsoft.Win32.SafeHandles.SafeBCryptKeyHandle phKey, nint pbKeyObject, int cbKeyObject, byte* pbSecret, int cbSecret, uint dwFlags)
2118global::Interop.BCrypt.NTSTATUS __retVal = default;
2144static extern unsafe global::Interop.BCrypt.NTSTATUS __PInvoke(nuint __hAlgorithm_native, nint* __phKey_native, nint __pbKeyObject_native, int __cbKeyObject_native, byte* __pbSecret_native, int __cbSecret_native, uint __dwFlags_native);
2154internal static unsafe partial global::Interop.BCrypt.NTSTATUS BCryptGetProperty(global::Microsoft.Win32.SafeHandles.SafeBCryptHandle hObject, string pszProperty, void* pbOutput, int cbOutput, out int pcbResult, int dwFlags)
2160global::Interop.BCrypt.NTSTATUS __retVal = default;
2185static extern unsafe global::Interop.BCrypt.NTSTATUS __PInvoke(nint __hObject_native, ushort* __pszProperty_native, void* __pbOutput_native, int __cbOutput_native, int* __pcbResult_native, int __dwFlags_native);
2195internal static unsafe extern partial global::Interop.BCrypt.NTSTATUS BCryptHash(nuint hAlgorithm, byte* pbSecret, int cbSecret, byte* pbInput, int cbInput, byte* pbOutput, int cbOutput);
2203internal static partial global::Interop.BCrypt.NTSTATUS BCryptHashData(global::Microsoft.Win32.SafeHandles.SafeBCryptHashHandle hHash, global::System.ReadOnlySpan<byte> pbInput, int cbInput, int dwFlags)
2208global::Interop.BCrypt.NTSTATUS __retVal = default;
2232static extern unsafe global::Interop.BCrypt.NTSTATUS __PInvoke(nint __hHash_native, byte* __pbInput_native, int __cbInput_native, int __dwFlags_native);
2242private static unsafe partial global::Interop.BCrypt.NTSTATUS BCryptImportKey(global::Internal.NativeCrypto.SafeAlgorithmHandle hAlgorithm, nint hImportKey, string pszBlobType, out global::Internal.NativeCrypto.SafeKeyHandle hKey, nint pbKeyObject, int cbKeyObject, byte* pbInput, int cbInput, int dwFlags)
2250global::Interop.BCrypt.NTSTATUS __retVal = default;
2285static extern unsafe global::Interop.BCrypt.NTSTATUS __PInvoke(nint __hAlgorithm_native, nint __hImportKey_native, ushort* __pszBlobType_native, nint* __hKey_native, nint __pbKeyObject_native, int __cbKeyObject_native, byte* __pbInput_native, int __cbInput_native, int __dwFlags_native);
2295private static unsafe partial global::Interop.BCrypt.NTSTATUS BCryptImportKeyPair(global::Microsoft.Win32.SafeHandles.SafeBCryptAlgorithmHandle hAlgorithm, nint hImportKey, string pszBlobType, out global::Microsoft.Win32.SafeHandles.SafeBCryptKeyHandle phKey, byte* pbInput, int cbInput, uint dwFlags)
2303global::Interop.BCrypt.NTSTATUS __retVal = default;
2338static extern unsafe global::Interop.BCrypt.NTSTATUS __PInvoke(nint __hAlgorithm_native, nint __hImportKey_native, ushort* __pszBlobType_native, nint* __phKey_native, byte* __pbInput_native, int __cbInput_native, uint __dwFlags_native);
2348internal static unsafe partial global::Interop.BCrypt.NTSTATUS BCryptKeyDerivation(global::Microsoft.Win32.SafeHandles.SafeBCryptKeyHandle hKey, global::Interop.BCrypt.BCryptBufferDesc* pParameterList, byte* pbDerivedKey, int cbDerivedKey, out uint pcbResult, int dwFlags)
2354global::Interop.BCrypt.NTSTATUS __retVal = default;
2378static extern unsafe global::Interop.BCrypt.NTSTATUS __PInvoke(nint __hKey_native, global::Interop.BCrypt.BCryptBufferDesc* __pParameterList_native, byte* __pbDerivedKey_native, int __cbDerivedKey_native, uint* __pcbResult_native, int __dwFlags_native);
2388internal static partial global::Interop.BCrypt.NTSTATUS BCryptOpenAlgorithmProvider(out global::Microsoft.Win32.SafeHandles.SafeBCryptAlgorithmHandle phAlgorithm, string pszAlgId, string pszImplementation, global::Interop.BCrypt.BCryptOpenAlgorithmProviderFlags dwFlags)
2395global::Interop.BCrypt.NTSTATUS __retVal = default;
2424static extern unsafe global::Interop.BCrypt.NTSTATUS __PInvoke(nint* __phAlgorithm_native, ushort* __pszAlgId_native, ushort* __pszImplementation_native, global::Interop.BCrypt.BCryptOpenAlgorithmProviderFlags __dwFlags_native);
2434private static unsafe partial global::Interop.BCrypt.NTSTATUS BCryptSecretAgreement(global::Microsoft.Win32.SafeHandles.SafeBCryptKeyHandle hPrivKey, global::Microsoft.Win32.SafeHandles.SafeBCryptKeyHandle hPubKey, out global::Microsoft.Win32.SafeHandles.SafeBCryptSecretHandle phAgreedSecret, uint dwFlags)
2443global::Interop.BCrypt.NTSTATUS __retVal = default;
2480static extern unsafe global::Interop.BCrypt.NTSTATUS __PInvoke(nint __hPrivKey_native, nint __hPubKey_native, nint* __phAgreedSecret_native, uint __dwFlags_native);
2490internal static unsafe partial global::Interop.BCrypt.NTSTATUS BCryptSetProperty(global::Microsoft.Win32.SafeHandles.SafeBCryptHandle hObject, string pszProperty, void* pbInput, uint cbInput, uint dwFlags)
2495global::Interop.BCrypt.NTSTATUS __retVal = default;
2519static extern unsafe global::Interop.BCrypt.NTSTATUS __PInvoke(nint __hObject_native, ushort* __pszProperty_native, void* __pbInput_native, uint __cbInput_native, uint __dwFlags_native);
2529private static unsafe partial global::Interop.BCrypt.NTSTATUS BCryptSignHash(global::Microsoft.Win32.SafeHandles.SafeBCryptKeyHandle hKey, void* pPaddingInfo, byte* pbInput, int cbInput, byte* pbOutput, int cbOutput, out int pcbResult, global::Interop.BCrypt.BCryptSignVerifyFlags dwFlags)
2535global::Interop.BCrypt.NTSTATUS __retVal = default;
2559static extern unsafe global::Interop.BCrypt.NTSTATUS __PInvoke(nint __hKey_native, void* __pPaddingInfo_native, byte* __pbInput_native, int __cbInput_native, byte* __pbOutput_native, int __cbOutput_native, int* __pcbResult_native, global::Interop.BCrypt.BCryptSignVerifyFlags __dwFlags_native);
2569private static unsafe partial global::Interop.BCrypt.NTSTATUS BCryptVerifySignature(global::Microsoft.Win32.SafeHandles.SafeBCryptKeyHandle hKey, void* pPaddingInfo, byte* pbHash, int cbHash, byte* pbSignature, int cbSignature, global::Interop.BCrypt.BCryptSignVerifyFlags dwFlags)
2574global::Interop.BCrypt.NTSTATUS __retVal = default;
2596static extern unsafe global::Interop.BCrypt.NTSTATUS __PInvoke(nint __hKey_native, void* __pPaddingInfo_native, byte* __pbHash_native, int __cbHash_native, byte* __pbSignature_native, int __cbSignature_native, global::Interop.BCrypt.BCryptSignVerifyFlags __dwFlags_native);
2606internal static partial bool CertAddCertificateContextToStore(global::Microsoft.Win32.SafeHandles.SafeCertStoreHandle hCertStore, global::Microsoft.Win32.SafeHandles.SafeCertContextHandle pCertContext, global::Interop.Crypt32.CertStoreAddDisposition dwAddDisposition, nint ppStoreContext)
2645static extern unsafe int __PInvoke(nint __hCertStore_native, nint __pCertContext_native, global::Interop.Crypt32.CertStoreAddDisposition __dwAddDisposition_native, nint __ppStoreContext_native);
2655internal static partial bool CertAddCertificateLinkToStore(global::Microsoft.Win32.SafeHandles.SafeCertStoreHandle hCertStore, global::Microsoft.Win32.SafeHandles.SafeCertContextHandle pCertContext, global::Interop.Crypt32.CertStoreAddDisposition dwAddDisposition, nint ppStoreContext)
2694static extern unsafe int __PInvoke(nint __hCertStore_native, nint __pCertContext_native, global::Interop.Crypt32.CertStoreAddDisposition __dwAddDisposition_native, nint __ppStoreContext_native);
2733internal static partial bool CertControlStore(global::Microsoft.Win32.SafeHandles.SafeCertStoreHandle hCertStore, global::Interop.Crypt32.CertControlStoreFlags dwFlags, global::Interop.Crypt32.CertControlStoreType dwControlType, nint pvCtrlPara)
2767static extern unsafe int __PInvoke(nint __hCertStore_native, global::Interop.Crypt32.CertControlStoreFlags __dwFlags_native, global::Interop.Crypt32.CertControlStoreType __dwControlType_native, nint __pvCtrlPara_native);
2777internal static partial bool CertCreateCertificateChainEngine(ref global::Interop.Crypt32.CERT_CHAIN_ENGINE_CONFIG pConfig, out global::Microsoft.Win32.SafeHandles.SafeChainEngineHandle hChainEngineHandle)
2792fixed (global::Interop.Crypt32.CERT_CHAIN_ENGINE_CONFIG* __pConfig_native = &pConfig)
2818static extern unsafe int __PInvoke(global::Interop.Crypt32.CERT_CHAIN_ENGINE_CONFIG* __pConfig_native, nint* __hChainEngineHandle_native);
2828internal static unsafe partial bool CertDeleteCertificateFromStore(global::Interop.Crypt32.CERT_CONTEXT* pCertContext)
2847static extern unsafe int __PInvoke(global::Interop.Crypt32.CERT_CONTEXT* __pCertContext_native);
3041internal static unsafe partial global::Interop.Crypt32.CERT_CONTEXT* CertEnumCertificatesInStore(global::Microsoft.Win32.SafeHandles.SafeCertStoreHandle hCertStore, global::Interop.Crypt32.CERT_CONTEXT* pPrevCertContext)
3047global::Interop.Crypt32.CERT_CONTEXT* __retVal = default;
3072static extern unsafe global::Interop.Crypt32.CERT_CONTEXT* __PInvoke(nint __hCertStore_native, global::Interop.Crypt32.CERT_CONTEXT* __pPrevCertContext_native);
3082internal 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)
3126static 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);
3136internal static unsafe partial global::Interop.Crypt32.CERT_EXTENSION* CertFindExtension(string pszObjId, int cExtensions, nint rgExtensions)
3142global::Interop.Crypt32.CERT_EXTENSION* __retVal = default;
3167static extern unsafe global::Interop.Crypt32.CERT_EXTENSION* __PInvoke(byte* __pszObjId_native, int __cExtensions_native, nint __rgExtensions_native);
3209internal 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)
3231fixed (global::Interop.Crypt32.CERT_CHAIN_PARA* __pChainPara_native = &pChainPara)
3263static 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);
3273internal static partial bool CertGetCertificateContextProperty(global::Microsoft.Win32.SafeHandles.SafeCertContextHandle pCertContext, global::Interop.Crypt32.CertContextPropId dwPropId, byte[] pvData, ref int pcbData)
3310static extern unsafe int __PInvoke(nint __pCertContext_native, global::Interop.Crypt32.CertContextPropId __dwPropId_native, byte* __pvData_native, int* __pcbData_native);
3320internal static unsafe partial bool CertGetCertificateContextPropertyPtr(global::Microsoft.Win32.SafeHandles.SafeCertContextHandle pCertContext, global::Interop.Crypt32.CertContextPropId dwPropId, byte* pvData, ref int pcbData)
3356static extern unsafe int __PInvoke(nint __pCertContext_native, global::Interop.Crypt32.CertContextPropId __dwPropId_native, byte* __pvData_native, int* __pcbData_native);
3366internal static partial bool CertGetCertificateContextProperty(global::Microsoft.Win32.SafeHandles.SafeCertContextHandle pCertContext, global::Interop.Crypt32.CertContextPropId dwPropId, out nint pvData, ref int pcbData)
3404static extern unsafe int __PInvoke(nint __pCertContext_native, global::Interop.Crypt32.CertContextPropId __dwPropId_native, nint* __pvData_native, int* __pcbData_native);
3414internal 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)
3431fixed (global::Interop.Crypt32.DATA_BLOB* __pvData_native = &pvData)
3452static extern unsafe int __PInvoke(nint __pCertContext_native, global::Interop.Crypt32.CertContextPropId __dwPropId_native, global::Interop.Crypt32.DATA_BLOB* __pvData_native, int* __pcbData_native);
3462internal static unsafe partial bool CertGetCertificateContextPropertyString(global::Microsoft.Win32.SafeHandles.SafeCertContextHandle pCertContext, global::Interop.Crypt32.CertContextPropId dwPropId, byte* pvData, ref uint pcbData)
3498static extern unsafe int __PInvoke(nint __pCertContext_native, global::Interop.Crypt32.CertContextPropId __dwPropId_native, byte* __pvData_native, uint* __pcbData_native);
3508internal static unsafe partial bool CertGetIntendedKeyUsage(global::Interop.Crypt32.CertEncodingType dwCertEncodingType, global::Interop.Crypt32.CERT_INFO* pCertInfo, out global::Interop.Crypt32.X509KeyUsageFlags pbKeyUsage, int cbKeyUsage)
3517fixed (global::Interop.Crypt32.X509KeyUsageFlags* __pbKeyUsage_native = &pbKeyUsage)
3530static 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);
3540internal 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)
3554fixed (global::Interop.Crypt32.CertNameStringType* __pvTypePara_native = &pvTypePara)
3573static 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);
3671internal 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)
3686fixed (global::Interop.Crypt32.CERT_CHAIN_POLICY_STATUS* __pPolicyStatus_native = &pPolicyStatus)
3687fixed (global::Interop.Crypt32.CERT_CHAIN_POLICY_PARA* __pPolicyPara_native = &pPolicyPara)
3708static 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);
3744internal static partial global::Microsoft.Win32.SafeHandles.SafeCertStoreHandle CertOpenStore(nint lpszStoreProvider, global::Interop.Crypt32.CertEncodingType dwMsgAndCertEncodingType, nint hCryptProv, global::Interop.Crypt32.CertStoreFlags dwFlags, string pvPara)
3782static 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);
3792public 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)
3807fixed (global::Interop.Crypt32.DATA_BLOB* __pvSaveToPara_native = &pvSaveToPara)
3828static 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);
3885internal 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)
3919static 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);
3929internal 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)
3948static 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);
3958internal 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)
3992static 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);
4002internal 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)
4041static extern unsafe int __PInvoke(nint __pCertContext_native, global::Interop.Crypt32.CertContextPropId __dwPropId_native, global::Interop.Crypt32.CertSetPropertyFlags __dwFlags_native, nint __keyHandle_native);
4051internal static unsafe partial bool CertSetCertificateContextProperty(nint pCertContext, global::Interop.Crypt32.CertContextPropId dwPropId, global::Interop.Crypt32.CertSetPropertyFlags dwFlags, global::Microsoft.Win32.SafeHandles.SafeNCryptKeyHandle keyHandle)
4085static extern unsafe int __PInvoke(nint __pCertContext_native, global::Interop.Crypt32.CertContextPropId __dwPropId_native, global::Interop.Crypt32.CertSetPropertyFlags __dwFlags_native, nint __keyHandle_native);
4095internal 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)
4118static 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);
4128internal static unsafe partial int CertVerifyTimeValidity(ref global::Interop.Crypt32.FILETIME pTimeToVerify, global::Interop.Crypt32.CERT_INFO* pCertInfo)
4135fixed (global::Interop.Crypt32.FILETIME* __pTimeToVerify_native = &pTimeToVerify)
4146static extern unsafe int __PInvoke(global::Interop.Crypt32.FILETIME* __pTimeToVerify_native, global::Interop.Crypt32.CERT_INFO* __pCertInfo_native);
4156public 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)
4178fixed (global::Interop.Crypt32.CryptKeySpec* __pdwKeySpec_native = &pdwKeySpec)
4209static 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);
4219internal 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)
4242static 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);
4252internal 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)
4274static 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);
4284internal 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)
4305static 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);
4315internal 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)
4352static 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);
4362internal static unsafe partial bool CryptEncodeObject(global::Interop.Crypt32.CertEncodingType dwCertEncodingType, nint lpszStructType, void* pvStructInfo, byte[] pbEncoded, ref int pcbEncoded)
4384static extern unsafe int __PInvoke(global::Interop.Crypt32.CertEncodingType __dwCertEncodingType_native, nint __lpszStructType_native, void* __pvStructInfo_native, byte* __pbEncoded_native, int* __pcbEncoded_native);
4394internal static unsafe partial bool CryptEncodeObject(global::Interop.Crypt32.CertEncodingType dwCertEncodingType, string lpszStructType, void* pvStructInfo, byte[] pbEncoded, ref int pcbEncoded)
4431static extern unsafe int __PInvoke(global::Interop.Crypt32.CertEncodingType __dwCertEncodingType_native, byte* __lpszStructType_native, void* __pvStructInfo_native, byte* __pbEncoded_native, int* __pcbEncoded_native);
4473internal 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)
4512static 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);
4551internal static partial bool CryptMsgGetParam(global::Microsoft.Win32.SafeHandles.SafeCryptMsgHandle hCryptMsg, global::Interop.Crypt32.CryptMsgParamType dwParamType, int dwIndex, out int pvData, ref int pcbData)
4589static extern unsafe int __PInvoke(nint __hCryptMsg_native, global::Interop.Crypt32.CryptMsgParamType __dwParamType_native, int __dwIndex_native, int* __pvData_native, int* __pcbData_native);
4599internal static unsafe partial bool CryptMsgGetParam(global::Microsoft.Win32.SafeHandles.SafeCryptMsgHandle hCryptMsg, global::Interop.Crypt32.CryptMsgParamType dwParamType, int dwIndex, byte* pvData, ref int pcbData)
4635static extern unsafe int __PInvoke(nint __hCryptMsg_native, global::Interop.Crypt32.CryptMsgParamType __dwParamType_native, int __dwIndex_native, byte* __pvData_native, int* __pcbData_native);
4645internal 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)
4662fixed (global::Interop.Crypt32.CryptMsgType* __pvData_native = &pvData)
4683static 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);
4693internal static partial bool CryptMsgGetParam(global::Microsoft.Win32.SafeHandles.SafeCryptMsgHandle hCryptMsg, global::Interop.Crypt32.CryptMsgParamType dwParamType, int dwIndex, nint pvData, ref int pcbData)
4729static extern unsafe int __PInvoke(nint __hCryptMsg_native, global::Interop.Crypt32.CryptMsgParamType __dwParamType_native, int __dwIndex_native, nint __pvData_native, int* __pcbData_native);
4739internal 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)
4763fixed (global::Interop.Crypt32.FormatType* __pdwFormatType_native = &pdwFormatType)
4764fixed (global::Interop.Crypt32.ContentType* __pdwContentType_native = &pdwContentType)
4765fixed (global::Interop.Crypt32.CertEncodingType* __pdwMsgAndCertEncodingType_native = &pdwMsgAndCertEncodingType)
4797static 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);
4807internal 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)
4816fixed (global::Interop.Crypt32.ContentType* __pdwContentType_native = &pdwContentType)
4829static 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);
4839internal 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)
4855fixed (global::Interop.Crypt32.ContentType* __pdwContentType_native = &pdwContentType)
4881static 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);
4891internal 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)
4907fixed (global::Interop.Crypt32.ContentType* __pdwContentType_native = &pdwContentType)
4933static 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);
4943private static unsafe extern partial global::Interop.Crypt32.CRYPT_OID_INFO* CryptFindOIDInfo(global::Interop.Crypt32.CryptOidInfoKeyType dwKeyType, nint pvKey, global::System.Security.Cryptography.OidGroup @group);
4951private static unsafe extern partial global::Interop.Crypt32.CRYPT_OID_INFO* CryptFindOIDInfo(global::Interop.Crypt32.CryptOidInfoKeyType dwKeyType, void* pvKey, global::System.Security.Cryptography.OidGroup @group);
4959internal 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)
4977fixed (global::Interop.Crypt32.DATA_BLOB* __pPFX_native = &pPFX)
5000static 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);
5010internal 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)
5027fixed (global::Interop.Crypt32.DATA_BLOB* __pPFX_native = &pPFX)
5056static extern unsafe nint __PInvoke(global::Interop.Crypt32.DATA_BLOB* __pPFX_native, nint __password_native, global::Interop.Crypt32.PfxCertStoreFlags __dwFlags_native);
5066internal static unsafe partial global::Microsoft.Win32.SafeHandles.SafeCertStoreHandle PFXImportCertStore(ref global::Interop.Crypt32.DATA_BLOB pPFX, char* password, global::Interop.Crypt32.PfxCertStoreFlags dwFlags)
5079fixed (global::Interop.Crypt32.DATA_BLOB* __pPFX_native = &pPFX)
5104static extern unsafe nint __PInvoke(global::Interop.Crypt32.DATA_BLOB* __pPFX_native, char* __password_native, global::Interop.Crypt32.PfxCertStoreFlags __dwFlags_native);
5140internal static unsafe partial global::Interop.NCrypt.ErrorCode NCryptEncrypt(global::Microsoft.Win32.SafeHandles.SafeNCryptKeyHandle hKey, global::System.ReadOnlySpan<byte> pbInput, int cbInput, void* pPaddingInfo, global::System.Span<byte> pbOutput, int cbOutput, out int pcbResult, global::Interop.NCrypt.AsymmetricPaddingMode dwFlags)
5146global::Interop.NCrypt.ErrorCode __retVal = default;
5172static extern unsafe global::Interop.NCrypt.ErrorCode __PInvoke(nint __hKey_native, byte* __pbInput_native, int __cbInput_native, void* __pPaddingInfo_native, byte* __pbOutput_native, int __cbOutput_native, int* __pcbResult_native, global::Interop.NCrypt.AsymmetricPaddingMode __dwFlags_native);
5182internal static unsafe partial global::Interop.NCrypt.ErrorCode NCryptDecrypt(global::Microsoft.Win32.SafeHandles.SafeNCryptKeyHandle hKey, global::System.ReadOnlySpan<byte> pbInput, int cbInput, void* pPaddingInfo, global::System.Span<byte> pbOutput, int cbOutput, out int pcbResult, global::Interop.NCrypt.AsymmetricPaddingMode dwFlags)
5188global::Interop.NCrypt.ErrorCode __retVal = default;
5214static extern unsafe global::Interop.NCrypt.ErrorCode __PInvoke(nint __hKey_native, byte* __pbInput_native, int __cbInput_native, void* __pPaddingInfo_native, byte* __pbOutput_native, int __cbOutput_native, int* __pcbResult_native, global::Interop.NCrypt.AsymmetricPaddingMode __dwFlags_native);
5224internal static partial global::Interop.NCrypt.ErrorCode NCryptOpenKey(global::Microsoft.Win32.SafeHandles.SafeNCryptProviderHandle hProvider, out global::Microsoft.Win32.SafeHandles.SafeNCryptKeyHandle phKey, string pszKeyName, int dwLegacyKeySpec, global::System.Security.Cryptography.CngKeyOpenOptions dwFlags)
5232global::Interop.NCrypt.ErrorCode __retVal = default;
5267static extern unsafe global::Interop.NCrypt.ErrorCode __PInvoke(nint __hProvider_native, nint* __phKey_native, ushort* __pszKeyName_native, int __dwLegacyKeySpec_native, global::System.Security.Cryptography.CngKeyOpenOptions __dwFlags_native);
5277internal static partial global::Interop.NCrypt.ErrorCode NCryptImportKey(global::Microsoft.Win32.SafeHandles.SafeNCryptProviderHandle hProvider, nint hImportKey, string pszBlobType, nint pParameterList, out global::Microsoft.Win32.SafeHandles.SafeNCryptKeyHandle phKey, ref byte pbData, int cbData, int dwFlags)
5285global::Interop.NCrypt.ErrorCode __retVal = default;
5321static extern unsafe global::Interop.NCrypt.ErrorCode __PInvoke(nint __hProvider_native, nint __hImportKey_native, ushort* __pszBlobType_native, nint __pParameterList_native, nint* __phKey_native, byte* __pbData_native, int __cbData_native, int __dwFlags_native);
5331internal static partial global::Interop.NCrypt.ErrorCode NCryptImportKey(global::Microsoft.Win32.SafeHandles.SafeNCryptProviderHandle hProvider, nint hImportKey, string pszBlobType, ref global::Interop.NCrypt.NCryptBufferDesc pParameterList, out global::Microsoft.Win32.SafeHandles.SafeNCryptKeyHandle phKey, ref byte pbData, int cbData, int dwFlags)
5339global::Interop.NCrypt.ErrorCode __retVal = default;
5349fixed (global::Interop.NCrypt.NCryptBufferDesc* __pParameterList_native = &pParameterList)
5376static extern unsafe global::Interop.NCrypt.ErrorCode __PInvoke(nint __hProvider_native, nint __hImportKey_native, ushort* __pszBlobType_native, global::Interop.NCrypt.NCryptBufferDesc* __pParameterList_native, nint* __phKey_native, byte* __pbData_native, int __cbData_native, int __dwFlags_native);
5386internal static partial global::Interop.NCrypt.ErrorCode NCryptExportKey(global::Microsoft.Win32.SafeHandles.SafeNCryptKeyHandle hKey, nint hExportKey, string pszBlobType, nint pParameterList, byte[] pbOutput, int cbOutput, out int pcbResult, int dwFlags)
5392global::Interop.NCrypt.ErrorCode __retVal = default;
5418static extern unsafe global::Interop.NCrypt.ErrorCode __PInvoke(nint __hKey_native, nint __hExportKey_native, ushort* __pszBlobType_native, nint __pParameterList_native, byte* __pbOutput_native, int __cbOutput_native, int* __pcbResult_native, int __dwFlags_native);
5428internal static partial global::Interop.NCrypt.ErrorCode NCryptExportKey(global::Microsoft.Win32.SafeHandles.SafeNCryptKeyHandle hKey, nint hExportKey, string pszBlobType, nint pParameterList, ref byte pbOutput, int cbOutput, out int pcbResult, int dwFlags)
5434global::Interop.NCrypt.ErrorCode __retVal = default;
5460static extern unsafe global::Interop.NCrypt.ErrorCode __PInvoke(nint __hKey_native, nint __hExportKey_native, ushort* __pszBlobType_native, nint __pParameterList_native, byte* __pbOutput_native, int __cbOutput_native, int* __pcbResult_native, int __dwFlags_native);
5470private static unsafe partial global::Interop.NCrypt.ErrorCode NCryptExportKey(global::Microsoft.Win32.SafeHandles.SafeNCryptKeyHandle hKey, nint hExportKey, string pszBlobType, nint pParameterList, byte* pbOutput, int cbOutput, out int pcbResult, int dwFlags)
5476global::Interop.NCrypt.ErrorCode __retVal = default;
5501static extern unsafe global::Interop.NCrypt.ErrorCode __PInvoke(nint __hKey_native, nint __hExportKey_native, ushort* __pszBlobType_native, nint __pParameterList_native, byte* __pbOutput_native, int __cbOutput_native, int* __pcbResult_native, int __dwFlags_native);
5511internal static partial global::Interop.NCrypt.ErrorCode NCryptExportKey(global::Microsoft.Win32.SafeHandles.SafeNCryptKeyHandle hKey, nint hExportKey, string pszBlobType, ref global::Interop.NCrypt.NCryptBufferDesc pParameterList, ref byte pbOutput, int cbOutput, out int pcbResult, int dwFlags)
5517global::Interop.NCrypt.ErrorCode __retVal = default;
5527fixed (global::Interop.NCrypt.NCryptBufferDesc* __pParameterList_native = &pParameterList)
5544static extern unsafe global::Interop.NCrypt.ErrorCode __PInvoke(nint __hKey_native, nint __hExportKey_native, ushort* __pszBlobType_native, global::Interop.NCrypt.NCryptBufferDesc* __pParameterList_native, byte* __pbOutput_native, int __cbOutput_native, int* __pcbResult_native, int __dwFlags_native);
5554internal static partial global::Interop.NCrypt.ErrorCode NCryptDeleteKey(global::Microsoft.Win32.SafeHandles.SafeNCryptKeyHandle hKey, int dwFlags)
5559global::Interop.NCrypt.ErrorCode __retVal = default;
5581static extern unsafe global::Interop.NCrypt.ErrorCode __PInvoke(nint __hKey_native, int __dwFlags_native);
5591internal static partial global::Interop.NCrypt.ErrorCode NCryptCreatePersistedKey(global::Microsoft.Win32.SafeHandles.SafeNCryptProviderHandle hProvider, out global::Microsoft.Win32.SafeHandles.SafeNCryptKeyHandle phKey, string pszAlgId, string pszKeyName, int dwLegacyKeySpec, global::System.Security.Cryptography.CngKeyCreationOptions dwFlags)
5599global::Interop.NCrypt.ErrorCode __retVal = default;
5635static extern unsafe global::Interop.NCrypt.ErrorCode __PInvoke(nint __hProvider_native, nint* __phKey_native, ushort* __pszAlgId_native, ushort* __pszKeyName_native, int __dwLegacyKeySpec_native, global::System.Security.Cryptography.CngKeyCreationOptions __dwFlags_native);
5645internal static partial global::Interop.NCrypt.ErrorCode NCryptFinalizeKey(global::Microsoft.Win32.SafeHandles.SafeNCryptKeyHandle hKey, int dwFlags)
5650global::Interop.NCrypt.ErrorCode __retVal = default;
5672static extern unsafe global::Interop.NCrypt.ErrorCode __PInvoke(nint __hKey_native, int __dwFlags_native);
5682private static unsafe partial global::Interop.NCrypt.ErrorCode NCryptDecapsulate(global::Microsoft.Win32.SafeHandles.SafeNCryptKeyHandle hKey, byte* pbCipherText, uint cbCipherText, byte* pbSecretKey, uint cbSecretKey, out uint pcbSecretKey, uint dwFlags)
5688global::Interop.NCrypt.ErrorCode __retVal = default;
5712static extern unsafe global::Interop.NCrypt.ErrorCode __PInvoke(nint __hKey_native, byte* __pbCipherText_native, uint __cbCipherText_native, byte* __pbSecretKey_native, uint __cbSecretKey_native, uint* __pcbSecretKey_native, uint __dwFlags_native);
5722private static unsafe partial global::Interop.NCrypt.ErrorCode NCryptEncapsulate(global::Microsoft.Win32.SafeHandles.SafeNCryptKeyHandle hKey, byte* pbSecretKey, uint cbSecretKey, out uint pcbSecretKey, byte* pbCipherText, uint cbCipherText, out uint pcbCipherText, uint dwFlags)
5729global::Interop.NCrypt.ErrorCode __retVal = default;
5754static extern unsafe global::Interop.NCrypt.ErrorCode __PInvoke(nint __hKey_native, byte* __pbSecretKey_native, uint __cbSecretKey_native, uint* __pcbSecretKey_native, byte* __pbCipherText_native, uint __cbCipherText_native, uint* __pcbCipherText_native, uint __dwFlags_native);
5764private static partial global::Interop.NCrypt.ErrorCode NCryptDeriveKey(global::Microsoft.Win32.SafeHandles.SafeNCryptSecretHandle hSharedSecret, string pwszKDF, ref global::Interop.NCrypt.NCryptBufferDesc pParameterList, byte[] pbDerivedKey, int cbDerivedKey, out int pcbResult, global::Interop.NCrypt.SecretAgreementFlags dwFlags)
5770global::Interop.NCrypt.ErrorCode __retVal = default;
5780fixed (global::Interop.NCrypt.NCryptBufferDesc* __pParameterList_native = &pParameterList)
5797static extern unsafe global::Interop.NCrypt.ErrorCode __PInvoke(nint __hSharedSecret_native, ushort* __pwszKDF_native, global::Interop.NCrypt.NCryptBufferDesc* __pParameterList_native, byte* __pbDerivedKey_native, int __cbDerivedKey_native, int* __pcbResult_native, global::Interop.NCrypt.SecretAgreementFlags __dwFlags_native);
5807private static partial global::Interop.NCrypt.ErrorCode NCryptDeriveKey(global::Microsoft.Win32.SafeHandles.SafeNCryptSecretHandle hSharedSecret, string pwszKDF, nint pParameterList, byte* pbDerivedKey, int cbDerivedKey, out int pcbResult, global::Interop.NCrypt.SecretAgreementFlags dwFlags)
5813global::Interop.NCrypt.ErrorCode __retVal = default;
5838static extern unsafe global::Interop.NCrypt.ErrorCode __PInvoke(nint __hSharedSecret_native, ushort* __pwszKDF_native, nint __pParameterList_native, byte* __pbDerivedKey_native, int __cbDerivedKey_native, int* __pcbResult_native, global::Interop.NCrypt.SecretAgreementFlags __dwFlags_native);
5848private static partial global::Interop.NCrypt.ErrorCode NCryptSecretAgreement(global::Microsoft.Win32.SafeHandles.SafeNCryptKeyHandle hPrivKey, global::Microsoft.Win32.SafeHandles.SafeNCryptKeyHandle hPubKey, out global::Microsoft.Win32.SafeHandles.SafeNCryptSecretHandle phSecret, int dwFlags)
5857global::Interop.NCrypt.ErrorCode __retVal = default;
5894static extern unsafe global::Interop.NCrypt.ErrorCode __PInvoke(nint __hPrivKey_native, nint __hPubKey_native, nint* __phSecret_native, int __dwFlags_native);
5904internal static extern partial global::Interop.NCrypt.ErrorCode NCryptFreeObject(nint hObject);
5912internal static partial global::Interop.NCrypt.ErrorCode NCryptOpenStorageProvider(out global::Microsoft.Win32.SafeHandles.SafeNCryptProviderHandle phProvider, string pszProviderName, int dwFlags)
5919global::Interop.NCrypt.ErrorCode __retVal = default;
5947static extern unsafe global::Interop.NCrypt.ErrorCode __PInvoke(nint* __phProvider_native, ushort* __pszProviderName_native, int __dwFlags_native);
5957internal static unsafe partial global::Interop.NCrypt.ErrorCode NCryptGetProperty(global::Microsoft.Win32.SafeHandles.SafeNCryptHandle hObject, string pszProperty, void* pbOutput, int cbOutput, out int pcbResult, global::System.Security.Cryptography.CngPropertyOptions dwFlags)
5963global::Interop.NCrypt.ErrorCode __retVal = default;
5988static extern unsafe global::Interop.NCrypt.ErrorCode __PInvoke(nint __hObject_native, ushort* __pszProperty_native, void* __pbOutput_native, int __cbOutput_native, int* __pcbResult_native, global::System.Security.Cryptography.CngPropertyOptions __dwFlags_native);
5998internal static unsafe partial global::Interop.NCrypt.ErrorCode NCryptSetProperty(global::Microsoft.Win32.SafeHandles.SafeNCryptHandle hObject, string pszProperty, void* pbInput, int cbInput, global::System.Security.Cryptography.CngPropertyOptions dwFlags)
6003global::Interop.NCrypt.ErrorCode __retVal = default;
6027static extern unsafe global::Interop.NCrypt.ErrorCode __PInvoke(nint __hObject_native, ushort* __pszProperty_native, void* __pbInput_native, int __cbInput_native, global::System.Security.Cryptography.CngPropertyOptions __dwFlags_native);
6037private static unsafe partial global::Interop.NCrypt.ErrorCode NCryptSignHash(global::Microsoft.Win32.SafeHandles.SafeNCryptKeyHandle hKey, void* pPaddingInfo, byte* pbHashValue, int cbHashValue, byte* pbSignature, int cbSignature, out int pcbResult, global::Interop.NCrypt.AsymmetricPaddingMode dwFlags)
6043global::Interop.NCrypt.ErrorCode __retVal = default;
6067static extern unsafe global::Interop.NCrypt.ErrorCode __PInvoke(nint __hKey_native, void* __pPaddingInfo_native, byte* __pbHashValue_native, int __cbHashValue_native, byte* __pbSignature_native, int __cbSignature_native, int* __pcbResult_native, global::Interop.NCrypt.AsymmetricPaddingMode __dwFlags_native);
6077private static unsafe partial global::Interop.NCrypt.ErrorCode NCryptVerifySignature(global::Microsoft.Win32.SafeHandles.SafeNCryptKeyHandle hKey, void* pPaddingInfo, byte* pbHashValue, int cbHashValue, byte* pbSignature, int cbSignature, global::Interop.NCrypt.AsymmetricPaddingMode dwFlags)
6082global::Interop.NCrypt.ErrorCode __retVal = default;
6104static extern unsafe global::Interop.NCrypt.ErrorCode __PInvoke(nint __hKey_native, void* __pPaddingInfo_native, byte* __pbHashValue_native, int __cbHashValue_native, byte* __pbSignature_native, int __cbSignature_native, global::Interop.NCrypt.AsymmetricPaddingMode __dwFlags_native);
src\runtime\src\libraries\Common\src\Interop\Windows\NCrypt\Interop.Keys.cs (10)
21[LibraryImport(Interop.Libraries.NCrypt, StringMarshalling = StringMarshalling.Utf16)]
25[LibraryImport(Interop.Libraries.NCrypt, StringMarshalling = StringMarshalling.Utf16)]
29[LibraryImport(Interop.Libraries.NCrypt, StringMarshalling = StringMarshalling.Utf16)]
33[LibraryImport(Interop.Libraries.NCrypt, StringMarshalling = StringMarshalling.Utf16)]
37[LibraryImport(Interop.Libraries.NCrypt, StringMarshalling = StringMarshalling.Utf16)]
41[LibraryImport(Interop.Libraries.NCrypt, StringMarshalling = StringMarshalling.Utf16)]
53[LibraryImport(Interop.Libraries.NCrypt, StringMarshalling = StringMarshalling.Utf16)]
57[LibraryImport(Interop.Libraries.NCrypt, StringMarshalling = StringMarshalling.Utf16)]
61[LibraryImport(Interop.Libraries.NCrypt, StringMarshalling = StringMarshalling.Utf16)]
65[LibraryImport(Interop.Libraries.NCrypt, StringMarshalling = StringMarshalling.Utf16)]
src\runtime\src\libraries\Common\src\Microsoft\Win32\SafeHandles\SafeCertContextHandleWithKeyContainerDeletion.cs (12)
18using (SafeCertContextHandle certContext = Interop.Crypt32.CertDuplicateCertificateContext(handle))
32bool containsPrivateKey = Interop.Crypt32.CertGetCertificateContextProperty(pCertContext, Interop.Crypt32.CertContextPropId.CERT_KEY_PROV_INFO_PROP_ID, null, ref cb);
37if (!Interop.Crypt32.CertGetCertificateContextProperty(pCertContext, Interop.Crypt32.CertContextPropId.CERT_KEY_PROV_INFO_PROP_ID, provInfoAsBytes, ref cb))
44Interop.Crypt32.CRYPT_KEY_PROV_INFO* pProvInfo = (Interop.Crypt32.CRYPT_KEY_PROV_INFO*)pProvInfoAsBytes;
55if ((pProvInfo->dwFlags & Interop.Crypt32.CryptAcquireContextFlags.CRYPT_MACHINE_KEYSET) != 0)
75Interop.Crypt32.CryptAcquireContextFlags flags = (pProvInfo->dwFlags & Interop.Crypt32.CryptAcquireContextFlags.CRYPT_MACHINE_KEYSET) | Interop.Crypt32.CryptAcquireContextFlags.CRYPT_DELETEKEYSET;
77_ = Interop.Advapi32.CryptAcquireContext(out hProv, pProvInfo->pwszContainerName, pProvInfo->pwszProvName, pProvInfo->dwProvType, flags);
src\runtime\src\libraries\Common\src\System\Security\Cryptography\CngHelpers.cs (26)
9using ErrorCode = Interop.NCrypt.ErrorCode;
15internal static CryptographicException ToCryptographicException(this Interop.NCrypt.ErrorCode errorCode)
22ErrorCode errorCode = Interop.NCrypt.NCryptOpenStorageProvider(
40ErrorCode errorCode = Interop.NCrypt.NCryptSetProperty(
66ErrorCode errorCode = Interop.NCrypt.NCryptGetProperty(
88errorCode = Interop.NCrypt.NCryptGetProperty(
152ErrorCode errorCode = Interop.NCrypt.NCryptExportKey(handle, IntPtr.Zero, blobType, IntPtr.Zero, null, 0, out numBytesNeeded, 0);
162errorCode = Interop.NCrypt.NCryptExportKey(handle, IntPtr.Zero, blobType, IntPtr.Zero, buffer, buffer.Length, out numBytesNeeded, 0);
187ErrorCode errorCode = Interop.NCrypt.NCryptExportKey(
208errorCode = Interop.NCrypt.NCryptExportKey(
241Interop.NCrypt.NCryptBuffer* buffers = stackalloc Interop.NCrypt.NCryptBuffer[3];
243Interop.NCrypt.PBE_PARAMS pbeParams = default;
253buffers[0] = new Interop.NCrypt.NCryptBuffer
255BufferType = Interop.NCrypt.BufferType.PkcsSecret,
265buffers[1] = new Interop.NCrypt.NCryptBuffer
267BufferType = Interop.NCrypt.BufferType.PkcsAlgOid,
272buffers[2] = new Interop.NCrypt.NCryptBuffer
274BufferType = Interop.NCrypt.BufferType.PkcsAlgParam,
275cbBuffer = sizeof(Interop.NCrypt.PBE_PARAMS),
279Interop.NCrypt.NCryptBufferDesc desc = new Interop.NCrypt.NCryptBufferDesc
288ErrorCode errorCode = Interop.NCrypt.NCryptExportKey(
291Interop.NCrypt.NCRYPT_PKCS8_PRIVATE_KEY_BLOB,
316errorCode = Interop.NCrypt.NCryptExportKey(
319Interop.NCrypt.NCRYPT_PKCS8_PRIVATE_KEY_BLOB,
src\runtime\src\libraries\Common\src\System\Security\Cryptography\CngHelpers.SignVerify.cs (11)
6using AsymmetricPaddingMode = Interop.NCrypt.AsymmetricPaddingMode;
7using ErrorCode = Interop.NCrypt.ErrorCode;
22ErrorCode errorCode = Interop.NCrypt.NCryptSignHash(keyHandle, pPaddingInfo, hash, signature, out numBytesNeeded, paddingMode);
26errorCode = Interop.NCrypt.NCryptSignHash(keyHandle, pPaddingInfo, hash, signature, out numBytesNeeded, paddingMode);
32errorCode = Interop.NCrypt.NCryptSignHash(keyHandle, pPaddingInfo, hash, signature, out numBytesNeeded, paddingMode);
37errorCode = Interop.NCrypt.NCryptSignHash(keyHandle, pPaddingInfo, hash, signature, out numBytesNeeded, paddingMode);
54ErrorCode errorCode = Interop.NCrypt.NCryptSignHash(keyHandle, pPaddingInfo, hash, destination, out int numBytesNeeded, paddingMode);
58errorCode = Interop.NCrypt.NCryptSignHash(keyHandle, pPaddingInfo, hash, destination, out numBytesNeeded, paddingMode);
73ErrorCode error = Interop.NCrypt.NCryptSignHash(
106ErrorCode errorCode = Interop.NCrypt.NCryptVerifySignature(keyHandle, pPaddingInfo, hash, hash.Length, signature, signature.Length, paddingMode);
110errorCode = Interop.NCrypt.NCryptVerifySignature(keyHandle, pPaddingInfo, hash, hash.Length, signature, signature.Length, paddingMode);
src\runtime\src\libraries\Common\src\System\Security\Cryptography\CompositeMLDsaImplementation.Windows.cs (16)
12using NTSTATUS = Interop.BCrypt.NTSTATUS;
47return Interop.BCrypt.BCryptSignHashPqcPure(_key, data, context, destination);
51Interop.BCrypt.BCryptVerifySignaturePqcPure(_key, data, context, signature);
63SafeBCryptKeyHandle keyHandle = Interop.BCrypt.BCryptGenerateKeyPair(s_algHandle, keyLength: 0);
67Interop.BCrypt.BCryptSetSZProperty(keyHandle, Interop.BCrypt.BCryptPropertyStrings.BCRYPT_PARAMETER_SET_NAME, parameterSet);
68Interop.BCrypt.BCryptFinalizeKeyPair(keyHandle);
89const string PublicBlobType = Interop.BCrypt.KeyBlobType.BCRYPT_PQDSA_PUBLIC_BLOB;
96static blob => Interop.BCrypt.BCryptImportKeyPair(s_algHandle, PublicBlobType, blob));
111const string PrivateBlobType = Interop.BCrypt.KeyBlobType.BCRYPT_PQDSA_PRIVATE_BLOB;
118static blob => Interop.BCrypt.BCryptImportKeyPair(s_algHandle, PrivateBlobType, blob));
134ExportKey(Interop.BCrypt.KeyBlobType.BCRYPT_PQDSA_PUBLIC_BLOB, destination);
143return ExportKey(Interop.BCrypt.KeyBlobType.BCRYPT_PQDSA_PRIVATE_BLOB, destination);
159ArraySegment<byte> keyBlob = Interop.BCrypt.BCryptExportKey(_key, keyBlobType);
202NTSTATUS status = Interop.BCrypt.BCryptOpenAlgorithmProvider(
206Interop.BCrypt.BCryptOpenAlgorithmProviderFlags.None);
src\runtime\src\libraries\Common\src\System\Security\Cryptography\CompositeMLKemImplementation.Windows.cs (15)
9using NTSTATUS = Interop.BCrypt.NTSTATUS;
47SafeBCryptKeyHandle keyHandle = Interop.BCrypt.BCryptGenerateKeyPair(s_algHandle, keyLength: 0);
51Interop.BCrypt.BCryptSetSZProperty(
53Interop.BCrypt.BCryptPropertyStrings.BCRYPT_PARAMETER_SET_NAME,
55Interop.BCrypt.BCryptFinalizeKeyPair(keyHandle);
71return ImportKey(algorithm, source, Interop.BCrypt.KeyBlobType.BCRYPT_COMPOSITE_MLKEM_PUBLIC_BLOB, hasDecapsulationKey: false);
79return ImportKey(algorithm, source, Interop.BCrypt.KeyBlobType.BCRYPT_COMPOSITE_MLKEM_PRIVATE_BLOB, hasDecapsulationKey: true);
92uint written = Interop.BCrypt.BCryptDecapsulate(_key, ciphertext, sharedSecret, 0);
106Interop.BCrypt.BCryptEncapsulate(
125return ExportKey(Interop.BCrypt.KeyBlobType.BCRYPT_COMPOSITE_MLKEM_PUBLIC_BLOB, destination);
137return ExportKey(Interop.BCrypt.KeyBlobType.BCRYPT_COMPOSITE_MLKEM_PRIVATE_BLOB, destination);
180static (algHandle, blobKind, blob) => Interop.BCrypt.BCryptImportKeyPair(algHandle, blobKind, blob));
187ArraySegment<byte> keyBlob = Interop.BCrypt.BCryptExportKey(_key, blobType);
225NTSTATUS status = Interop.BCrypt.BCryptOpenAlgorithmProvider(
229Interop.BCrypt.BCryptOpenAlgorithmProviderFlags.None);
src\runtime\src\libraries\Common\src\System\Security\Cryptography\DSACng.ImportExport.cs (34)
7using static Interop.BCrypt;
8using static Interop.NCrypt;
9using KeyBlobMagicNumber = Interop.BCrypt.KeyBlobMagicNumber;
199Interop.BCrypt.EmitBigEndian(blob, ref offset, parameters.Counter);
200Interop.BCrypt.Emit(blob, ref offset, parameters.Seed);
206Interop.BCrypt.EmitByte(blob, ref offset, 0xff, Sha1HashOutputSize + sizeof(int));
213Interop.BCrypt.Emit(blob, ref offset, parameters.Q);
217Interop.BCrypt.Emit(blob, ref offset, parameters.P!);
218Interop.BCrypt.Emit(blob, ref offset, parameters.G!);
219Interop.BCrypt.Emit(blob, ref offset, parameters.Y!);
222Interop.BCrypt.Emit(blob, ref offset, parameters.X!);
279Interop.BCrypt.EmitBigEndian(blob, ref offset, parameters.Counter);
283Interop.BCrypt.Emit(blob, ref offset, parameters.Seed);
289Interop.BCrypt.EmitByte(blob, ref offset, 0xff, sizeof(int));
294Interop.BCrypt.EmitByte(blob, ref offset, 0xff, defaultSeedLength);
297Interop.BCrypt.Emit(blob, ref offset, parameters.Q);
298Interop.BCrypt.Emit(blob, ref offset, parameters.P);
299Interop.BCrypt.Emit(blob, ref offset, parameters.G);
300Interop.BCrypt.Emit(blob, ref offset, parameters.Y);
304Interop.BCrypt.Emit(blob, ref offset, parameters.X!);
359dsaParams.Counter = BinaryPrimitives.ReadInt32BigEndian(Interop.BCrypt.Consume(dsaBlob, ref offset, 4));
360dsaParams.Seed = Interop.BCrypt.Consume(dsaBlob, ref offset, Sha1HashOutputSize);
361dsaParams.Q = Interop.BCrypt.Consume(dsaBlob, ref offset, Sha1HashOutputSize);
364dsaParams.P = Interop.BCrypt.Consume(dsaBlob, ref offset, pBcryptBlob->cbKey);
365dsaParams.G = Interop.BCrypt.Consume(dsaBlob, ref offset, pBcryptBlob->cbKey);
366dsaParams.Y = Interop.BCrypt.Consume(dsaBlob, ref offset, pBcryptBlob->cbKey);
369dsaParams.X = Interop.BCrypt.Consume(dsaBlob, ref offset, Sha1HashOutputSize);
393dsaParams.Counter = BinaryPrimitives.ReadInt32BigEndian(Interop.BCrypt.Consume(dsaBlob, ref offset, 4));
397dsaParams.Seed = Interop.BCrypt.Consume(dsaBlob, ref offset, pBcryptBlob->cbSeedLength);
398dsaParams.Q = Interop.BCrypt.Consume(dsaBlob, ref offset, pBcryptBlob->cbGroupSize);
399dsaParams.P = Interop.BCrypt.Consume(dsaBlob, ref offset, pBcryptBlob->cbKey);
400dsaParams.G = Interop.BCrypt.Consume(dsaBlob, ref offset, pBcryptBlob->cbKey);
401dsaParams.Y = Interop.BCrypt.Consume(dsaBlob, ref offset, pBcryptBlob->cbKey);
404dsaParams.X = Interop.BCrypt.Consume(dsaBlob, ref offset, pBcryptBlob->cbGroupSize);
src\runtime\src\libraries\Common\src\System\Security\Cryptography\ECCng.ImportExport.cs (38)
6using BCRYPT_ECC_PARAMETER_HEADER = Interop.BCrypt.BCRYPT_ECC_PARAMETER_HEADER;
7using BCRYPT_ECCFULLKEY_BLOB = Interop.BCrypt.BCRYPT_ECCFULLKEY_BLOB;
8using ErrorCode = Interop.NCrypt.ErrorCode;
9using KeyBlobMagicNumber = Interop.BCrypt.KeyBlobMagicNumber;
93Interop.BCrypt.Emit(blob, ref offset, curve.Prime);
94Interop.BCrypt.Emit(blob, ref offset, curve.A);
95Interop.BCrypt.Emit(blob, ref offset, curve.B);
96Interop.BCrypt.Emit(blob, ref offset, curve.G.X);
97Interop.BCrypt.Emit(blob, ref offset, curve.G.Y);
98Interop.BCrypt.Emit(blob, ref offset, curve.Order);
99Interop.BCrypt.Emit(blob, ref offset, curve.Cofactor);
102Interop.BCrypt.Emit(blob, ref offset, curve.Seed);
104Interop.BCrypt.Emit(blob, ref offset, parameters.Q.X);
105Interop.BCrypt.Emit(blob, ref offset, parameters.Q.Y);
108Interop.BCrypt.Emit(blob, ref offset, parameters.D!);
200primeCurve.Prime = Interop.BCrypt.Consume(ecBlob, ref offset, pBcryptBlob->cbFieldLength);
201primeCurve.A = Interop.BCrypt.Consume(ecBlob, ref offset, pBcryptBlob->cbFieldLength);
202primeCurve.B = Interop.BCrypt.Consume(ecBlob, ref offset, pBcryptBlob->cbFieldLength);
205X = Interop.BCrypt.Consume(ecBlob, ref offset, pBcryptBlob->cbFieldLength),
206Y = Interop.BCrypt.Consume(ecBlob, ref offset, pBcryptBlob->cbFieldLength),
208primeCurve.Order = Interop.BCrypt.Consume(ecBlob, ref offset, pBcryptBlob->cbSubgroupOrder);
209primeCurve.Cofactor = Interop.BCrypt.Consume(ecBlob, ref offset, pBcryptBlob->cbCofactor);
212primeCurve.Seed = pBcryptBlob->cbSeed == 0 ? null : Interop.BCrypt.Consume(ecBlob, ref offset, pBcryptBlob->cbSeed);
216X = Interop.BCrypt.Consume(ecBlob, ref offset, pBcryptBlob->cbFieldLength),
217Y = Interop.BCrypt.Consume(ecBlob, ref offset, pBcryptBlob->cbFieldLength)
222ecParams.D = Interop.BCrypt.Consume(ecBlob, ref offset, pBcryptBlob->cbSubgroupOrder);
258pBcryptBlob->Version = Interop.BCrypt.BCRYPT_ECC_PARAMETER_HEADER_V1;
268Interop.BCrypt.Emit(blob, ref offset, curve.Prime);
269Interop.BCrypt.Emit(blob, ref offset, curve.A);
270Interop.BCrypt.Emit(blob, ref offset, curve.B);
271Interop.BCrypt.Emit(blob, ref offset, curve.G.X);
272Interop.BCrypt.Emit(blob, ref offset, curve.G.Y);
273Interop.BCrypt.Emit(blob, ref offset, curve.Order);
274Interop.BCrypt.Emit(blob, ref offset, curve.Cofactor);
277Interop.BCrypt.Emit(blob, ref offset, curve.Seed);
400private static Interop.BCrypt.ECC_CURVE_TYPE_ENUM ConvertToCurveTypeEnum(ECCurve.ECCurveType value)
406return (Interop.BCrypt.ECC_CURVE_TYPE_ENUM)value;
412private static ECCurve.ECCurveType ConvertToCurveTypeEnum(Interop.BCrypt.ECC_CURVE_TYPE_ENUM value)
src\runtime\src\libraries\Common\src\System\Security\Cryptography\ECCng.ImportExport.NamedCurve.cs (14)
7using BCRYPT_ECCKEY_BLOB = Interop.BCrypt.BCRYPT_ECCKEY_BLOB;
8using ErrorCode = Interop.NCrypt.ErrorCode;
9using KeyBlobMagicNumber = Interop.BCrypt.KeyBlobMagicNumber;
58Interop.BCrypt.Emit(blob, ref offset, x);
59Interop.BCrypt.Emit(blob, ref offset, y);
64Interop.BCrypt.Emit(blob, ref offset, d!);
108byte[] x = Interop.BCrypt.Consume(ecBlob, ref offset, pBcryptBlob->cbKey);
109byte[] y = Interop.BCrypt.Consume(ecBlob, ref offset, pBcryptBlob->cbKey);
119Interop.BCrypt.Consume(ecBlob, ref offset, d.Length, d);
158Interop.BCrypt.BCryptBufferDesc desc = default;
159Interop.BCrypt.BCryptBuffer buff = default;
162buff.BufferType = Interop.BCrypt.CngBufferDescriptors.NCRYPTBUFFER_ECC_CURVE_NAME;
167desc.ulVersion = Interop.BCrypt.BCRYPTBUFFER_VERSION;
169errorCode = Interop.NCrypt.NCryptImportKey(
src\runtime\src\libraries\Common\src\System\Security\Cryptography\MLDsaImplementation.Windows.cs (22)
10using NTSTATUS = Interop.BCrypt.NTSTATUS;
47int written = Interop.BCrypt.BCryptSignHashPqcPure(_key, data, context, destination);
51Debug.Fail($"Expected {destination.Length} bytes, but {nameof(Interop.BCrypt.BCryptSignHashPqcPure)} wrote {written} bytes.");
57Interop.BCrypt.BCryptVerifySignaturePqcPure(_key, data, context, signature);
79Interop.BCrypt.BCryptSignHashPqcPreHash(_key, hash, hashAlgorithmIdentifier, context, destination);
97return Interop.BCrypt.BCryptVerifySignaturePqcPreHash(_key, hash, hashAlgorithmIdentifier, context, signature);
111SafeBCryptKeyHandle keyHandle = Interop.BCrypt.BCryptGenerateKeyPair(s_algHandle, keyLength: 0);
115Interop.BCrypt.BCryptSetSZProperty(keyHandle, Interop.BCrypt.BCryptPropertyStrings.BCRYPT_PARAMETER_SET_NAME, parameterSet);
116Interop.BCrypt.BCryptFinalizeKeyPair(keyHandle);
131const string PublicBlobType = Interop.BCrypt.KeyBlobType.BCRYPT_PQDSA_PUBLIC_BLOB;
138static blob => Interop.BCrypt.BCryptImportKeyPair(s_algHandle, PublicBlobType, blob));
147const string PrivateBlobType = Interop.BCrypt.KeyBlobType.BCRYPT_PQDSA_PRIVATE_BLOB;
154static blob => Interop.BCrypt.BCryptImportKeyPair(s_algHandle, PrivateBlobType, blob));
163const string PrivateSeedBlobType = Interop.BCrypt.KeyBlobType.BCRYPT_PQDSA_PRIVATE_SEED_BLOB;
170static blob => Interop.BCrypt.BCryptImportKeyPair(s_algHandle, PrivateSeedBlobType, blob));
177Interop.BCrypt.KeyBlobType.BCRYPT_PQDSA_PUBLIC_BLOB,
189Interop.BCrypt.KeyBlobType.BCRYPT_PQDSA_PRIVATE_BLOB,
202Interop.BCrypt.KeyBlobType.BCRYPT_PQDSA_PRIVATE_SEED_BLOB,
230ArraySegment<byte> keyBlob = Interop.BCrypt.BCryptExportKey(_key, keyBlobType);
268NTSTATUS status = Interop.BCrypt.BCryptOpenAlgorithmProvider(
272Interop.BCrypt.BCryptOpenAlgorithmProviderFlags.None);
src\runtime\src\libraries\Common\src\System\Security\Cryptography\RSACng.EncryptDecrypt.cs (5)
7using AsymmetricPaddingMode = Interop.NCrypt.AsymmetricPaddingMode;
8using BCRYPT_OAEP_PADDING_INFO = Interop.BCrypt.BCRYPT_OAEP_PADDING_INFO;
9using ErrorCode = Interop.NCrypt.ErrorCode;
290Interop.NCrypt.NCryptEncrypt(key, input, input.Length, paddingInfo, output, output.Length, out bytesNeeded, paddingMode) :
291Interop.NCrypt.NCryptDecrypt(key, input, input.Length, paddingInfo, output, output.Length, out bytesNeeded, paddingMode);
src\runtime\src\libraries\Common\src\System\Security\Cryptography\X509Certificates\CertificateHelpers.Windows.cs (21)
141if (Interop.Crypt32.CertGetCertificateContextProperty(
143Interop.Crypt32.CertContextPropId.CERT_NCRYPT_KEY_HANDLE_PROP_ID,
157if (!Interop.Crypt32.CryptAcquireCertificatePrivateKey(
159Interop.Crypt32.CryptAcquireCertificatePrivateKeyFlags.CRYPT_ACQUIRE_ONLY_NCRYPT_KEY_FLAG,
162out Interop.Crypt32.CryptKeySpec _,
218if (!Interop.Crypt32.CertGetCertificateContextProperty(hCertContext, Interop.Crypt32.CertContextPropId.CERT_KEY_PROV_INFO_PROP_ID, null, ref cbData))
235if (!Interop.Crypt32.CertGetCertificateContextProperty(hCertContext, Interop.Crypt32.CertContextPropId.CERT_KEY_PROV_INFO_PROP_ID, privateKey, ref cbData))
237Interop.Crypt32.CRYPT_KEY_PROV_INFO* pKeyProvInfo = (Interop.Crypt32.CRYPT_KEY_PROV_INFO*)pPrivateKey;
245Flags = (pKeyProvInfo->dwFlags & Interop.Crypt32.CryptAcquireContextFlags.CRYPT_MACHINE_KEYSET) == Interop.Crypt32.CryptAcquireContextFlags.CRYPT_MACHINE_KEYSET ? CspProviderFlags.UseMachineKeyStore : 0,
272Interop.Crypt32.CRYPT_KEY_PROV_INFO keyProvInfo = default;
279keyProvInfo.dwFlags = machineKey ? Interop.Crypt32.CryptAcquireContextFlags.CRYPT_MACHINE_KEYSET : 0;
282if (!Interop.Crypt32.CertSetCertificateContextProperty(
284Interop.Crypt32.CertContextPropId.CERT_KEY_PROV_INFO_PROP_ID,
285Interop.Crypt32.CertSetPropertyFlags.None,
313if (!Interop.Crypt32.CertSetCertificateContextProperty(
315Interop.Crypt32.CertContextPropId.CERT_NCRYPT_KEY_HANDLE_PROP_ID,
316Interop.Crypt32.CertSetPropertyFlags.CERT_SET_PROPERTY_INHIBIT_PERSIST_FLAG,
System\Security\Cryptography\BasicSymmetricCipherLiteNCrypt.cs (5)
11using AsymmetricPaddingMode = Interop.NCrypt.AsymmetricPaddingMode;
12using ErrorCode = Interop.NCrypt.ErrorCode;
103Interop.NCrypt.NCryptEncrypt(keyHandle, input, input.Length, null, output, output.Length, out bytesWritten, AsymmetricPaddingMode.None) :
104Interop.NCrypt.NCryptDecrypt(keyHandle, input, input.Length, null, output, output.Length, out bytesWritten, AsymmetricPaddingMode.None);
126ErrorCode errorCode = Interop.NCrypt.NCryptSetProperty(
System\Security\Cryptography\CapiHelper.Windows.cs (74)
11using static Interop.Crypt32;
12using CryptProvParam = Interop.Advapi32.CryptProvParam;
60dwProvType, (uint)Interop.Advapi32.CryptAcquireContextFlags.CRYPT_VERIFYCONTEXT))
83if (!Interop.Advapi32.CryptGetDefaultProvider(dwType, IntPtr.Zero,
84Interop.Advapi32.GetDefaultProviderFlags.CRYPT_MACHINE_DEFAULT,
93if (!Interop.Advapi32.CryptGetDefaultProvider(dwType, IntPtr.Zero,
94Interop.Advapi32.GetDefaultProviderFlags.CRYPT_MACHINE_DEFAULT,
120uint dwFlags = (uint)Interop.Advapi32.CryptAcquireContextFlags.CRYPT_NEWKEYSET;
123dwFlags |= (uint)Interop.Advapi32.CryptAcquireContextFlags.CRYPT_VERIFYCONTEXT;
143const uint VerifyContextFlag = (uint)Interop.Advapi32.CryptAcquireContextFlags.CRYPT_VERIFYCONTEXT;
144const uint MachineContextFlag = (uint)Interop.Advapi32.CryptAcquireContextFlags.CRYPT_MACHINE_KEYSET;
157if (!Interop.Advapi32.CryptAcquireContext(out safeProvHandle, keyContainer, providerName, providerType, flags))
182int ret = OpenCSP(cspParameters, (uint)Interop.Advapi32.CryptAcquireContextFlags.CRYPT_VERIFYCONTEXT, out hProv);
250if (IsFlagBitSet(flags, (uint)Interop.Advapi32.CryptAcquireContextFlags.CRYPT_VERIFYCONTEXT))
293if (!Interop.Advapi32.CryptSetProvParam(safeProvHandle, CryptProvParam.PP_CLIENT_HWND, ref parentWindowHandle, 0))
306(parameters.KeyNumber == (int)Interop.Advapi32.KeySpec.AT_SIGNATURE) ?
309if (!Interop.Advapi32.CryptSetProvParam(safeProvHandle, param, password, 0))
344if (!Interop.Advapi32.CryptGetProvParam(safeProvHandle, flags, impType, ref cb))
388if (!Interop.Advapi32.CryptGetKeyParam(safeKeyHandle, Interop.Advapi32.CryptGetKeyParamFlags.KP_PERMISSIONS, permissions, ref cb, 0))
393retVal = IsFlagBitSet((uint)permissionsReturn, (uint)Interop.Advapi32.CryptGetKeyParamFlags.CRYPT_EXPORT);
519cspFlags |= (uint)Interop.Advapi32.CryptAcquireContextFlags.CRYPT_MACHINE_KEYSET;
523cspFlags |= (uint)Interop.Advapi32.CryptAcquireContextFlags.CRYPT_SILENT;
527cspFlags |= (uint)Interop.Advapi32.CryptAcquireContextFlags.CRYPT_VERIFYCONTEXT;
560if (!Interop.Advapi32.CryptGetKeyParam(safeKeyHandle, Interop.Advapi32.CryptGetKeyParamFlags.KP_KEYLEN, null, ref cb, 0))
565if (!Interop.Advapi32.CryptGetKeyParam(safeKeyHandle, Interop.Advapi32.CryptGetKeyParamFlags.KP_KEYLEN, pb, ref cb, 0))
580if (!Interop.Advapi32.CryptGetKeyParam(safeKeyHandle, Interop.Advapi32.CryptGetKeyParamFlags.KP_ALGID, null, ref cb, 0))
585if (!Interop.Advapi32.CryptGetKeyParam(safeKeyHandle, Interop.Advapi32.CryptGetKeyParamFlags.KP_ALGID, pb, ref cb, 0))
613if (!Interop.Advapi32.CryptSetKeyParam(safeKeyHandle, (int)keyParam, value, 0))
638if (!Interop.Advapi32.CryptSetKeyParam(safeKeyHandle, (int)keyParam, ref value, 0))
821int dwFlags = fOAEP ? (int)Interop.Advapi32.CryptDecryptFlags.CRYPT_OAEP : 0;
823if (!Interop.Advapi32.CryptDecrypt(safeKeyHandle, SafeHashHandle.InvalidHandle, true, dwFlags, dataToBeDecrypted, ref decryptedDataLength))
831if ((uint)((uint)dwFlags & (uint)Interop.Advapi32.CryptDecryptFlags.CRYPT_OAEP) == (uint)Interop.Advapi32.CryptDecryptFlags.CRYPT_OAEP &&
877int dwEncryptFlags = foep ? (int)Interop.Advapi32.CryptDecryptFlags.CRYPT_OAEP : 0;
880if (!Interop.Advapi32.CryptEncrypt(safeKeyHandle, SafeHashHandle.InvalidHandle, true, dwEncryptFlags, null, ref cbEncryptedKey, cbEncryptedKey))
893if (!Interop.Advapi32.CryptEncrypt(safeKeyHandle, SafeHashHandle.InvalidHandle, true, dwEncryptFlags, pbEncryptedKey, ref cbKey, cbEncryptedKey))
912if (!Interop.Advapi32.CryptEncrypt(hKey, SafeHashHandle.InvalidHandle, isFinal, 0, null, ref cbEncryptedData, cbEncryptedData))
927if (!Interop.Advapi32.CryptEncrypt(hKey, SafeHashHandle.InvalidHandle, isFinal, 0, encryptedData, ref encryptedDataLength, cbEncryptedData))
954if (!Interop.Advapi32.CryptDecrypt(hKey, SafeHashHandle.InvalidHandle, false, 0, dataToBeDecrypted, ref decryptedDataLength))
1013if (!Interop.Advapi32.CryptExportKey(safeKeyHandle, SafeCapiKeyHandle.InvalidHandle, dwBlobType, 0, null, ref cbRawData))
1019if (!Interop.Advapi32.CryptExportKey(safeKeyHandle, SafeCapiKeyHandle.InvalidHandle, dwBlobType, 0, pbRawData, ref cbRawData))
1149return global::Interop.Crypt32.FindOidInfo(CryptOidInfoKeyType.CRYPT_OID_INFO_OID_KEY, oid, oidGroup, fallBackToAllGroups: false).AlgId;
1161if (!Interop.Advapi32.CryptSignHash(hHash, (Interop.Advapi32.KeySpec)keyNumber, null, Interop.Advapi32.CryptSignAndVerifyHashFlags.None, null, ref cbSignature))
1168if (!Interop.Advapi32.CryptSignHash(hHash, (Interop.Advapi32.KeySpec)keyNumber, null, Interop.Advapi32.CryptSignAndVerifyHashFlags.None, signature, ref cbSignature))
1218bool verified = Interop.Advapi32.CryptVerifySignature(hHash, signature, signature.Length, hKey, null, Interop.Advapi32.CryptSignAndVerifyHashFlags.None);
1241if (!CryptCreateHash(hProv, algidHash, SafeCapiKeyHandle.InvalidHandle, Interop.Advapi32.CryptCreateHashFlags.None, out hHash))
1248if (!Interop.Advapi32.CryptHashData(hHash, password, cbPassword, 0))
1268if (!Interop.Advapi32.CryptGetKeyParam(hKey, Interop.Advapi32.CryptGetKeyParamFlags.KP_IV, null, ref cbIV, 0))
1276if (!Interop.Advapi32.CryptGetKeyParam(hKey, Interop.Advapi32.CryptGetKeyParamFlags.KP_IV, pbIV, ref cbIV, 0))
1316if (!Interop.Advapi32.CryptExportKey(hKey, hPubKey, SIMPLEBLOB, 0, null, ref cbOut))
1324if (!Interop.Advapi32.CryptExportKey(hKey, hPubKey, SIMPLEBLOB, 0, key_full, ref cbOut))
1376if (!CryptCreateHash(hProv, calgHash, SafeCapiKeyHandle.InvalidHandle, Interop.Advapi32.CryptCreateHashFlags.None, out hHash))
1389if (!Interop.Advapi32.CryptGetHashParam(hHash, Interop.Advapi32.CryptHashProperty.HP_HASHSIZE, out dwHashSize, ref cbHashSize, 0))
1405if (!Interop.Advapi32.CryptSetHashParam(hHash, Interop.Advapi32.CryptHashProperty.HP_HASHVAL, hash, 0))
1437bool response = Interop.Advapi32.CryptGetUserKey(safeProvHandle, dwKeySpec, out safeKeyHandle);
1450bool response = Interop.Advapi32.CryptGenKey(safeProvHandle, algId, dwFlags, out safeKeyHandle);
1466bool response = Interop.Advapi32.CryptImportKey(hProv, pbDataPtr, pbData.Length, hPubKey, dwFlags, out phKey);
1478Interop.Advapi32.CryptCreateHashFlags dwFlags,
1481bool response = Interop.Advapi32.CryptCreateHash(hProv, algId, hKey, dwFlags, out phHash);
1495bool response = Interop.Advapi32.CryptDeriveKey(hProv, algId, phHash, dwFlags, out phKey);
System\Security\Cryptography\CngAsnFormatter.cs (4)
21int dwFormatStrType = multiLine ? Interop.Crypt32.CRYPT_FORMAT_STR_MULTI_LINE : Interop.Crypt32.CRYPT_FORMAT_STR_NONE;
30if (Interop.Crypt32.CryptFormatObject(X509_ASN_ENCODING, 0, dwFormatStrType, IntPtr.Zero, (byte*)oidValuePtr, rawData, rawData.Length, null, ref cbFormat))
38if (Interop.Crypt32.CryptFormatObject(X509_ASN_ENCODING, 0, dwFormatStrType, IntPtr.Zero, (byte*)oidValuePtr, rawData, rawData.Length, bufferPtr, ref cbFormat))
System\Security\Cryptography\CngHelpers.cs (20)
10using BCRYPT_RSAKEY_BLOB = Interop.BCrypt.BCRYPT_RSAKEY_BLOB;
11using ErrorCode = Interop.NCrypt.ErrorCode;
12using KeyBlobMagicNumber = Interop.BCrypt.KeyBlobMagicNumber;
18private static readonly CngKeyBlobFormat s_cipherKeyBlobFormat = new CngKeyBlobFormat(Interop.NCrypt.NCRYPT_CIPHER_KEY_BLOB);
41ErrorCode errorCode = Interop.NCrypt.NCryptGetProperty(
81if (ncryptMagic != Interop.NCrypt.NCRYPT_CIPHER_KEY_BLOB_MAGIC)
98if (bcryptMagic != Interop.BCrypt.BCRYPT_KEY_DATA_BLOB_HEADER.BCRYPT_KEY_DATA_BLOB_MAGIC)
102if (dwVersion != Interop.BCrypt.BCRYPT_KEY_DATA_BLOB_HEADER.BCRYPT_KEY_DATA_BLOB_VERSION1)
208Interop.BCrypt.Emit(rsaBlob, ref offset, parameters.Exponent);
209Interop.BCrypt.Emit(rsaBlob, ref offset, parameters.Modulus);
213Interop.BCrypt.Emit(rsaBlob, ref offset, parameters.P!);
214Interop.BCrypt.Emit(rsaBlob, ref offset, parameters.Q!);
262rsaParams.Exponent = Interop.BCrypt.Consume(rsaBlob, ref offset, pBcryptBlob->cbPublicExp);
263rsaParams.Modulus = Interop.BCrypt.Consume(rsaBlob, ref offset, pBcryptBlob->cbModulus);
267rsaParams.P = Interop.BCrypt.Consume(rsaBlob, ref offset, pBcryptBlob->cbPrime1);
268rsaParams.Q = Interop.BCrypt.Consume(rsaBlob, ref offset, pBcryptBlob->cbPrime2);
269rsaParams.DP = Interop.BCrypt.Consume(rsaBlob, ref offset, pBcryptBlob->cbPrime1);
270rsaParams.DQ = Interop.BCrypt.Consume(rsaBlob, ref offset, pBcryptBlob->cbPrime2);
271rsaParams.InverseQ = Interop.BCrypt.Consume(rsaBlob, ref offset, pBcryptBlob->cbPrime1);
272rsaParams.D = Interop.BCrypt.Consume(rsaBlob, ref offset, pBcryptBlob->cbModulus);
System\Security\Cryptography\CngKey.Create.cs (9)
8using ErrorCode = Interop.NCrypt.ErrorCode;
9using NCRYPT_UI_POLICY = Interop.NCrypt.NCRYPT_UI_POLICY;
45ErrorCode errorCode = Interop.NCrypt.NCryptCreatePersistedKey(providerHandle, out keyHandle, algorithm.Algorithm, keyName, 0, creationParameters.KeyCreationOptions);
54errorCode = Interop.NCrypt.NCryptFinalizeKey(keyHandle, 0);
95ErrorCode errorCode = Interop.NCrypt.NCryptSetProperty(keyHandle, KeyPropertyName.KeyUsage, &keyUsage, sizeof(CngKeyUsages), CngPropertyOptions.Persist);
103ErrorCode errorCode = Interop.NCrypt.NCryptSetProperty(keyHandle, KeyPropertyName.ParentWindowHandle, &parentWindowHandle, sizeof(IntPtr), CngPropertyOptions.None);
121ErrorCode errorCode = Interop.NCrypt.NCryptSetProperty(keyHandle, property.Name, pValue, valueLength, property.Options);
149ErrorCode errorCode = Interop.NCrypt.NCryptSetProperty(keyHandle, KeyPropertyName.UIPolicy, &ncryptUiPolicy, sizeof(NCRYPT_UI_POLICY), CngPropertyOptions.Persist);
160ErrorCode errorCode = Interop.NCrypt.NCryptSetProperty(keyHandle, KeyPropertyName.UseContext, pinnedUseContext, useContextByteLength, CngPropertyOptions.Persist);
System\Security\Cryptography\CngKey.Export.cs (3)
6using ErrorCode = Interop.NCrypt.ErrorCode;
23ErrorCode errorCode = Interop.NCrypt.NCryptExportKey(_keyHandle, IntPtr.Zero, format.Format, IntPtr.Zero, null, 0, out numBytesNeeded, 0);
28errorCode = Interop.NCrypt.NCryptExportKey(_keyHandle, IntPtr.Zero, format.Format, IntPtr.Zero, buffer, buffer.Length, out numBytesNeeded, 0);
System\Security\Cryptography\CngKey.StandardProperties.cs (9)
8using ErrorCode = Interop.NCrypt.ErrorCode;
9using NCRYPT_UI_POLICY = Interop.NCrypt.NCRYPT_UI_POLICY;
121ErrorCode errorCode = Interop.NCrypt.NCryptGetProperty(_keyHandle, KeyPropertyName.ClrIsEphemeral, &propertyValue, sizeof(byte), out cbResult, CngPropertyOptions.CustomProperty);
145ErrorCode errorCode = Interop.NCrypt.NCryptSetProperty(_keyHandle, KeyPropertyName.ClrIsEphemeral, &isEphemeral, sizeof(byte), CngPropertyOptions.CustomProperty);
205ErrorCode errorCode = Interop.NCrypt.NCryptGetIntProperty(
213errorCode = Interop.NCrypt.NCryptGetIntProperty(
283Interop.NCrypt.NCryptSetProperty(_keyHandle, KeyPropertyName.ParentWindowHandle, &value, IntPtr.Size, CngPropertyOptions.None);
337ErrorCode errorCode = Interop.NCrypt.NCryptGetProperty(_keyHandle, KeyPropertyName.UIPolicy, null, 0, out numBytesNeeded, CngPropertyOptions.None);
362errorCode = Interop.NCrypt.NCryptGetProperty(_keyHandle, KeyPropertyName.UIPolicy, pNcryptUiPolicyAndStrings, ncryptUiPolicyAndStrings.Length, out numBytesNeeded, CngPropertyOptions.None);
System\Security\Cryptography\HashProviderCng.cs (16)
9using BCryptCreateHashFlags = Interop.BCrypt.BCryptCreateHashFlags;
10using BCryptOpenAlgorithmProviderFlags = Interop.BCrypt.BCryptOpenAlgorithmProviderFlags;
11using NTSTATUS = Interop.BCrypt.NTSTATUS;
38_hAlgorithm = Interop.BCrypt.BCryptAlgorithmCache.GetCachedBCryptAlgorithmHandle(hashAlgId, dwFlags, out _hashSize);
39NTSTATUS ntStatus = Interop.BCrypt.BCryptCreateHash(_hAlgorithm, out _hHash, IntPtr.Zero, 0, key, key.Length, BCryptCreateHashFlags.BCRYPT_HASH_REUSABLE_FLAG);
44throw Interop.BCrypt.CreateCryptographicException(ntStatus);
68NTSTATUS ntStatus = Interop.BCrypt.BCryptHashData(_hHash, source, source.Length, 0);
71throw Interop.BCrypt.CreateCryptographicException(ntStatus);
85NTSTATUS ntStatus = Interop.BCrypt.BCryptFinishHash(_hHash, destination, _hashSize, 0);
89throw Interop.BCrypt.CreateCryptographicException(ntStatus);
105using (SafeBCryptHashHandle tmpHash = Interop.BCrypt.BCryptDuplicateHash(_hHash))
107NTSTATUS ntStatus = Interop.BCrypt.BCryptFinishHash(tmpHash, destination, _hashSize, 0);
111throw Interop.BCrypt.CreateCryptographicException(ntStatus);
123SafeBCryptHashHandle clone = Interop.BCrypt.BCryptDuplicateHash(_hHash);
159NTSTATUS ntStatus = Interop.BCrypt.BCryptCreateHash(_hAlgorithm, out hHash, IntPtr.Zero, 0, _key, _key == null ? 0 : _key.Length, Flags);
164throw Interop.BCrypt.CreateCryptographicException(ntStatus);
System\Security\Cryptography\HashProviderDispenser.Windows.cs (33)
8using BCryptAlgorithmCache = Interop.BCrypt.BCryptAlgorithmCache;
9using BCryptCreateHashFlags = Interop.BCrypt.BCryptCreateHashFlags;
10using BCryptOpenAlgorithmProviderFlags = Interop.BCrypt.BCryptOpenAlgorithmProviderFlags;
11using NTSTATUS = Interop.BCrypt.NTSTATUS;
121if (Interop.BCrypt.PseudoHandlesSupported)
148Debug.Assert(Interop.BCrypt.PseudoHandlesSupported);
157if (Interop.BCrypt.PseudoHandlesSupported)
194Interop.BCrypt.BCryptAlgPseudoHandle algHandle;
200Interop.BCrypt.BCryptAlgPseudoHandle.BCRYPT_HMAC_MD5_ALG_HANDLE :
201Interop.BCrypt.BCryptAlgPseudoHandle.BCRYPT_MD5_ALG_HANDLE;
207Interop.BCrypt.BCryptAlgPseudoHandle.BCRYPT_HMAC_SHA1_ALG_HANDLE :
208Interop.BCrypt.BCryptAlgPseudoHandle.BCRYPT_SHA1_ALG_HANDLE;
214Interop.BCrypt.BCryptAlgPseudoHandle.BCRYPT_HMAC_SHA256_ALG_HANDLE :
215Interop.BCrypt.BCryptAlgPseudoHandle.BCRYPT_SHA256_ALG_HANDLE;
221Interop.BCrypt.BCryptAlgPseudoHandle.BCRYPT_HMAC_SHA384_ALG_HANDLE :
222Interop.BCrypt.BCryptAlgPseudoHandle.BCRYPT_SHA384_ALG_HANDLE;
228Interop.BCrypt.BCryptAlgPseudoHandle.BCRYPT_HMAC_SHA512_ALG_HANDLE :
229Interop.BCrypt.BCryptAlgPseudoHandle.BCRYPT_SHA512_ALG_HANDLE;
235Interop.BCrypt.BCryptAlgPseudoHandle.BCRYPT_HMAC_SHA3_256_ALG_HANDLE :
236Interop.BCrypt.BCryptAlgPseudoHandle.BCRYPT_SHA3_256_ALG_HANDLE;
242Interop.BCrypt.BCryptAlgPseudoHandle.BCRYPT_HMAC_SHA3_384_ALG_HANDLE :
243Interop.BCrypt.BCryptAlgPseudoHandle.BCRYPT_SHA3_384_ALG_HANDLE;
249Interop.BCrypt.BCryptAlgPseudoHandle.BCRYPT_HMAC_SHA3_512_ALG_HANDLE :
250Interop.BCrypt.BCryptAlgPseudoHandle.BCRYPT_SHA3_512_ALG_HANDLE;
255algHandle = Interop.BCrypt.BCryptAlgPseudoHandle.BCRYPT_CSHAKE128_ALG_HANDLE;
260algHandle = Interop.BCrypt.BCryptAlgPseudoHandle.BCRYPT_CSHAKE256_ALG_HANDLE;
279NTSTATUS ntStatus = Interop.BCrypt.BCryptHash((uint)algHandle, pKey, key.Length, pSrc, source.Length, pDest, digestSizeInBytes);
283throw Interop.BCrypt.CreateCryptographicException(ntStatus);
297NTSTATUS ntStatus = Interop.BCrypt.BCryptCreateHash(
309throw Interop.BCrypt.CreateCryptographicException(ntStatus);
314ntStatus = Interop.BCrypt.BCryptHashData(hHash, source, source.Length, 0);
318throw Interop.BCrypt.CreateCryptographicException(ntStatus);
321Interop.BCrypt.BCryptFinishHash(hHash, destination, hashSize, 0);
System\Security\Cryptography\LiteHash.Windows.cs (43)
8using BCryptCreateHashFlags = Interop.BCrypt.BCryptCreateHashFlags;
9using BCryptOpenAlgorithmProviderFlags = Interop.BCrypt.BCryptOpenAlgorithmProviderFlags;
10using NTSTATUS = Interop.BCrypt.NTSTATUS;
50HashAlgorithmNames.KMAC128 => (nuint)Interop.BCrypt.BCryptAlgPseudoHandle.BCRYPT_KMAC128_ALG_HANDLE,
51HashAlgorithmNames.KMAC256 => (nuint)Interop.BCrypt.BCryptAlgPseudoHandle.BCRYPT_KMAC256_ALG_HANDLE,
55NTSTATUS ntStatus = Interop.BCrypt.BCryptCreateHash(
67throw Interop.BCrypt.CreateCryptographicException(ntStatus);
82throw Interop.BCrypt.CreateCryptographicException(ntStatus);
117CheckStatus(Interop.BCrypt.BCryptFinishHash(_hashHandle, buffer, 0, dwFlags: 0));
128CheckStatus(Interop.BCrypt.BCryptHashData(_hashHandle, data, data.Length, dwFlags: 0));
135using (SafeBCryptHashHandle dup = Interop.BCrypt.BCryptDuplicateHash(_hashHandle))
137CheckStatus(Interop.BCrypt.BCryptFinishHash(dup, pDestination, destination.Length, _finishFlags));
148CheckStatus(Interop.BCrypt.BCryptFinishHash(_hashHandle, pDestination, destination.Length, _finishFlags));
156SafeBCryptHashHandle clone = Interop.BCrypt.BCryptDuplicateHash(_hashHandle);
169throw Interop.BCrypt.CreateCryptographicException(status);
184HashAlgorithmNames.CSHAKE128 => (nuint)Interop.BCrypt.BCryptAlgPseudoHandle.BCRYPT_CSHAKE128_ALG_HANDLE,
185HashAlgorithmNames.CSHAKE256 => (nuint)Interop.BCrypt.BCryptAlgPseudoHandle.BCRYPT_CSHAKE256_ALG_HANDLE,
191NTSTATUS ntStatus = Interop.BCrypt.BCryptCreateHash(
203throw Interop.BCrypt.CreateCryptographicException(ntStatus);
237NTSTATUS ntStatus = Interop.BCrypt.BCryptHashData(_hashHandle, data, data.Length, dwFlags: 0);
241throw Interop.BCrypt.CreateCryptographicException(ntStatus);
249NTSTATUS ntStatus = Interop.BCrypt.BCryptFinishHash(_hashHandle, pDestination, destination.Length, dwFlags: 0);
253throw Interop.BCrypt.CreateCryptographicException(ntStatus);
267using (SafeBCryptHashHandle tmpHash = Interop.BCrypt.BCryptDuplicateHash(_hashHandle))
270NTSTATUS ntStatus = Interop.BCrypt.BCryptFinishHash(tmpHash, pDestination, destination.Length, dwFlags: 0);
274throw Interop.BCrypt.CreateCryptographicException(ntStatus);
281SafeBCryptHashHandle clone = Interop.BCrypt.BCryptDuplicateHash(_hashHandle);
289NTSTATUS ntStatus = Interop.BCrypt.BCryptFinishHash(_hashHandle, pDestination, destination.Length, dwFlags: BCRYPT_HASH_DONT_RESET_FLAG);
293throw Interop.BCrypt.CreateCryptographicException(ntStatus);
318SafeBCryptAlgorithmHandle algorithmHandle = Interop.BCrypt.BCryptAlgorithmCache.GetCachedBCryptAlgorithmHandle(
325NTSTATUS ntStatus = Interop.BCrypt.BCryptCreateHash(
337throw Interop.BCrypt.CreateCryptographicException(ntStatus);
350NTSTATUS ntStatus = Interop.BCrypt.BCryptHashData(_hashHandle, data, data.Length, dwFlags: 0);
354throw Interop.BCrypt.CreateCryptographicException(ntStatus);
362NTSTATUS ntStatus = Interop.BCrypt.BCryptFinishHash(_hashHandle, destination, _hashSizeInBytes, dwFlags: 0);
366throw Interop.BCrypt.CreateCryptographicException(ntStatus);
391SafeBCryptAlgorithmHandle algorithmHandle = Interop.BCrypt.BCryptAlgorithmCache.GetCachedBCryptAlgorithmHandle(
398NTSTATUS ntStatus = Interop.BCrypt.BCryptCreateHash(
410throw Interop.BCrypt.CreateCryptographicException(ntStatus);
423NTSTATUS ntStatus = Interop.BCrypt.BCryptHashData(_hashHandle, data, data.Length, dwFlags: 0);
427throw Interop.BCrypt.CreateCryptographicException(ntStatus);
435NTSTATUS ntStatus = Interop.BCrypt.BCryptFinishHash(_hashHandle, destination, _hashSizeInBytes, dwFlags: 0);
439throw Interop.BCrypt.CreateCryptographicException(ntStatus);
System\Security\Cryptography\X509Certificates\CertificatePal.Windows.cs (63)
24SafeCertContextHandle safeCertContextHandle = Interop.Crypt32.CertDuplicateCertificateContext(handle);
33bool deleteKeyContainer = Interop.Crypt32.CertGetCertificateContextProperty(safeCertContextHandle, Interop.Crypt32.CertContextPropId.CERT_CLR_DELETE_KEY_PROP_ID, out Interop.Crypt32.DATA_BLOB _, ref cbData);
68if (!Interop.Crypt32.CertGetCertificateContextProperty(_certContext, Interop.Crypt32.CertContextPropId.CERT_SHA1_HASH_PROP_ID, null, ref cbData))
72if (!Interop.Crypt32.CertGetCertificateContextProperty(_certContext, Interop.Crypt32.CertContextPropId.CERT_SHA1_HASH_PROP_ID, thumbprint, ref cbData))
106algId = Interop.Crypt32.FindOidInfo(Interop.Crypt32.CryptOidInfoKeyType.CRYPT_OID_INFO_OID_KEY, keyAlgorithmOid, OidGroup.PublicKeyAlgorithm, fallBackToAllGroups: true).AlgId;
126Interop.Crypt32.DATA_BLOB parametersBlob = pCertContext->pCertInfo->SubjectPublicKeyInfo.Algorithm.Parameters;
153if (!Interop.Crypt32.CertGetCertificateContextProperty(_certContext, Interop.Crypt32.CertContextPropId.CERT_PUBKEY_ALG_PARA_PROP_ID, null, ref cbData))
155Interop.Crypt32.CERT_CHAIN_PARA chainPara = default;
156chainPara.cbSize = sizeof(Interop.Crypt32.CERT_CHAIN_PARA);
157if (!Interop.Crypt32.CertGetCertificateChain((IntPtr)Interop.Crypt32.ChainEngine.HCCE_CURRENT_USER, _certContext, null, SafeCertStoreHandle.InvalidHandle, ref chainPara, Interop.Crypt32.CertChainFlags.None, IntPtr.Zero, out certChainContext))
159if (!Interop.Crypt32.CertGetCertificateContextProperty(_certContext, Interop.Crypt32.CertContextPropId.CERT_PUBKEY_ALG_PARA_PROP_ID, null, ref cbData))
164if (!Interop.Crypt32.CertGetCertificateContextProperty(_certContext, Interop.Crypt32.CertContextPropId.CERT_PUBKEY_ALG_PARA_PROP_ID, keyAlgorithmParameters, ref cbData))
272bool archivePropertyExists = Interop.Crypt32.CertGetCertificateContextProperty(_certContext, Interop.Crypt32.CertContextPropId.CERT_ARCHIVED_PROP_ID, null!, ref uninteresting);
280Interop.Crypt32.DATA_BLOB blob = new Interop.Crypt32.DATA_BLOB(IntPtr.Zero, 0);
281Interop.Crypt32.DATA_BLOB* pValue = value ? &blob : (Interop.Crypt32.DATA_BLOB*)null;
282if (!Interop.Crypt32.CertSetCertificateContextProperty(_certContext, Interop.Crypt32.CertContextPropId.CERT_ARCHIVED_PROP_ID, Interop.Crypt32.CertSetPropertyFlags.None, pValue))
295if (!Interop.Crypt32.CertGetCertificateContextPropertyString(_certContext, Interop.Crypt32.CertContextPropId.CERT_FRIENDLY_NAME_PROP_ID, null, ref cbData))
304if (!Interop.Crypt32.CertGetCertificateContextPropertyString(_certContext, Interop.Crypt32.CertContextPropId.CERT_FRIENDLY_NAME_PROP_ID, (byte*)ptr, ref cbData))
320Interop.Crypt32.DATA_BLOB blob = new Interop.Crypt32.DATA_BLOB(pFriendlyName, checked(2 * ((uint)friendlyName.Length + 1)));
321if (!Interop.Crypt32.CertSetCertificateContextProperty(_certContext, Interop.Crypt32.CertContextPropId.CERT_FRIENDLY_NAME_PROP_ID, Interop.Crypt32.CertSetPropertyFlags.None, &blob))
377Interop.Crypt32.CERT_INFO* pCertInfo = certContext->pCertInfo;
383Interop.Crypt32.CERT_EXTENSION* pCertExtension = (Interop.Crypt32.CERT_EXTENSION*)pCertInfo->rgExtension.ToPointer() + i;
400Interop.crypt32.CertGetNameString(
403forIssuer ? Interop.Crypt32.CertNameFlags.CERT_NAME_ISSUER_FLAG : Interop.Crypt32.CertNameFlags.None,
404Interop.Crypt32.CertNameStringType.CERT_X500_NAME_STR | Interop.Crypt32.CertNameStringType.CERT_NAME_STR_REVERSE_FLAG);
490return Interop.Crypt32.CertDuplicateCertificateContext((IntPtr)certContext);
495private static Interop.Crypt32.CertNameType MapNameType(X509NameType nameType)
500return Interop.Crypt32.CertNameType.CERT_NAME_SIMPLE_DISPLAY_TYPE;
503return Interop.Crypt32.CertNameType.CERT_NAME_EMAIL_TYPE;
506return Interop.Crypt32.CertNameType.CERT_NAME_UPN_TYPE;
510return Interop.Crypt32.CertNameType.CERT_NAME_DNS_TYPE;
513return Interop.Crypt32.CertNameType.CERT_NAME_URL_TYPE;
521Interop.crypt32.CertGetNameString(
523Interop.Crypt32.CertNameType.CERT_NAME_RDN_TYPE,
524issuer ? Interop.Crypt32.CertNameFlags.CERT_NAME_ISSUER_FLAG : Interop.Crypt32.CertNameFlags.None,
525Interop.Crypt32.CertNameStringType.CERT_X500_NAME_STR | (reverse ? Interop.Crypt32.CertNameStringType.CERT_NAME_STR_REVERSE_FLAG : 0));
542certContext = Interop.Crypt32.CertDuplicateCertificateContextWithKeyContainerDeletion(oldCertContext.DangerousGetHandle());
592private unsafe delegate T CertContextCallback<T>(Interop.Crypt32.CERT_CONTEXT* certContext);
System\Security\Cryptography\X509Certificates\CertificatePal.Windows.Import.cs (28)
31Interop.Crypt32.ContentType contentType;
44Interop.Crypt32.DATA_BLOB certBlob = new Interop.Crypt32.DATA_BLOB(new IntPtr(pRawData), (uint)(loadFromFile ? 0 : rawData.Length));
46Interop.Crypt32.CertQueryObjectType objectType = loadFromFile ? Interop.Crypt32.CertQueryObjectType.CERT_QUERY_OBJECT_FILE : Interop.Crypt32.CertQueryObjectType.CERT_QUERY_OBJECT_BLOB;
49bool success = Interop.Crypt32.CryptQueryObject(
70if (contentType == Interop.Crypt32.ContentType.CERT_QUERY_CONTENT_PKCS7_SIGNED || contentType == Interop.Crypt32.ContentType.CERT_QUERY_CONTENT_PKCS7_SIGNED_EMBED)
75else if (contentType == Interop.Crypt32.ContentType.CERT_QUERY_CONTENT_PFX)
126if (!Interop.Crypt32.CryptMsgGetParam(hCryptMsg, Interop.Crypt32.CryptMsgParamType.CMSG_SIGNER_COUNT_PARAM, 0, out dwSigners, ref cbSigners))
133if (!Interop.Crypt32.CryptMsgGetParam(hCryptMsg, Interop.Crypt32.CryptMsgParamType.CMSG_SIGNER_INFO_PARAM, 0, default(byte*), ref cbData))
138if (!Interop.Crypt32.CryptMsgGetParam(hCryptMsg, Interop.Crypt32.CryptMsgParamType.CMSG_SIGNER_INFO_PARAM, 0, pCmsgSignerBytes, ref cbData))
143Interop.Crypt32.CERT_INFO certInfo = default(Interop.Crypt32.CERT_INFO);
150if (!Interop.crypt32.CertFindCertificateInStore(hCertStore, Interop.Crypt32.CertFindType.CERT_FIND_SUBJECT_CERT, &certInfo, ref pCertContext))
161private const Interop.Crypt32.ExpectedContentTypeFlags X509ExpectedContentTypeFlags =
162Interop.Crypt32.ExpectedContentTypeFlags.CERT_QUERY_CONTENT_FLAG_CERT |
163Interop.Crypt32.ExpectedContentTypeFlags.CERT_QUERY_CONTENT_FLAG_SERIALIZED_CERT |
164Interop.Crypt32.ExpectedContentTypeFlags.CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED |
165Interop.Crypt32.ExpectedContentTypeFlags.CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED_EMBED |
166Interop.Crypt32.ExpectedContentTypeFlags.CERT_QUERY_CONTENT_FLAG_PFX;
168private const Interop.Crypt32.ExpectedFormatTypeFlags X509ExpectedFormatTypeFlags = Interop.Crypt32.ExpectedFormatTypeFlags.CERT_QUERY_FORMAT_FLAG_ALL;
System\Security\Cryptography\X509Certificates\FindPal.Windows.cs (51)
32string? oidValue = Interop.Crypt32.FindOidInfo(Interop.Crypt32.CryptOidInfoKeyType.CRYPT_OID_INFO_NAME_KEY, maybeOid, expectedGroup, fallBackToAllGroups: true).OID;
47Interop.Crypt32.DATA_BLOB blob = new Interop.Crypt32.DATA_BLOB(new IntPtr(pThumbPrint), (uint)thumbPrint.Length);
48FindCore<object>(Interop.Crypt32.CertFindType.CERT_FIND_HASH, &blob);
56FindCore<object>(Interop.Crypt32.CertFindType.CERT_FIND_SUBJECT_STR, pSubjectName);
66string actual = GetCertNameInfo(pCertContext, Interop.Crypt32.CertNameType.CERT_NAME_RDN_TYPE, Interop.Crypt32.CertNameFlags.None);
75FindCore<object>(Interop.Crypt32.CertFindType.CERT_FIND_ISSUER_STR, pIssuerName);
85string actual = GetCertNameInfo(pCertContext, Interop.Crypt32.CertNameType.CERT_NAME_RDN_TYPE, Interop.Crypt32.CertNameFlags.CERT_NAME_ISSUER_FLAG);
116Interop.Crypt32.FILETIME fileTime = Interop.Crypt32.FILETIME.FromDateTime(dateTime);
122int comparison = Interop.Crypt32.CertVerifyTimeValidity(
146string expectedOidValue = Interop.Crypt32.FindOidInfo(
147Interop.Crypt32.CryptOidInfoKeyType.CRYPT_OID_INFO_NAME_KEY,
166Interop.Crypt32.CERT_INFO* pCertInfo = pCertContext.DangerousCertContext->pCertInfo;
167Interop.Crypt32.CERT_EXTENSION* pV1Template = Interop.Crypt32.CertFindExtension(
188Interop.Crypt32.CERT_EXTENSION* pV2Template = Interop.Crypt32.CertFindExtension(
221if (!Interop.Crypt32.CertGetValidUsages(1, ref pCertContext, out numOids, null, ref cbData))
234if (!Interop.Crypt32.CertGetValidUsages(1, ref pCertContext, out numOids, pOidsPointer, ref cbData))
280Interop.Crypt32.CERT_INFO* pCertInfo = pCertContext.DangerousCertContext->pCertInfo;
281Interop.Crypt32.CERT_EXTENSION* pCertExtension = Interop.Crypt32.CertFindExtension(
310Interop.Crypt32.CERT_INFO* pCertInfo = pCertContext.DangerousCertContext->pCertInfo;
311Interop.Crypt32.CERT_EXTENSION* pCertExtension = Interop.Crypt32.CertFindExtension(oidValue, pCertInfo->cExtension, pCertInfo->rgExtension);
323Interop.Crypt32.CERT_INFO* pCertInfo = pCertContext.DangerousCertContext->pCertInfo;
326if (!Interop.crypt32.CertGetIntendedKeyUsage(Interop.Crypt32.CertEncodingType.All, pCertInfo, out actual, sizeof(X509KeyUsageFlags)))
346if (!Interop.Crypt32.CertGetCertificateContextPropertyPtr(
348Interop.Crypt32.CertContextPropId.CERT_KEY_IDENTIFIER_PROP_ID,
366if (!Interop.Crypt32.CertGetCertificateContextPropertyPtr(
368Interop.Crypt32.CertContextPropId.CERT_KEY_IDENTIFIER_PROP_ID,
388FindCore(Interop.Crypt32.CertFindType.CERT_FIND_ANY, null, state, filter);
391private unsafe void FindCore<TState>(Interop.Crypt32.CertFindType dwFindType, void* pvFindPara, TState state = default!, Func<TState, SafeCertContextHandle, bool>? filter = null)
393SafeCertStoreHandle findResults = Interop.crypt32.CertOpenStore(
395Interop.Crypt32.CertEncodingType.All,
397Interop.Crypt32.CertStoreFlags.CERT_STORE_ENUM_ARCHIVED_FLAG | Interop.Crypt32.CertStoreFlags.CERT_STORE_CREATE_NEW_FLAG,
409while (Interop.crypt32.CertFindCertificateInStore(_storePal.SafeCertStoreHandle, dwFindType, pvFindPara, ref pCertContext))
424if (!Interop.Crypt32.CertAddCertificateLinkToStore(findResults, pCertContext, Interop.Crypt32.CertStoreAddDisposition.CERT_STORE_ADD_ALWAYS, IntPtr.Zero))
473private static string GetCertNameInfo(SafeCertContextHandle pCertContext, Interop.Crypt32.CertNameType dwNameType, Interop.Crypt32.CertNameFlags dwNameFlags)
475Debug.Assert(dwNameType != Interop.Crypt32.CertNameType.CERT_NAME_ATTR_TYPE);
476return Interop.crypt32.CertGetNameString(
480Interop.Crypt32.CertNameStringType.CERT_X500_NAME_STR | Interop.Crypt32.CertNameStringType.CERT_NAME_STR_REVERSE_FLAG);
System\Security\Cryptography\X509Certificates\StorePal.Windows.Export.cs (26)
33if (!Interop.crypt32.CertEnumCertificatesInStore(_certStore, ref pCertContext))
56if (!Interop.crypt32.CertEnumCertificatesInStore(_certStore, ref pCertContext))
62if (!Interop.Crypt32.CertSerializeCertificateStoreElement(pCertContext, 0, null, ref cbEncoded))
66if (!Interop.Crypt32.CertSerializeCertificateStoreElement(pCertContext, 0, pbEncoded, ref cbEncoded))
81return SaveToMemoryStore(Interop.Crypt32.CertStoreSaveAs.CERT_STORE_SAVE_AS_STORE);
84return SaveToMemoryStore(Interop.Crypt32.CertStoreSaveAs.CERT_STORE_SAVE_AS_PKCS7);
104Interop.Crypt32.DATA_BLOB dataBlob = new Interop.Crypt32.DATA_BLOB(IntPtr.Zero, 0);
105Interop.Crypt32.PFXExportFlags flags =
106Interop.Crypt32.PFXExportFlags.EXPORT_PRIVATE_KEYS |
107Interop.Crypt32.PFXExportFlags.REPORT_NOT_ABLE_TO_EXPORT_PRIVATE_KEY;
109Interop.Crypt32.PKCS12_PBES2_EXPORT_PARAMS* exportParams = null;
113Interop.Crypt32.PKCS12_PBES2_EXPORT_PARAMS specifiedParams = new()
115dwSize = (uint)sizeof(Interop.Crypt32.PKCS12_PBES2_EXPORT_PARAMS),
124flags |= Interop.Crypt32.PFXExportFlags.PKCS12_EXPORT_PBES2_PARAMS;
143if (!Interop.Crypt32.PFXExportCertStoreEx(_certStore, ref dataBlob, password, exportParams, flags))
154if (!Interop.Crypt32.PFXExportCertStoreEx(_certStore, ref dataBlob, password, exportParams, flags))
251private byte[] SaveToMemoryStore(Interop.Crypt32.CertStoreSaveAs dwSaveAs)
255Interop.Crypt32.DATA_BLOB blob = new Interop.Crypt32.DATA_BLOB(IntPtr.Zero, 0);
256if (!Interop.Crypt32.CertSaveStore(_certStore, Interop.Crypt32.CertEncodingType.All, dwSaveAs, Interop.Crypt32.CertStoreSaveTo.CERT_STORE_SAVE_TO_MEMORY, ref blob, 0))
263if (!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 (43)
35Interop.Crypt32.DATA_BLOB blob = new Interop.Crypt32.DATA_BLOB(new IntPtr(pRawData), (uint)(fromFile ? 0 : rawData!.Length));
38Interop.Crypt32.ContentType contentType;
40if (!Interop.Crypt32.CryptQueryObject(
41fromFile ? Interop.Crypt32.CertQueryObjectType.CERT_QUERY_OBJECT_FILE : Interop.Crypt32.CertQueryObjectType.CERT_QUERY_OBJECT_BLOB,
44Interop.Crypt32.ExpectedFormatTypeFlags.CERT_QUERY_FORMAT_FLAG_ALL,
59if (contentType == Interop.Crypt32.ContentType.CERT_QUERY_CONTENT_PFX)
124SafeCertStoreHandle certStore = Interop.crypt32.CertOpenStore(
126Interop.Crypt32.CertEncodingType.All,
128Interop.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))
154SafeCertStoreHandle certStore = Interop.crypt32.CertOpenStore(
156Interop.Crypt32.CertEncodingType.All,
158Interop.Crypt32.CertStoreFlags.CERT_STORE_ENUM_ARCHIVED_FLAG | Interop.Crypt32.CertStoreFlags.CERT_STORE_CREATE_NEW_FLAG,
176if (!Interop.Crypt32.CertAddCertificateLinkToStore(certStore, certContext, Interop.Crypt32.CertStoreAddDisposition.CERT_STORE_ADD_ALWAYS, IntPtr.Zero))
194Interop.Crypt32.CertStoreFlags certStoreFlags = MapX509StoreFlags(storeLocation, openFlags);
196SafeCertStoreHandle 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);
216private static Interop.Crypt32.CertStoreFlags MapX509StoreFlags(StoreLocation storeLocation, OpenFlags flags)
218Interop.Crypt32.CertStoreFlags dwFlags = 0;
223dwFlags |= Interop.Crypt32.CertStoreFlags.CERT_STORE_READONLY_FLAG;
226dwFlags |= Interop.Crypt32.CertStoreFlags.CERT_STORE_MAXIMUM_ALLOWED_FLAG;
231dwFlags |= Interop.Crypt32.CertStoreFlags.CERT_STORE_OPEN_EXISTING_FLAG;
233dwFlags |= Interop.Crypt32.CertStoreFlags.CERT_STORE_ENUM_ARCHIVED_FLAG;
236dwFlags |= Interop.Crypt32.CertStoreFlags.CERT_SYSTEM_STORE_LOCAL_MACHINE;
238dwFlags |= Interop.Crypt32.CertStoreFlags.CERT_SYSTEM_STORE_CURRENT_USER;
243private const Interop.Crypt32.ExpectedContentTypeFlags StoreExpectedContentFlags =
244Interop.Crypt32.ExpectedContentTypeFlags.CERT_QUERY_CONTENT_FLAG_CERT |
245Interop.Crypt32.ExpectedContentTypeFlags.CERT_QUERY_CONTENT_FLAG_SERIALIZED_CERT |
246Interop.Crypt32.ExpectedContentTypeFlags.CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED |
247Interop.Crypt32.ExpectedContentTypeFlags.CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED_EMBED |
248Interop.Crypt32.ExpectedContentTypeFlags.CERT_QUERY_CONTENT_FLAG_PKCS7_UNSIGNED |
249Interop.Crypt32.ExpectedContentTypeFlags.CERT_QUERY_CONTENT_FLAG_PFX |
250Interop.Crypt32.ExpectedContentTypeFlags.CERT_QUERY_CONTENT_FLAG_SERIALIZED_STORE;
System\Security\Cryptography\X509Certificates\WindowsHelpers.cs (18)
85if (!Interop.crypt32.CryptDecodeObjectPointer(
86Interop.Crypt32.CertEncodingType.All,
90Interop.Crypt32.CryptDecodeObjectFlags.None,
107if (!Interop.crypt32.CryptDecodeObjectPointer(
108Interop.Crypt32.CertEncodingType.All,
112Interop.Crypt32.CryptDecodeObjectFlags.None,
131if (!Interop.Crypt32.CryptDecodeObjectPointer(
132Interop.Crypt32.CertEncodingType.All,
136Interop.Crypt32.CryptDecodeObjectFlags.None,
153if (!Interop.Crypt32.CryptDecodeObjectPointer(
154Interop.Crypt32.CertEncodingType.All,
158Interop.Crypt32.CryptDecodeObjectFlags.None,
178if (!Interop.crypt32.CryptDecodeObjectPointer(
179Interop.Crypt32.CertEncodingType.All,
182Interop.Crypt32.CryptDecodeObjectFlags.None,
200if (!Interop.crypt32.CryptDecodeObjectPointer(
201Interop.Crypt32.CertEncodingType.All,
204Interop.Crypt32.CryptDecodeObjectFlags.None,
System\Security\Cryptography\X509Certificates\WindowsInterop.crypt32.cs (42)
22Interop.Crypt32.CertNameType certNameType,
23Interop.Crypt32.CertNameFlags certNameFlags,
24Interop.Crypt32.CertNameStringType strType)
45public static SafeCertStoreHandle CertOpenStore(CertStoreProvider lpszStoreProvider, Interop.Crypt32.CertEncodingType dwMsgAndCertEncodingType, IntPtr hCryptProv, Interop.Crypt32.CertStoreFlags dwFlags, string? pvPara)
59Interop.Crypt32.CERT_CONTEXT* pPrevCertContext;
81public static bool CryptDecodeObject(Interop.Crypt32.CertEncodingType dwCertEncodingType, CryptDecodeObjectStructType lpszStructType, byte[] pbEncoded, int cbEncoded, Interop.Crypt32.CryptDecodeObjectFlags dwFlags, byte[]? pvStructInfo, ref int pcbStructInfo)
83return Interop.Crypt32.CryptDecodeObject(dwCertEncodingType, (IntPtr)lpszStructType, pbEncoded, cbEncoded, dwFlags, pvStructInfo, ref pcbStructInfo);
86public static unsafe bool CryptDecodeObjectPointer(Interop.Crypt32.CertEncodingType dwCertEncodingType, CryptDecodeObjectStructType lpszStructType, byte[] pbEncoded, int cbEncoded, Interop.Crypt32.CryptDecodeObjectFlags dwFlags, void* pvStructInfo, ref int pcbStructInfo)
88return Interop.Crypt32.CryptDecodeObjectPointer(dwCertEncodingType, (IntPtr)lpszStructType, pbEncoded, cbEncoded, dwFlags, pvStructInfo, ref pcbStructInfo);
91public static unsafe bool CryptDecodeObjectPointer(Interop.Crypt32.CertEncodingType dwCertEncodingType, CryptDecodeObjectStructType lpszStructType, ReadOnlySpan<byte> encoded, Interop.Crypt32.CryptDecodeObjectFlags dwFlags, void* pvStructInfo, ref int pcbStructInfo)
95return Interop.Crypt32.CryptDecodeObjectPointer(dwCertEncodingType, (IntPtr)lpszStructType, pEncoded, encoded.Length, dwFlags, pvStructInfo, ref pcbStructInfo);
99public static unsafe bool CryptEncodeObject(Interop.Crypt32.CertEncodingType dwCertEncodingType, CryptDecodeObjectStructType lpszStructType, void* pvStructInfo, byte[]? pbEncoded, ref int pcbEncoded)
101return Interop.Crypt32.CryptEncodeObject(dwCertEncodingType, (IntPtr)lpszStructType, pvStructInfo, pbEncoded, ref pcbEncoded);
107if (!Interop.crypt32.CryptEncodeObject(Interop.Crypt32.CertEncodingType.All, lpszStructType, decoded, null, ref cb))
111if (!Interop.crypt32.CryptEncodeObject(Interop.Crypt32.CertEncodingType.All, lpszStructType, decoded, encoded, ref cb))
120if (!Interop.Crypt32.CryptEncodeObject(Interop.Crypt32.CertEncodingType.All, lpszStructType, decoded, null, ref cb))
124if (!Interop.Crypt32.CryptEncodeObject(Interop.Crypt32.CertEncodingType.All, lpszStructType, decoded, encoded, ref cb))
130internal static SafeChainEngineHandle CertCreateCertificateChainEngine(ref Interop.Crypt32.CERT_CHAIN_ENGINE_CONFIG config)
132if (!Interop.Crypt32.CertCreateCertificateChainEngine(ref config, out SafeChainEngineHandle chainEngineHandle))
149public static unsafe bool CertFindCertificateInStore(SafeCertStoreHandle hCertStore, Interop.Crypt32.CertFindType dwFindType, void* pvFindPara, [NotNull] ref SafeCertContextHandle? pCertContext)
151Interop.Crypt32.CERT_CONTEXT* pPrevCertContext = null;
158pCertContext = Interop.Crypt32.CertFindCertificateInStore(hCertStore, Interop.Crypt32.CertEncodingType.All, Interop.Crypt32.CertFindFlags.None, dwFindType, pvFindPara, pPrevCertContext);
162public static unsafe bool CertGetIntendedKeyUsage(Interop.Crypt32.CertEncodingType dwCertEncodingType, Interop.Crypt32.CERT_INFO* pCertInfo, out X509KeyUsageFlags pbKeyUsage, int cbKeyUsage)
164bool result = Interop.Crypt32.CertGetIntendedKeyUsage(dwCertEncodingType, pCertInfo, out Interop.Crypt32.X509KeyUsageFlags x509KeyUsageFlags, cbKeyUsage);
169public static bool CertVerifyCertificateChainPolicy(ChainPolicy pszPolicyOID, SafeX509ChainHandle pChainContext, ref Interop.Crypt32.CERT_CHAIN_POLICY_PARA pPolicyPara, ref Interop.Crypt32.CERT_CHAIN_POLICY_STATUS pPolicyStatus)
171return Interop.Crypt32.CertVerifyCertificateChainPolicy((IntPtr)pszPolicyOID, pChainContext, ref pPolicyPara, ref pPolicyStatus);
174public static bool CryptAcquireCertificatePrivateKey(SafeCertContextHandle pCert, Interop.Crypt32.CryptAcquireCertificatePrivateKeyFlags dwFlags, IntPtr pvParameters, out SafeNCryptKeyHandle phCryptProvOrNCryptKey, out int pdwKeySpec, out bool pfCallerFreeProvOrNCryptKey)
176bool result = Interop.Crypt32.CryptAcquireCertificatePrivateKey(pCert, dwFlags, pvParameters, out phCryptProvOrNCryptKey, out Interop.Crypt32.CryptKeySpec pdwKeySpecEnum, out pfCallerFreeProvOrNCryptKey);
System\Security\Cryptography\X509Certificates\X509Pal.Windows.PublicKey.cs (17)
9using static Interop.Crypt32;
10using NTSTATUS = Interop.BCrypt.NTSTATUS;
51int algId = Interop.Crypt32.FindOidInfo(CryptOidInfoKeyType.CRYPT_OID_INFO_OID_KEY, oid.Value!, OidGroup.PublicKeyAlgorithm, fallBackToAllGroups: true).AlgId;
136bool success = Interop.Crypt32.CryptImportPublicKeyInfoEx2(
137Interop.Crypt32.CertEncodingType.X509_ASN_ENCODING,
165return Interop.BCrypt.BCryptExportKey(bCryptKeyHandle, blobFormatString);
179Debug.Assert(ecBlob.Length >= sizeof(Interop.BCrypt.BCRYPT_ECCKEY_BLOB));
183Interop.BCrypt.BCRYPT_ECCKEY_BLOB* pBcryptBlob = (Interop.BCrypt.BCRYPT_ECCKEY_BLOB*)pEcBlob;
185int offset = sizeof(Interop.BCrypt.BCRYPT_ECCKEY_BLOB);
189X = Interop.BCrypt.Consume(ecBlob, ref offset, pBcryptBlob->cbKey),
190Y = Interop.BCrypt.Consume(ecBlob, ref offset, pBcryptBlob->cbKey)
195ecParams.D = Interop.BCrypt.Consume(ecBlob, ref offset, pBcryptBlob->cbKey);
204if (!Interop.crypt32.CryptDecodeObject(CertEncodingType.All, lpszStructType, encodedKeyValue, encodedKeyValue.Length, CryptDecodeObjectFlags.None, null, ref cbDecoded))
208if (!Interop.crypt32.CryptDecodeObject(CertEncodingType.All, lpszStructType, encodedKeyValue, encodedKeyValue.Length, CryptDecodeObjectFlags.None, keyBlob, ref cbDecoded))
353NTSTATUS errorCode = Interop.BCrypt.BCryptGetProperty(cryptHandle, propertyName, null, 0, out numBytesNeeded, 0);
360errorCode = Interop.BCrypt.BCryptGetProperty(cryptHandle, propertyName, pPropertyValue, propertyValue.Length, out numBytesNeeded, 0);
System\Security\Cryptography\X509Certificates\X509Pal.Windows.X500DistinguishedName.cs (29)
18int dwStrType = (int)(Interop.Crypt32.CertNameStrTypeAndFlags.CERT_X500_NAME_STR | MapNameToStrFlag(flag));
23Interop.Crypt32.DATA_BLOB nameBlob;
27int cchDecoded = Interop.Crypt32.CertNameToStr((int)Interop.Crypt32.CertEncodingType.All, &nameBlob, dwStrType, null, 0);
34if (Interop.Crypt32.CertNameToStr((int)Interop.Crypt32.CertEncodingType.All, &nameBlob, dwStrType, ptr, cchDecoded) == 0)
47Interop.Crypt32.CertNameStrTypeAndFlags dwStrType = Interop.Crypt32.CertNameStrTypeAndFlags.CERT_X500_NAME_STR | MapNameToStrFlag(flag);
50if (!Interop.Crypt32.CertStrToName(Interop.Crypt32.CertEncodingType.All, distinguishedName, dwStrType, IntPtr.Zero, null, ref cbEncoded, IntPtr.Zero))
54if (!Interop.Crypt32.CertStrToName(Interop.Crypt32.CertEncodingType.All, distinguishedName, dwStrType, IntPtr.Zero, encodedName, ref cbEncoded, IntPtr.Zero))
65int stringType = multiLine ? Interop.Crypt32.CRYPT_FORMAT_STR_MULTI_LINE : Interop.Crypt32.CRYPT_FORMAT_STR_NONE;
68if (!Interop.Crypt32.CryptFormatObject(
69(int)Interop.Crypt32.CertEncodingType.X509_ASN_ENCODING,
86if (!Interop.Crypt32.CryptFormatObject(
87(int)Interop.Crypt32.CertEncodingType.X509_ASN_ENCODING,
104private static Interop.Crypt32.CertNameStrTypeAndFlags MapNameToStrFlag(X500DistinguishedNameFlags flag)
111Interop.Crypt32.CertNameStrTypeAndFlags dwStrType = 0;
115dwStrType |= Interop.Crypt32.CertNameStrTypeAndFlags.CERT_NAME_STR_REVERSE_FLAG;
118dwStrType |= Interop.Crypt32.CertNameStrTypeAndFlags.CERT_NAME_STR_SEMICOLON_FLAG;
120dwStrType |= Interop.Crypt32.CertNameStrTypeAndFlags.CERT_NAME_STR_COMMA_FLAG;
122dwStrType |= Interop.Crypt32.CertNameStrTypeAndFlags.CERT_NAME_STR_CRLF_FLAG;
125dwStrType |= Interop.Crypt32.CertNameStrTypeAndFlags.CERT_NAME_STR_NO_PLUS_FLAG;
127dwStrType |= Interop.Crypt32.CertNameStrTypeAndFlags.CERT_NAME_STR_NO_QUOTING_FLAG;
130dwStrType |= Interop.Crypt32.CertNameStrTypeAndFlags.CERT_NAME_STR_FORCE_UTF8_DIR_STR_FLAG;
133dwStrType |= Interop.Crypt32.CertNameStrTypeAndFlags.CERT_NAME_STR_ENABLE_UTF8_UNICODE_FLAG;
135dwStrType |= Interop.Crypt32.CertNameStrTypeAndFlags.CERT_NAME_STR_ENABLE_T61_UNICODE_FLAG;