GrcardSIM » History » Version 1
laforge, 02/19/2016 10:47 PM
1 | 1 | laforge | [[PageOutline]] |
---|---|---|---|
2 | = GRcard SIM = |
||
3 | |||
4 | The GRcard SIM is a programmable GSM SIM card. |
||
5 | |||
6 | It uses a mixture of TS11.11 / ISO7816-4 and proprietary commands for programming |
||
7 | |||
8 | == Command reference == |
||
9 | |||
10 | To understand this reference, it is assumed that you are familiar with basic knowledge on smartcard |
||
11 | technologies, such as standard ISO 7816-3/-4 APDUs and GSM TS 11.11. |
||
12 | |||
13 | === Setting the ICCID === |
||
14 | |||
15 | Uses a standard UPDATE BINARY (D6) command on the EF.ICCID (2FE2) |
||
16 | |||
17 | Security: ADM2 |
||
18 | |||
19 | === Setting the IMSI === |
||
20 | |||
21 | Uses a standard UPDATE BINARY (D6) command on the EF.IMSI (7F20/6F07) |
||
22 | |||
23 | Security: ADM2 |
||
24 | |||
25 | === Setting the Access Class === |
||
26 | |||
27 | Uses a standard UPDATE BINARY (D6) command on the EF.ACC (7F20/6F78) |
||
28 | |||
29 | Security: ADM2 |
||
30 | |||
31 | === Setting the SMS Parameters === |
||
32 | |||
33 | Uses a standard UPDATE RECORD (DC) command on the EF.SMS (7F10/6F42) |
||
34 | |||
35 | Security: ADM2 |
||
36 | |||
37 | === Setting the A3/A8 algorithm === |
||
38 | |||
39 | Uses a standard UPDATE RECORD (DC) command on the non-standard (2700/6F70) EF |
||
40 | |||
41 | The record has a size of 1 byte and is defined as follows: |
||
42 | * 01 - COMP128v1 |
||
43 | * 02 - COMP128v2 |
||
44 | * 03 - COMP128v3 |
||
45 | |||
46 | Security: ADM2 |
||
47 | |||
48 | === Setting the Ki === |
||
49 | |||
50 | Uses a non-standard APDU {{{80 D4 02 00 10}}}, followed by 16 bytes of Ki |
||
51 | |||
52 | Security: Unknown |
||
53 | |||
54 | === Setting the PIN1 and PUK1 === |
||
55 | |||
56 | Uses a non-standard APDU {{{80 D4 00 01 10}}} followed by 8 bytes of PIN1 and 8 bytes of PUK1 |
||
57 | |||
58 | === Setting the PIN2 and PUK2 === |
||
59 | |||
60 | Uses a non-standard APDU {{{80 D4 00 02 10}}} followed by 8 bytes of PIN1 and 8 bytes of PUK1 |
||
61 | |||
62 | === Setting the ADM1 + AUK1 === |
||
63 | |||
64 | Uses a non-standard APDU {{{80 D4 01 04 12 03 00}}} followed by 8 bytes of ADM1 and 8 bytes of AUK1 |
||
65 | |||
66 | === Setting the ADM2 + AUK2 === |
||
67 | |||
68 | Uses a non-standard APDU {{{80 D4 01 05 12 03 00}}} followed by 8 bytes of ADM2 and 8 bytes of AUK2 |
||
69 | |||
70 | === Create File === |
||
71 | |||
72 | Uess a non-standard APDU {{{80 CF 00 P2 LEN FID SIZE OPT1 ACC OPT2}}}, specified as follows: |
||
73 | |||
74 | * Parameter P2: |
||
75 | * 00: Create DF |
||
76 | * 01: Create linear record EF |
||
77 | * 02: Create transparent EF |
||
78 | * 03: Create cyclic record EF |
||
79 | * FID: The 2 byte File ID |
||
80 | * OPT1: Always {{{0100}}} |
||
81 | * ACC: Access conditions, According to TS 11.11, Section 9.3 |
||
82 | * OPT2: Always {{{FF}}} |
||
83 | |||
84 | In case a Directory is created, OPT1, ACC and OPT2 are replaced with 8-bytes all-zero {{{00000000000000}}} |