Сбой смарт-карты ОБЩИЙ АВТОРИТИК под VMWare

Попытка работы со считывателем смарт-карт с виртуальной машины VMWare Player, которая является Windows 8.1 AMD64. Карта является выпущенной правительством США картой PIV, как описано в соответствующем стандарте NIST. Хост Windows 7 AMD64.

Я работаю с WinSCard API. Команды VERIFY и GET DATA работают должным образом. Однако когда я выполняю GENERAL AUTHENTICATE для генерации цифровой подписи, SCardTransmit () возвращает код ошибки 1, и в выходных данных отладки появляются сообщения:

First-chance exception at 0x77675B68 (KernelBase.dll) in PIVTool.exe:  0x00000001: Incorrect function.
First-chance exception at 0x77675B68 (KernelBase.dll) in PIVTool.exe: 0x0000071A: The remote procedure call was canceled, or if a call time-out was specified, the call timed out.
First-chance exception at 0x77675B68 in PIVTool.exe: Microsoft C++ exception: unsigned long at memory location 0x0113E48C.

И в системном журнале тоже есть сообщения на этот счет:

Служба смарт-карт, ID 610: Считыватель смарт-карт «VMware Virtual USB CCID 0» отклонен ПЕРЕДАЧА IOCTL: Неверная функция. Если эта ошибка повторяется, ваша смарт-карта или устройство чтения могут работать неправильно.

Заголовок команды: 00 87 07 9c

Заголовок команды соответствует тому, что я передаю.

WudfUsbccidDrv ID 11: Запрос возвратил ошибку.
MsgType: 0x80
ICCStatus: 0x0
CmdStatus: 0x1
Ошибка: 0x0
SW1: 0x0
SW2: 0x0

а потом

WudfUsbccidDrv ID 1: Операция не выполнена (0x0, 0x0, 0x0, 0x0).
ScT1Transmit: не удалось отправить запрос.
HResult: указанный запрос не является допустимой операцией для целевого устройства.

а также

WudfUsbccidDrv ID 10: Запрос [0] (CLS = 0x0, INS = 0x87, P1 = 0x7, P2 = 0x9C, Lc = 266, Le = 0, .NETServiceMethod = 0x0)

опять же, это именно моя просьба.

Тот же код работает как положено на хост-машине. Та же карта, тот же физический читатель, та же команда. Драйвер карты может быть другим.

Я пробовал эквивалентный фрагмент кода Java против поставщика безопасности SunPCSC, просто чтобы проверить наличие незначительных сбоев протокола; это терпит неудачу на VM с подобным сообщением:

javax.smartcardio.CardException: sun.security.smartcardio.PCSCException: неизвестная ошибка 0x1

Похоже, что слой виртуализации VMWare для смарт-карт не любит эту конкретную команду. Есть идеи, пожалуйста?

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]