Commit Graph

31 Commits

Author SHA1 Message Date
Christina Quast
5ce38abd36 Moved code for select file cmd into function
The select command mostly works when the blue sysmocom SIM card is inserted,
but with the white SuperSIM we always get timeouts and invalid answers.
Furthermore the white card takes much longer to answer the requests than the
blue one.
So probably there is a timing issue.

Currently this is the simtrace output for select and reading IMSI, etc:
(pcscd must be running as welil, otherwise we get:
$ ./simtrace.py -S
Exception: Failed to establish context : Service not available.)

$ ./simtrace.py -S
Context established!
PCSC Readers: ['ATMEL AT91SO CCID Smart Card Reader [SIMtraceCCID] 00 00']
Using reader: ATMEL AT91SO CCID Smart Card Reader [SIMtraceCCID] 00 00
Connected with active protocol 1
Select: 0x6E 0x00
Command: 0x6D 0x00
Disconnected
Released context.
==> Expected answer for Select: 0x6D 0x00
(based on trying to execute this command with gemalto usb smart card reader)
The command works only every now and then

$ ./simtrace.py -b
pcsc: wait_for_card
Reading ...
Traceback (most recent call last):
  File "./simtrace.py", line 105, in <module>
    main()
  File "./simtrace.py", line 66, in main
    ccid.pySim_read()
  File "/home/chrysh/ba_thesis/sysmocom_repo/usb_application/ccid.py", line 22, in pySim_read
    (res, sw) = scc.read_binary(['3f00', '2fe2'])
  File "/home/chrysh/code/src/pysim/pySim/commands.py", line 42, in read_binary
    r = self.select_file(ef)
  File "/home/chrysh/code/src/pysim/pySim/commands.py", line 35, in select_file
    data, sw = self._tp.send_apdu_checksw("a0a4000002" + i)
  File "/home/chrysh/code/src/pysim/pySim/transport/__init__.py", line 87, in send_apdu_checksw
    raise RuntimeError("SW match failed ! Expected %s and got %s." % (sw.lower(), rv[1]))
RuntimeError: SW match failed ! Expected 9000 and got 9404.
==> Error code 9404 does not exist, which suggests that we actually have a timing issue when
communicating with the smart cart
2015-03-10 15:16:13 +01:00
Christina Quast
1a224af098 Re-fixed ATR error not send on reset 2015-03-10 15:11:37 +01:00
Christina Quast
b58434eb2f Atr[3] is protocol, not Atr[5], right?
Also: Added debug information for command not supported
2015-03-09 17:13:07 +01:00
Christina Quast
0166c6d64e Temporary fix: mitm mode use EP 4-6 2015-03-05 15:44:05 +01:00
Christina Quast
b5ebebea0f main: configure red led, just in case 2015-03-05 15:43:01 +01:00
Christina Quast
541656cf60 Add CCID functions to func ptrs struct 2015-03-05 15:42:40 +01:00
Christina Quast
73e5658665 sniffer: removed debug write 2015-03-05 15:41:51 +01:00
Christina Quast
1bcac26786 removed atr buf in run func 2015-03-05 15:41:17 +01:00
Christina Quast
53a76082dc ccid: Get card atr in init 2015-03-04 19:01:34 +01:00
Christina Quast
8043fdd4d3 bus configuration in phone 2015-03-04 18:45:30 +01:00
Christina Quast
db7b1abd17 CCID config, init, run
Switching to config 1 and 2 works, but to 3 and 4 usb_enum.py is
hanging for some reason. Switching the USB config from Sniffer to
CCID reader was not tested yet.
2015-03-03 12:34:54 +01:00
Christina Quast
4ba4d2230b sniffer functionality fixed buffer
It is possible to use sniffer.py to sniff the phone-simcard-communication.

To be fixed: The buffer size read is fixed and the data is only send
over USB if the buffer max length is reached. which means we don not
get the last bytes of the transaction.
This should be changed in one of the next commits. Maybe the former
simtrace code can give some inspiration on this topic.
2015-03-02 16:14:09 +01:00
Christina Quast
cafde00218 conf initially sniff conf 2015-03-02 16:12:16 +01:00
Christina Quast
da373fde1b Add input interrupt endpoint to all configurations 2015-02-27 15:26:26 +01:00
Christina Quast
6032e796b9 string descr 0 is language identifier 2015-02-27 15:22:25 +01:00
Christina Quast
fb524b9bb3 Function pointer struct in main for run,init 2015-02-27 13:39:45 +01:00
Christina Quast
1edf350c34 MITM code and run and init decl in header 2015-02-27 13:33:52 +01:00
Christina Quast
d2b05f014c comment changed 2015-02-25 18:44:24 +01:00
Christina Quast
0ae0314f6b Add usb config changed callback func 2015-02-25 18:43:46 +01:00
Christina Quast
10b2e5accc Consistent config num enum for main.c and usb.c 2015-02-25 18:40:15 +01:00
Christina Quast
54d0c1fca8 USB enum works again, No CCID conf 2015-02-25 16:04:25 +01:00
Christina Quast
1161b27e7d main while loop: wait for USB 2015-02-25 14:15:57 +01:00
Christina Quast
968b974cbe Moved usb descriptors and funcs into single file 2015-02-25 14:10:12 +01:00
Christina Quast
c0aa769a35 Redundant functions in phone and sniffer moved
File simtrace_iso7816.c is like a library for iso specific functions.
The next step will be to use the atmel softlib functions instead.
2015-02-25 14:02:01 +01:00
Christina Quast
c02571ebe2 basic structure for main while loop with all configs 2015-02-24 19:09:55 +01:00
Christina Quast
27c643d297 Sniffer functionality and sniffer bus board config 2015-02-24 19:09:08 +01:00
Christina Quast
a90eefa865 sniffer functions 2015-02-24 17:52:29 +01:00
Christina Quast
566d3f9e4a Made ohone functions extern in header file 2015-02-24 17:39:03 +01:00
Christina Quast
01bbdc3d52 device descriptor phone added 2015-02-24 17:38:45 +01:00
Christina Quast
f554950742 device descriptor sniffer, MITM 2015-02-24 14:27:08 +01:00
Christina Quast
32906bb919 simtrace main with phone as clk master 2015-02-24 11:35:19 +01:00