On Friday 17 March 2006 02:36, Justin Karneges wrote:
> I've not yet put this in the code because surely this is much more than
> just the initialization.  The openct eutron init is 2 exchanges, and this
> log shows 10 already.  I hope you can make sense of this data and tell me
> where the boundary is.

More follow-up:

I noticed that on all the exchanges where the size of a packet's content is 
the third byte, the last byte seems to act like a checksum (XOR'ing all of 
the bytes in the packet, including the last byte, equals zero).  Andreas, is 
this the "t=1" format you were talking about?

Just to experiment, I put all 10 snooped exchanges into the eutron 
initialization.  According to some logging, the card responds with the same 
exact bytes as it did on Windows.  However, as soon as opensc tries to send 
that 7 (or is it 5?) byte packet, everything fails.  And I've not destroyed 
the card yet, it still works in Windows. :)

From the raw snooped SafeSign data:
  send: 00 00 07 01 a4 00 0c 02 3f 00 93

It looks remarkably similar to this from opensc's output:
  card.c:221:sc_transceive: Sending 7 bytes (resp. 258 bytes):
  00 A4 00 0C 02 3F 00 .....?.

If framing data is added to what opensc wishes to send, then the raw data 
would be the same except for a 1 byte difference (first content byte is 01 in 
SafeSign, 00 in opensc).

However, eutron_send gets this:
  00 a4 00 0c 02

This is not "t=1" format.  Is opensc forgetting to frame the content before 
passing to openct?

-Justin
_______________________________________________
opensc-devel mailing list
opensc-devel@lists.opensc-project.org
http://www.opensc-project.org/mailman/listinfo/opensc-devel

Reply via email to