smartcard: take in account the module path for listing smartcards

The PKCS1 module was taken only for the kerberos part.
Also make as exported the winpr_NCryptOpenStorageProviderEx function.
This commit is contained in:
David Fort
2022-04-14 08:17:48 +02:00
committed by akallabeth
parent 752ac3b479
commit f232562d8b
2 changed files with 13 additions and 2 deletions

View File

@@ -268,7 +268,18 @@ static BOOL smartcard_hw_enumerateCerts(const rdpSettings* settings, LPCWSTR csp
goto out;
}
status = NCryptOpenStorageProvider(&provider, csp, 0);
if (settings->Pkcs11Module)
{
LPCSTR paths[] = {
settings->Pkcs11Module,
NULL
};
status = winpr_NCryptOpenStorageProviderEx(&provider, csp, 0, paths);
}
else
status = NCryptOpenStorageProvider(&provider, csp, 0);
if (status != ERROR_SUCCESS)
{
WLog_ERR(TAG, "unable to open provider");

View File

@@ -198,7 +198,7 @@ extern "C"
* @param modulePaths [in] an array of library path to try to load ended with a NULL string
* @return ERROR_SUCCESS or an NTE error code something failed
*/
SECURITY_STATUS winpr_NCryptOpenStorageProviderEx(NCRYPT_PROV_HANDLE* phProvider,
WINPR_API SECURITY_STATUS winpr_NCryptOpenStorageProviderEx(NCRYPT_PROV_HANDLE* phProvider,
LPCWSTR pszProviderName, DWORD dwFlags,
LPCSTR* modulePaths);