Я играю с токеном Athena IDProtect v2 от NXP (совместимым с линейкой продуктов IDProtect Laser) в Windows 10 Pro (x64 German).
После установки промежуточного ПО клиента Athena 7.10.00 (x64) - с настройкой поставщика Athena CSP по умолчанию для Windows и без нее - и после форматирования токена я могу использовать его из инструмента Pkcs11Admin , а также из OpenSC pkcs11-tool.
Используемая библиотека - C:\Windows\System32\asepkcs.dll
из Криптоки ASE 3.1.
«Диалоговое окно« Выбрать смарт-карту »появляется в функции PKCS # 11 C_Login
кажется, и это происходит независимо от того, присутствует ли у меня один или несколько читателей. Это происходит в нескольких клиентах PKCS11 (включая Java keytool):
Извините за немецкий, в сообщении говорится, что "запрошенная операция не может быть выполнена или требуется другая смарт-карта".
Журнал шпиона PKCS11 от инструмента PKCS11Admin наиболее показателен. C_Login
зависает, пока я не нажму "Отмена" в диалоговом окне, а затем вернусь с CKR_OK:
0x00000274 : 0x00001494 : Calling C_OpenSession
0x00000274 : 0x00001494 : Input
0x00000274 : 0x00001494 : slotID: 0
0x00000274 : 0x00001494 : flags: 6
0x00000274 : 0x00001494 : CKF_RW_SESSION: TRUE
0x00000274 : 0x00001494 : CKF_SERIAL_SESSION: TRUE
0x00000274 : 0x00001494 : pApplication: 0000000000000000
0x00000274 : 0x00001494 : Notify: 0000000000000000
0x00000274 : 0x00001494 : phSession: 0000004AD91FD370
0x00000274 : 0x00001494 : *phSession: 3642741616
0x00000274 : 0x00001494 : Output
0x00000274 : 0x00001494 : phSession: 0000004AD91FD370
0x00000274 : 0x00001494 : *phSession: 1
0x00000274 : 0x00001494 : Returning 0 (CKR_OK)
0x00000274 : 0x00001494 : *********************** 2017-06-03 21:24:14 ***
0x00000274 : 0x00001494 : Calling C_Login
0x00000274 : 0x00001494 : Input
0x00000274 : 0x00001494 : hSession: 1
0x00000274 : 0x00001494 : userType: 1 (CKU_USER)
0x00000274 : 0x00001494 : pPin: 00000236C5779128
0x00000274 : 0x00001494 : *pPin: *** Intentionally hidden ***
0x00000274 : 0x00001494 : ulPinLen: 8
... <here it hangs till I cancel the dialog> ...
0x00000274 : 0x00001494 : Returning 0 (CKR_OK)
0x00000274 : 0x00000d38 : ********************** 2017-06-03 21:26:24 ***
0x00000274 : 0x00000d38 : Calling C_GetSlotInfo
0x00000274 : 0x00000d38 : Input
0x00000274 : 0x00000d38 : slotID: 0
0x00000274 : 0x00000d38 : pInfo: 0000004AEBE7E630
0x00000274 : 0x00000d38 : Output
0x00000274 : 0x00000d38 : pInfo: 0000004AEBE7E630
0x00000274 : 0x00000d38 : slotDescription: Athena IDProtect Key v2 0
0x00000274 : 0x00000d38 : manufacturerID: Athena
0x00000274 : 0x00000d38 : flags: 7
0x00000274 : 0x00000d38 : CKF_TOKEN_PRESENT: TRUE
0x00000274 : 0x00000d38 : CKF_REMOVABLE_DEVICE: TRUE
0x00000274 : 0x00000d38 : CKF_HW_SLOT: TRUE
0x00000274 : 0x00000d38 : hardwareVersion:
0x00000274 : 0x00000d38 : major: 1
0x00000274 : 0x00000d38 : minor: 0
0x00000274 : 0x00000d38 : firmwareVersion:
0x00000274 : 0x00000d38 : major: 1
0x00000274 : 0x00000d38 : minor: 0
0x00000274 : 0x00000d38 : Returning 0 (CKR_OK)
Я заметил, что когда я использую certutil.exe -SCInfo
у него та же проблема, но его можно подавить с помощью -silent
(но я думаю, что certutil использует не PKCS # 11, а непосредственно драйверы CNG. В Certutil это происходит как с драйвером базовой карты Microsoft, так и с драйвером карты Athena).
Кстати, только certutil и всплывающее окно Windows называют эту карту "CJCOP3", другое имя предоставляется в профиле.
Есть идеи, что это может быть?