Commit Graph

136 Commits

Author SHA1 Message Date
Christina Quast e01fb9a146 usb.c: mitm config with ccid interface 2015-04-04 19:56:23 +02:00
Christina Quast 394084615d mitm.c: second CCID and Phone init and run functions 2015-04-04 19:54:22 +02:00
Christina Quast 8ed72bd55e Makefile: Compile mitm.c 2015-04-04 19:36:47 +02:00
Christina Quast 3ca88d8a5a USBDDriver: Corrected config array off by one 2015-04-04 17:50:36 +02:00
Christina Quast 0becc0c51c Fixed compiler warn: USB descriptor array elements
The compiler warning:

simtrace/usb.c:553:5: warning: initialization from incompatible pointer type [enabled by default]
     &configurationDescriptorSniffer,
     ^
simtrace/usb.c:553:5: warning: (near initialization for 'configurationDescriptorsArr[0]') [enabled by default]
simtrace/usb.c:554:5: warning: initialization from incompatible pointer type [enabled by default]
     &configurationDescriptorCCID,
     ^
simtrace/usb.c:554:5: warning: (near initialization for 'configurationDescriptorsArr[1]') [enabled by default]
simtrace/usb.c:555:5: warning: initialization from incompatible pointer type [enabled by default]
     &configurationDescriptorPhone,
     ^
simtrace/usb.c:555:5: warning: (near initialization for 'configurationDescriptorsArr[2]') [enabled by default]
simtrace/usb.c:556:5: warning: initialization from incompatible pointer type [enabled by default]
     &configurationDescriptorMITM,
     ^
simtrace/usb.c:556:5: warning: (near initialization for 'configurationDescriptorsArr[3]') [enabled by default]
simtrace/usb.c: In function 'getConfigDesc':
simtrace/usb.c:560:5: warning: return discards 'const' qualifier from pointer target type [enabled by default]
     return configurationDescriptorsArr[idx];
     ^
simtrace/usb.c: At top level:
2015-04-04 13:04:06 +02:00
Christina Quast b65b881de1 Phone uses USB endpoints 4 to 6 instead of 1 to 3 now 2015-04-04 10:51:37 +02:00
Christina Quast 6355ecedf7 Phone: Write err msg if writing to USB PHONE_INT endpoint failed 2015-04-04 10:15:38 +02:00
Christina Quast 35c9e861a9 USBDDriver.c: Fixed set configuration bug
On setConfiguration the first entry in the configuration entry
was always taken.
Now it takes cfgNum as index number.
2015-04-04 09:53:49 +02:00
Christina Quast 6d9dcfc41d usb.c: updated phone descriptor length 2015-04-03 22:26:43 +02:00
Christina Quast 99d80ffb87 usb.c: Updated comment to be generic 2015-04-03 22:26:07 +02:00
Christina Quast e90decef3d redefinition of PHONE_* in phone.c 2015-04-03 11:40:38 +02:00
Christina Quast 1d80ef23a0 defined PR to easily switch between INFO/DEBUG prints 2015-04-03 11:39:38 +02:00
Christina Quast d3630cc86d phone ISR with mask (does not function yet) 2015-04-03 11:38:24 +02:00
Christina Quast 8e5381ca10 phone RST define taken from simtrace.h 2015-04-03 11:37:17 +02:00
Christina Quast 7123425841 redifined phone usb interface 2015-04-03 11:35:59 +02:00
Christina Quast a3496f4921 Phone RST: only trigger on rising edge 2015-03-27 18:54:50 +01:00
Christina Quast 4bcc023be7 Phone hack: endless loop
Motorola seems to be in an endless loop?
In any case, it only shows the motorola logo and does not react to
pressing the power button.
2015-03-24 21:59:32 +01:00
Christina Quast 2889fc2d38 Bug fixed, timeout frequ increased 2015-03-22 19:06:51 +01:00
Christina Quast a1dd0ef4bc Double size buf, a lot of debug 2015-03-22 19:06:12 +01:00
Christina Quast 0ca8390a8d first few communication steps work 2015-03-22 19:05:23 +01:00
Christina Quast 531d10b403 Timer counter functions, Makefile adjusted 2015-03-19 19:28:18 +01:00
Christina Quast ce296b9def Attempt to implement working simcard emulator
The BUFLEN is fixed 5 bytes now, which has to be increased.
A timeout has to be implemented, which is smaller than max_waittime.
If the timeout is triggered, the data received in the buffer so far
should be sent to the host computer which is responsible for generating
a response. Without the timeout the max_waittime of the phone would
expire and it would repeat sending the command, so that we do not
have atomary messages anymore.
2015-03-18 18:41:19 +01:00
Christina Quast 578daaaeff first try of sim card emulator 2015-03-13 23:46:01 +01:00
Christina Quast cc2186642e Made trace.h a symbolic link 2015-03-13 14:42:30 +01:00
Christina Quast ce8fa7e646 Add optional TRACE_*_WP switch 2015-03-13 13:09:51 +01:00
Christina Quast 23bb831cfb Added prob useful gdb information 2015-03-13 13:06:03 +01:00
Christina Quast 1c3a7994b8 Basic Assembler defines 2015-03-13 12:57:59 +01:00
Christina Quast f07ec9fa4b Header file with includes 2015-03-13 12:55:41 +01:00
Christina Quast 0a0ca9fa81 Add resources for gdb and gcc 2015-03-13 12:35:12 +01:00
Christina Quast 391dc2eb43 Undefine possibility for USB trace info
Define USB_NO_DEBUG to undefine TRACE_DEBUG_WP and TRACE_INFO_WP
2015-03-13 12:02:31 +01:00
Christina Quast c63df595e5 Atmel lib bug fixed: param position off by one
Furthermore the debug output level is INFO instead of DEBUG now.
2015-03-10 23:32:45 +01:00
Christina Quast 32a90ac660 remove windows line endings in iso7816_4.c 2015-03-10 16:18:16 +01:00
Christina Quast e03630f593 Problematic check for smartcard pin in ISR
This is a bug and should be fixed:
The smartcard insertion detection does not work if we uncomment
the check. But on the other hand, pcscd detects a lot of erroneous
smartcard insertion and removal events.
2015-03-10 15:56:05 +01:00
Christina Quast 0757fff70b Bugfix: add header file for ccid reset pin 2015-03-10 15:54:34 +01:00
Christina Quast e4bd7c104d Removed comment about USART_Configure in iso7816_4.c 2015-03-10 15:52:49 +01:00
Christina Quast 2fcef41c90 Reference to reset pin passed to ISO7816_Init 2015-03-10 15:51:21 +01:00
Christina Quast c5a78d72bf simtrace: wait until usb is configured 2015-03-10 15:37:52 +01:00
Christina Quast 6838fb603d Remove atmel lib ccid targets from Makefile 2015-03-10 15:25:51 +01:00
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 297f1a4d55 moved gitignore to root dir 2015-03-05 15:46:47 +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 800019f0dd Fixed ccid define bug in board.h 2015-03-04 13:40:54 +01:00