Quick update. I modified the JcardTest protocol. I am now able to select the app on the smartcard. However, when I send an apdu to tell the app to do something I get txdatlength error. Here is the log:
OpenADC Found, ConnectingATR: 3b eb 00 00 81 31 20 45 4a 43 4f 50 33 31 33 36 47 44 54 78
ATR: 3b eb 00 00 81 31 20 45 4a 43 4f 50 33 31 33 36 47 44 54 78
ACK Error: a4 != 0
Correct App Selected
Traceback (most recent call last):
File "ChipWhispererCapture.py", line 786, in capture1
ac.doSingleReading()
File "c:\chipwhisperer-0.10rc1\software\chipwhisperer\capture\AcquisitionController.py", line 141, in doSingleReading
self.textout = self.TargetDoTrace(self.textin, key=None)
File "c:\chipwhisperer-0.10rc1\software\chipwhisperer\capture\AcquisitionController.py", line 91, in TargetDoTrace
self.target.go()
File "c:\chipwhisperer-0.10rc1\software\chipwhisperer\capture\targets\SmartCard.py", line 829, in go
self.protocol.go()
File "c:\chipwhisperer-0.10rc1\software\chipwhisperer\capture\targets\SmartCard.py", line 716, in go
x = self.hw.sendAPDU(0x80,0x14,0x03,0x04,0x00,rxdatalen=0)
File "c:\chipwhisperer-0.10rc1\software\chipwhisperer\capture\targets\SmartCard.py", line 144, in sendAPDU
txdatalen = len(txdata)
TypeError: object of type 'int' has no len()
The code that I’m using:
[code]def go(self):
status = self.hw.sendAPDU(0x00, 0xA4, 0x04, 0x00, [0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x00,0x00])
if status != 0x900:
raise IOError(“Invalid Status: %x” % status)
print "Correct App Selected"
x = self.hw.sendAPDU(0x80,0x14,0x03,0x04,0x00,rxdatalen=0)
print x[/code]