Hi Colin,
Have you managed to get time to look at this?
My current setup is: the smartcard is connected to the multi target board, with the feed through cable connected to the pc/sc reader. I have two ways of calling the smartcard.
if I use the following code, I am only able to get power trace if I use the “High” method, when using rising or falling edge, it just timeout. However, I am able to use the M capture button since the ADC doesn’t need to be rested.
status = self.hw.sendAPDU(0x00, 0xA4, 0x04, 0x00, [0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x00,0x00])
if status != 0x9000:
raise IOError("Invalid Status: %x" % status)
(resp, pay) = self.hw.sendAPDU(0x80,0x02,0x00,0x00 [0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F], rxdatalen=24)
if resp != 0x9000:
raise IOError("Invalid Status: %x" % status)
self.resp = pay
When I use the following code, I am able to get power traces using the rising or falling edge and it gives me much more detailed data over the previous approach. However, I am unable to use the capture M button since the pc/sc reader reset itself after one execution is performed.
SELECT = [0x00,0xA4,0x04,0x00,0x0B,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x00,0x00]
APP=[0x80,0x02,0x00,0x00,0x24,0x01,0x02,0x03,0x04,0x05,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F]
cardtype = AnyCardType()
cardrequest = CardRequest( timeout=100, cardType=cardtype )
cardservice = cardrequest.waitforcard()
observer=ConsoleCardConnectionObserver()
cardservice.connection.addObserver( observer )
cardservice.connection.connect()
apdu = SELECT
response, sw1, sw2 = cardservice.connection.transmit( apdu )
apdu = APP
response, sw1, sw2 = cardservice.connection.transmit( apdu )
self.resp = response
Is there a way I could force keep the pc/sc reader alive? or is the a way to manually save the information??
Regards.