]> git.zerfleddert.de Git - proxmark3-svn/blobdiff - armsrc/iso14443a.c
fixed possibly uninitialized variables
[proxmark3-svn] / armsrc / iso14443a.c
index 5a01178d334aa78eadc9f3469b83722b0a93e7a6..a726fdc9a68eab08977e01b93a370910c735c8e3 100644 (file)
@@ -993,7 +993,7 @@ void SimulateIso14443aTag(int tagType, int uid_1st, int uid_2nd, byte_t* data)
        uint8_t response6[] = { 0x03, 0x3B, 0x00, 0x00, 0x00 }; // dummy ATS (pseudo-ATR), answer to RATS
        ComputeCrc14443(CRC_14443_A, response6, 3, &response6[3], &response6[4]);
 
-       uint8_t *resp;
+       uint8_t *resp = NULL;
        int respLen;
 
   // Longest possible response will be 16 bytes + 2 CRC = 18 bytes
@@ -1547,44 +1547,33 @@ static int GetIso14443aAnswerFromTag(uint8_t *receivedResponse, int maxLen, int
        }
 }
 
-void ReaderTransmitShort(const uint8_t* bt)
+void ReaderTransmitBitsPar(uint8_t* frame, int bits, uint32_t par)
 {
   int wait = 0;
   int samples = 0;
-
-//  ShortFrameFromReader(*bt);
-  CodeIso14443aBitsAsReaderPar(bt,7,0);
-
-  // Select the card
-  TransmitFor14443a(ToSend, ToSendMax, &samples, &wait);
-
-  // Store reader command in buffer
-  if (tracing) LogTrace(bt,1,0,GetParity(bt,1),TRUE);
-}
-
-void ReaderTransmitPar(uint8_t* frame, int len, uint32_t par)
-{
-  int wait = 0;
-  int samples = 0;
-
+  
   // This is tied to other size changes
   //   uint8_t* frame_addr = ((uint8_t*)BigBuf) + 2024;
-  CodeIso14443aAsReaderPar(frame,len,par);
-
+  CodeIso14443aBitsAsReaderPar(frame,bits,par);
+  
   // Select the card
   TransmitFor14443a(ToSend, ToSendMax, &samples, &wait);
   if(trigger)
        LED_A_ON();
-
+  
   // Store reader command in buffer
-  if (tracing) LogTrace(frame,len,0,par,TRUE);
+  if (tracing) LogTrace(frame,nbytes(bits),0,par,TRUE);
 }
 
+void ReaderTransmitPar(uint8_t* frame, int len, uint32_t par)
+{
+  ReaderTransmitBitsPar(frame,len*8,par);
+}
 
 void ReaderTransmit(uint8_t* frame, int len)
 {
   // Generate parity and redirect
-  ReaderTransmitPar(frame,len,GetParity(frame,len));
+  ReaderTransmitBitsPar(frame,len*8,GetParity(frame,len));
 }
 
 int ReaderReceive(uint8_t* receivedAnswer)
@@ -1623,7 +1612,7 @@ int iso14443a_select_card(byte_t* uid_ptr, iso14a_card_select_t* p_hi14a_card, u
        int len;
         
        // Broadcast for a card, WUPA (0x52) will force response from all cards in the field
-       ReaderTransmitShort(wupa);
+  ReaderTransmitBitsPar(wupa,7,0);
        // Receive the ATQA
        if(!ReaderReceive(resp)) return 0;
 //  Dbprintf("atqa: %02x %02x",resp[0],resp[1]);
@@ -2527,4 +2516,4 @@ done:
        
        Dbprintf("maxDataLen=%x, Uart.state=%x, Uart.byteCnt=%x Uart.byteCntMax=%x", maxDataLen, Uart.state, Uart.byteCnt, Uart.byteCntMax);
        LEDsoff();
-}
\ No newline at end of file
+}
Impressum, Datenschutz