У меня есть смарт-карта Desfire EV1 и я пытаюсь прочитать ее с помощью считывателя DUALi.
Я знаю, что для Desfire мне нужно обернуть команду.
Попытка послала простую команду APDU как это:
90 60 00 00 00 00
INT uiLen = 0;
BYTE pbData[256];
BYTE cmd[6] = {0x90,0x60,0x00,0x00,0x00,0x00};
iDERc = DE_APDU(
m_sPortNoM,
6, cmd,
(LPINT)&uiLen, (LPBYTE)pbData);
но почему возврат всегда: DE_NACK_COUNT_ERROR?
Также пытался отправить некоторые команды APDU на SAM, всегда возникают ошибки. код возврата был 1, который не определен ни в одном из определений кода ответа.
уже отправили команды DE_InitPort и DE_IC_PowerOn, и возвращение прошло успешно.
Спасибо
РЕДАКТИРОВАТЬ :
Для пояснения команды и параметров DE_APDU:
int DE_APDU (int nPort, дата BYTE, данные LPBYTE, выход LPINT, LPBYTE
lpRes)
- Он отправляет и получает данные в формате APDU, определенном ISO7816. Устройство меняет его на протокол ISO14443 и отправляет на карту, чтобы пользователь мог легко
используйте эту функцию, не зная протокола ISO14443.— параметры
- int nPort [in]: номер порта.
- int datalen [in]: длина данных LPBYTE.
- Данные LPBYTE [in]: APDU для отправки на карту.
- LPINT outlen [out]: длина LPBYTE lpRes
- LPBYTE lpRes [out]: данные ответа.
Задача ещё не решена.
Других решений пока нет …