BYTE response3a[] = { 0x20, 0x00, 0x00 }; // SAK Select (cascade2) successful response (DESFire)\r
ComputeCrc14443(CRC_14443_A, response3a, 1, &response3a[1], &response3a[2]);\r
\r
-// When reader tries to authenticate\r
- // static const BYTE cmd5[] = { 0x60, 0x00, 0xf5, 0x7b };\r
static const BYTE response5[] = { 0x00, 0x00, 0x00, 0x00 }; // Very random tag nonce\r
\r
BYTE *resp;\r
//BYTE cmd6[] = { 0xe0,0x50,0xbc,0xa5 }; // original RATS\r
BYTE cmd6[] = { 0xe0,0x21,0xb2,0xc7 }; // Desfire RATS\r
\r
+ // Mifare AUTH\r
+ BYTE cmd7[] = { 0x60, 0x00, 0x00, 0x00 };\r
+\r
int reqaddr = 2024; // was 2024 - tied to other size changes\r
int reqsize = 60;\r
\r
BYTE *req6 = (((BYTE *)BigBuf) + reqaddr + (reqsize * 5));\r
int req6Len;\r
\r
- //BYTE *req7 = (((BYTE *)BigBuf) + reqaddr + (reqsize * 6));\r
- //int req7Len;\r
+ BYTE *req7 = (((BYTE *)BigBuf) + reqaddr + (reqsize * 6));\r
+ int req7Len;\r
\r
BYTE *receivedAnswer = (((BYTE *)BigBuf) + 3560); // was 3560 - tied to other size changes\r
\r
}\r
\r
// Secondly compute the two CRC bytes at the end\r
- ComputeCrc14443(CRC_14443_A, cmd5, 2, &cmd5[2], &cmd5[3]);\r
+ ComputeCrc14443(CRC_14443_A, cmd7, 2, &cmd7[2], &cmd7[3]);\r
+ CodeIso14443aAsReader(cmd7, sizeof(cmd7));\r
+ memcpy(req7, ToSend, ToSendMax); req7Len = ToSendMax;\r
// Send authentication request (Mifare Classic)\r
- TransmitFor14443a(req5, req5Len, &samples, &wait);\r
+ TransmitFor14443a(req7, req7Len, &samples, &wait);\r
trace[traceLen++] = 0; trace[traceLen++] = 0; trace[traceLen++] = 0; trace[traceLen++] = 0;\r
trace[traceLen++] = 0; trace[traceLen++] = 0; trace[traceLen++] = 0; trace[traceLen++] = 0;\r
trace[traceLen++] = 4;\r
- memcpy(trace+traceLen, cmd5, 4);\r
+ memcpy(trace+traceLen, cmd7, 4);\r
traceLen += 4;\r
if(traceLen > TRACE_LENGTH) goto done;\r
if(GetIso14443aAnswerFromTag(receivedAnswer, 100, &samples, &elapsed)) {\r
}\r
\r
done:\r
- LED_A_OFF();\r
- LED_B_OFF();\r
- LED_C_OFF();\r
+ LEDsoff();\r
DbpIntegers(rsamples, 0xCC, 0xCC);\r
DbpString("ready..");\r
}\r