Я пытаюсь переключить карту Mifare Plus в режим SL1 с помощью Omnikey 5421, однако использование интерфейса «Общая команда карты», как указано в документации, похоже, не работает (карта не возвращает никаких выходных данных, кроме0x9000, который, кажется, является только подтверждением, что команда была успешно отправлена - в ответе должны быть дополнительные байты до 0x90 0x00, которые поступают от самого чипа).
Последовательность отправляется с использованием SCardTransmit:
0xFF 0xA0 0x00 0x07 0x03 0x01 0x00 0x01 - ввести общий сеанс - возвращает 0x9000
... дополнительные команды с использованием документации:
0xFF 0xA0 0x00 0x05 6 + n 01 00 F3 00 0064 + Mifare + команда 00 - возвращает 0x9000 независимо от команды, даже если недопустимые команды Mifare +
0xFF 0xA0 0x00 0x07 0x03 0x01 0x00 0x02 - выйти из общего сеанса - возвращает 0x9000 все еще
Единственные команды, которые отображаютсядля работы вход и выход, любая другая команда, которую я посылаю между ними, похоже, не имеетэффект, в том числе RATS, Writeperso или Commitperso.Когда я добавляю байт 00 Le в конце, код возврата будет 0x6400 вместо 0x9000, хотя в документах говорится, что байт Le должен добавляться при выполнении команд Mifare +.
Все остальные операции работают нормально, как только картыперсонализированный в режиме SL1 (чтение, запись, аутентификация).Я уже могу переключить карту в режим SL1 с помощью Android NFC, так что, похоже, это не проблема с алгоритмом или картой.
Я пытался использовать команду из документации PC / SC часть 3, но код возврата «не поддерживается», поэтому кажется, что для выдачи команд 14443А доступен только этот механизм прозрачного канала.