Если кому интересно, я таки, нашел кусочек. (
M2-02_MIFARE-Plus_RBt_07.pdfЕще известны, из вот этого источника, номера команд (
phalMfp_Int.h)
Опытным путем выяснено, что братья китайцы не заморачивались, выпускают считыватели просто с измененным номером команды (
MIFARE Plus Card Operation Guide.pdf.
Конечно, там ничего не сказано про авторизацию, но пока и не надо.
Теперь о моих опытах, может кому поможет:
Write_perso отвечает. Формат команды 0xa8 b[0..1] k[0..15] (b - блок, K - ключ (16байт)) LSB, MSB установлено опытным путем.
На плюсовых картах отвечает - 0x90 "ОК"
На картах где его быть не должно (Desfire EV1) - "0x1C"
Команды плюсовой карты должны быть завернуты в ISO14443-4 (
MFRC522Extended.cpp)
Сейчас делаю как сказано в китайском даташите:
Инициализирую все сектора с 0x4000-0x404f с шагом 2 (четные - ключ А, нечетные - ключ B (MF Classic?)),
Если брать, что 0x90 - ОК, то что такое 0x09 было долго непонятно.
На карте с 2к, после сектора 0x4040 ответ меняется с 0x90 на 0x09, Зная, что карта с 2к имеет 32 сектора (до 3f, если по 2 на сектор), можно предположить что ответ 0x09 - Ошибка в номере блока
Далее китайцы советуют записать блоки 0x9000-0x9003 в которых хранятся глобальные ключи (Мастер, Настройки, Ключ на L2, Ключ на L3)
Здесь я снова встретил статус 0x09 в блоке 9002, зная что у меня карта MIFARE Plus S 2K которая не умеет L2, это убеждает меня, что 0x09 - ошибка в номере блока
Потом попытался сделать команду commit_perso (0xaa) - и получил 0x90, карта отключилась. У нее поменялся SAK, был 0x20 (MFP L3 согласно AN10833) стал 0x08 (MFP L1), значит что-то таки работает.
На одной из карт на попытку commit-a получал ошибку 0x0f, пока не ясно что-это такое
Да, по аппаратной части.
Использую самый обыкновенный MFRC522 (RFID-RC522).
Изначально плюсовые карты не читались в принципе, где-то видел упоминание, что им надо значительно больше мощности. Погуглив наткнулся (
https://forum.mikroe.com/viewtopic.php?f=147&t=64203). Ток хотя и вырос с 22ма до 25.5ма, большинство карт все равно не откликалось. Но начала откликаться Desfire.
Подумав дальше, я поменял конденсаторы развязки с 15пф до 33пф. Ток сразу вырос до 90ма.
Не знаю, насколько это было правильным решением, так как в ВЧ практически не разбираюсь. Но плюсовые карты заработали на-ура.
Надеюсь кому-нибудь мой опыт пригодится.
Да так как я ничего не подписывал, формально мои опыты ничего не нарушают. Если все таки кому-то эти данные помешают, дайте знать - удалю.