Я использую библиотеку pcsc-sharp для связи со считывателем ACR122U и чтения/ запись информации на карты MIFARE Classic 1k.
После знакомства с библиотекой и концепцией APDU я могу использовать UID карты в качестве идентификатора в своих приложениях. Теперь мне нужно установить свои собственные идентификаторы на карту. Поэтому я прочитал несколько руководств по MIFARE NXP (например, MF1S70YYX_V1), а также получил некоторую информацию о ИСО 7816-4.
Мне известно о необходимости аутентификации перед доступом к памяти карты для выполнения операций чтения/записи, и я знаю стандартное значение ключа.
Я скачал примеры pcsc-sharp с GitHub и запустил пример Mifare1kTest. I работает, но card.LoadKey
в строке 36 не работает. Значения ответа команды Apdu в LoadKey
: SW1=99 SW2=0, которые я не могу найти ни в одной документации. Комментирование раздела «создать новое исключение» заставляет пример работать.
Теперь мой вопрос заключается в том, какие значения являются правильными для передачи в Card.LoadKey
, соответственно, какие значения являются правильными для использования для параметров в команде Apdu. Что подразумевается под «номером ключа» (номер сектора — комбинация секторов/блоков)? Нужен ли вызов LoadKey
, если пример работает?