Я пытаюсь получить информацию о слоте HSM (ATOS HSM Trustway Proteccio ™ NetHSM), используя веб-сервис asmx с pkcs11interop.Мой веб-сервис получает информацию с помощью IIS 10 Express в Visual Studio. Когда я пытаюсь развернуть веб-сервис на IIS 10 в моих окнах 10, у меня появляется эта ошибка:
Net.Pkcs11Interop.Common.Pkcs11Exception: Метод C_Initialize возвращает CKR_CRYPTOKI_NOT_INITIALIZED à Net.Pkcs11Interop.HighLevelAPI41.Pkcs11..ctor (String libraryPath, AppType appType) à Net.Pkcs11Interop.HighLevelAPI.PypePHP (TKP) 11C: \ Users \ jussieu \ Source \ Repos \ Test \ TestHsm.asmx.cs: ligne 30
Журнал из pkcs11-logger: Вызов C_Initialize 0x00003f7c: 0x00003db0: Входные данные 0x00003f7c: 0x00003BF0: 0x3: 0: 0x0: 0: 0: 0: 0: 0: 0: 0: 0: 0: 0: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 6 0 0 6 8 6 8 8 8 6 6 6 6 6 6 6 6 6 6 6 5 5 5 5 5 5 5 5 5 5 5 5 5 0 ф ф: 0x00003db0: CreateMutex: 00000000 0x00003f7c: 0x00003db0: DestroyMutex: 00000000 0x00003f7c: 0x00003db0: LockMutex: 00000000 0x00003f7c: 0x00003db0: UnlockMutex: 00000000 0x00003f7c: 0x00003db0: Флаги: 2 0x00003f7c: 0x00003db0: CKF_LIBRARY_CANT_CREATE_OS_THREADS: FALSE 0x00003f7c: 0x00003db0: CKF_OS_LOCKING_OK: TRUE 0x00003f7c: 0x00003db0: pReserved: 00000000 0x00003f7c: 0x00003db0: возвращение 400 (CKR_CRYPTOKI_NOT_INITIALIZED)
спасибо, что вы * мне нужны * * * * * * * * * * * * * * * * * * * * * * * * * * * ко мне1008 * Я использую
- Windows 10 Ver 1809
- Visual Studio 2017
- pkcs11interop 4.1.1
- Я запускаю IIS Express в 32и 64 бита все было в порядке
- Я дал IUSR и IIS_IUSRS авторизацию виртуальной папке веб-службы в IIS, но ничего не изменилось.
string retourE = "Hello";
if (Net.Pkcs11Interop.Common.Platform.Uses64BitRuntime)
{
pkcs11LibraryPath = @"C:\Windows\System32\nethsm.dll";
loggerLibrary = @"C:\Users\jussieu\PROJETS\HSM\lib\pkcs11-logger-x64.dll";
logFile = @"C:\Users\jussieu\Documents\PROJETS\HSM\lib\pkcs11-logger-x64.log";
}
else
{
pkcs11LibraryPath = @"C:\Windows\SysWOW64\nethsm.dll";
loggerLibrary = @"C:\Users\jussieu\Documents\PROJETS\HSM\lib\pkcs11-logger-x86.dll";
logFile = @"C:\Users\jussieu\Documents\PROJETS\HSM\lib\pkcs11-logger-x86.log";
}
System.Environment.SetEnvironmentVariable("PKCS11_LOGGER_LIBRARY_PATH", pkcs11LibraryPath);
System.Environment.SetEnvironmentVariable("PKCS11_LOGGER_LOG_FILE_PATH", logFile);
System.Environment.SetEnvironmentVariable("PKCS11_LOGGER_FLAGS", "64");
using (Pkcs11 pkcs11 = new Net.Pkcs11Interop.HighLevelAPI.Pkcs11(loggerLibrary, AppType.MultiThreaded))
{
// Show general information about loaded library
LibraryInfo libraryInfo = pkcs11.GetInfo();
Console.WriteLine("Library");
Console.WriteLine(" Manufacturer: " + libraryInfo.ManufacturerId);
Console.WriteLine(" Description: " + libraryInfo.LibraryDescription);
Console.WriteLine(" Version: " + libraryInfo.LibraryVersion);
// Get list of all available slots
foreach (Slot slot in pkcs11.GetSlotList(SlotsType.WithOrWithoutTokenPresent))
{
// Show basic information about slot
SlotInfo slotInfo = slot.GetSlotInfo();
Console.WriteLine();
Console.WriteLine("Slot ");
Console.WriteLine(" Manufacturer: " + slotInfo.ManufacturerId);
Console.WriteLine(" Description: " + slotInfo.SlotDescription);
Console.WriteLine(" Token present: " + slotInfo.SlotFlags.TokenPresent);
if (slotInfo.SlotFlags.TokenPresent)
{
// Show basic information about token present in the slot
TokenInfo tokenInfo1 = slot.GetTokenInfo();
Console.WriteLine("Token 1");
Console.WriteLine(" Manufacturer: " + tokenInfo1.ManufacturerId);
Console.WriteLine(" Model: " + tokenInfo1.Model);
Console.WriteLine(" Serial number: " + tokenInfo1.SerialNumber);
Console.WriteLine(" Label: " + tokenInfo1.Label);
retourE = tokenInfo1.Label.ToString();
// Show list of mechanisms supported by the token
Console.WriteLine("Supported mechanisms TOKENS 1: ");
foreach (CKM mechanism in slot.GetMechanismList())
Console.WriteLine(" " + mechanism);
}
}
return retourE;
}
Я ожидаю, что веб-служба будет работать на IIS10, но работает только на IIS EXPRESS