-
Notifications
You must be signed in to change notification settings - Fork 227
/
CHANGES
245 lines (210 loc) · 10.3 KB
/
CHANGES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
v0.1: 2006-04-28
First release.
v0.1a: 2006-05-16
Add 'Value' commands:
readvalueblock
writevalueblock
MIFAREvb (set variables from value block)
v0.1b: 2006-05-29
Make readblock non MIFARE specific
Add readMIFAREblock command
Add reset() call to all test programs (to switch off constant read)
Add readlfx program to support ACG LFX reader
v0.1c: 2006-05-30
Add LFXTags hash (125 kHz tag types)
Add lfxtype.py (command line tag identifier)
v0.d: 2006-06-01
Add access control block user data byte to MIFARE structure
Add LFX tag type detection to cardselect.py
v0.e: 2006-09-29
Add ICAO 9303 structures for Machine Readable Passports
New test program: mrpkey.py for ICAO 9303
Move reader config to RFIDIOtconfig.py
Add EM4x05 ID decode
v0.f: 2006-10-24
Emergency release - 0.e lost in webserver disk crash
Contains work in progress!!!
Rename EM4x05 decode to more generic FDX-B
Add EM4x02 'Unique' ID decode/encode
Add passport file reads and image display
v0.g: 2006-10-27
Tidy up!
Update all version numbers
v.0.h:
Add Hitag2 reading (readlfx)
Add fdx-b cloning to Q5 / Hitag2 (fdxbnum)
Add q5unfuck (does what it say on the tin!)
mrpkey - display all data in GUI
fdxbnum - add ability to write raw 16 digit HEX (to clone non-compliant tags)
v0.i: 2006-12-10
Fix login error for sector 0
v0.j:
Fix iso_7816_fail to allow non-passports to fail properly
Add support for Frosch Hitag reader/writer
Start to rationalise routines to always return True or False
fdxbnum - add Frosch support for Hitag2
fdxbnum - wait for blank tag in WRITE mode
v0.k:
was release j - forgot to update version number!
v0.m:
add facility to set Q5 native ID in 'q5reset.py'
fix 'EM4x02' ID mode in 'unique.py' (was reversed)
allow forcing of tag type in 'readlfx.py'
add 'readtag.py' - read data blocks with no login
add 'copytag.py' - copy data blocks to matching blank
add 'isotype.py' - determine HF tag types
add CHECK for Machine Readable Document in 'mrpkey.py'
fix bruteforce for non complete document numbers in 'mrpkey.py'
fix bruteforce length of field in 'mrpkey.py'
add offsets for usa & netherlands to 'mrpkey.py'
add global overrides for line/speed etc. in RFIDIOtconfig.py [AL & Philippe Biondi]
v0.n:
add CLONE mode to 'unique.py'
make 'mrpkey.py' more intelligent about reading passport contents:
read all data groups
extract image from CBEFF block in EF.DG2
extract public key certificate from EF.SOD (requires openssl installation)
add asn.1 field length encoding rules
add 'sod.py' tool for brute force finding of certificates in EF_SOD.BIN (requires openssl installation)
v0.p
add PCSC support (http://pcsclite.alioth.debian.org/ and http://pyscard.sourceforge.net/) [hints/tips/inspiration Henryk Plötz]
fix cardselect.py and multiselect.py to check for presence of card
fix 'waitfor/do nothing' in RFIDIOt.py [Philippe Biondi]
cleaner check digit calc in mrpkey.py [Philippe Biondi]
change -r to -R (reader type) to allow -r to be used for PCSC compatibility
add speed/framesize reporting to mrpkey.py
increase MAX read chunk size to 118 in mrpkey.py (needs fixing to go up to device supported size ISO_FRAMESIZE)
fix bit allignment issue in FDXBID encoding/decoding [Matsche]
add global uid variable
add locked block reporting to readmifare
add readmifaresimple.py
v0.q
fix asn1 field length calculation in mrpkey.py
add human readable config block for Q5 in readlfx.py
add Manchester encoding to RFIDIOt.py and unique.py
add serial port opening and baud rate checking for ACG / Frosch in RFIDIOt.py
add Q5 emulation detection in lfxtype.py
v0.r
add SCM Microsystems reader support
add -d (debug) option
switch to T=1 protocol for PC/SC
add auto-detect of PC/SC reader types
fix minor reporting issues in readmifaresimple.py
fix setting of tag type 'ALL' on ACG readers (different for LF or HF)
added a bunch of PCSC ATR card types
add reading of previously stored files to mrpkey.py
fix CBEFF processing in mrpkey.py
fix bruteforcing of first character in mrpkey.py [Petter Bjorklund]
add ID Card processing to mrpkey.py [vonJeek <mailto:[email protected]>]
v0.s
fix -L issue in RFIDIOtconfig (readernum must be 0)
add human readable dump to readmifaresimple.py (ReadablePrint() in RFIDIOt)
fix logic in tag selection in unique.py (would not use hitag2)
add hitag2 login (password mode) to RFIDIOt.py
add hitag2bruteforce program hitag2brute.py
start migrating definitions into smaller files to aid sharing with other apps (e.g. iso3166.py)
add Windows distribution [Zac Franken]
v0.t - October 2008
add WRITE function to mrpkey.py for vonJeek JCOP emulator (http://freeworld.thc.org/thc-epassport/)
add Makefile and vonJeek.gpsh for installing vonJeek epassport.cap to JCOP
add VONJEEK declarations for vonJeek emulator to RFIDIOt.py
set mrpkey file types to binary for windows compatibility [Jeroen van Beek / vonJeek <[email protected]>]
use windows compatible command execution for external commands in mrpkey [Jeroen van Beek / vonJeek <[email protected]>]
add WRITE function to mrpkey.py for JMRTD JCOP emulator (http://jmrtd.org/)
allow mrpkey to skip objects (e.g. fingerprint (EF.DG3) protected by active authentication)
add mifarekeys.py - calculate 3DES MifarePWD for Access to Mifare memory/functions on Dual Interface JCOP cards
as per Philips Application Note AN02105, http://www.nxp.com/acrobat_download/other/identification/067512.pdf
add some country codes to iso3166.py [Jeroen van Beek / vonJeek <[email protected]>]
add -g 'No GUI' option to RFIDIOtconfig.py
v0.u - November 2008
add testlahf.sh script for testing LAHF units
fix -R reader type override in RFIDIOtconfig.py
add RFIDIOtconfig.py checking for global overrides in one of the following locations (in search order):
$(RFIDIOtconfig_opts)
./RFIDIOtconfig.opts
/etc/RFIDIOtconfig.opts
options should be specified on the first line as if typed on the command line, e.g.
-s 9600 -l /dev/ttyUSB0
command line options will take precedence over this file.
add -n (No Init) command to RFIDIOtconfig.py - allow modules to run without hardware
add display of checksum-corrected MRZ to mrpkey.py
add jcop_mifare_access.cap - mifare access applet for JCOP
add jcop_mifare_access.gpsh and target in Makefile for installation of jcop_mifare_access.cap
add jcopmifare.py test program for JCOP mifare emulation
add display of biometric features on FACE in mrpkey.py
v0.v - January 2009
fix ATS position & length in RFIDIOT.py
add jcopsetatrhist.py - sets ATR Historical Bytes (ATS) on JCOP cards
add jcop_set_atr_hist.cap - java applet for setting ATR/ATS
add JAVA source for jcop_set_atr_hist.cap
move iso_7816 routines into RFIDIOt (from mrpkey.py)
fix exit status of all test programs and RFIDIOt (should be True on error)
v0.w
fix ACG reset/info sequence in RFIDIOt.py
fix facial image display bug in mrpkey.py where conversion is required [Andreas Schmidt]
fix RANDOM_UID setting in jcop_mifare_access.cap/jcopmifare.py (you will need a secret key from NXP)
add jcoptool.py - JCOP toolkit (work in progress)
mrpkey.py changes:
fix binary mode when reading files under Windows (for WRITE to card)
fix computation of composite checksum digit
support reading non-BAC passports
specify a dummy MRZ or simply the keyword 'PLAIN' for Plain Access if there is no Basic Access Control
support writing non-BAC passports (only for vonJeek cards)
new commands SETBAC and UNSETBAC to toggle the BAC mode on vonJeek cards
extract & display signature image stored in DG7, if any
fix bug in Jpeg 2000 handling & add Jpeg 2000 support for DG7
better error handling if PCSC daemon is down or no reader is found
support clone mode by specifying PLAIN/MRZ and WRITE: first read then write
support shortened MRZ (as in mrp0wn)
strip AA & EAC by default when writing, set STRIP_INDEX=False to disable stripping
change Makefile to match vonJeek gpshell files (upload2jcop.gpsh & upload2nokia.gpsh)
v0.x
add support for ACS readers and Alcatel-Lucent Tikitag/Touchatag [props to pytey for http://hackerati.com/post/57314994/rfid-on-the-cheap-hacking-tikitag]
rationalise PCSC subtypes
add hidprox.py for reading HID ProxCards (only tested with OmniKey 5325)
add pn532.py - definitions for nxp pn532 chip
add pn532emulate.py - run nxp pn532 in emulator mode
add pn532mitm.py - relay traffic between reader and emulator, and log APDU and responses
v0.y
fix support for ACS PCSC-2 devices (e.g. ACR 122U)
add writelfx.py - test write LF devices
fix 3DES key setting for ID cards in mrpkey.py
allow missing files to be skipped if running in files mode in mrpkey.py
v0.z
add xorcheck.py - search for valid final byte of rolling LRC [input from Henryk Plötz]
add transit.py - program Q5 with FDI Matalec 'TRANSIT 500' or 'TRANSIT 999' standard UID [input from Proxmark Community]
v1.0a
make mrpkey.py slightly easier to add new document types to
add COPY and RESET functions to readmifaresimple.py
add automatic keytype and default key checking to readmifaresimple.py
fix MIFARE KeyA and KeyB handling on all supported readers
add readmifareultra.py - read Mifare UltraLight tags [Keith Howell]
add support for libnfc devices [Nick von Dadelszen] (work in progress)
v1.0b
allow global overrides to be specified in ENV variable, e.g.
export RFIDIOtconfig="-s 9600 -l /dev/ttyUSB1 -R RFIDIOt.rfidiot.READER_ACG"
use latest pynfc.py (ver 0.2) for libnfc devices
add device listing to libnfc support (-N)
add more keys to readmifaresimple.py [nethemba]
strip leading character from ACG LFX UID
add cosmo card (alternative to jcop) upload files for gpshell
fix init for pn532mitm.py
make sure all programs exit with status (also removes annoying PCSC error on close)
wait for passport in mrpkey.py [Adam Urban]
add lifecycle data to jcoptool.py
v1.0c
fix reading unknown block size in readblock()
detect more ACS readers [Keith Howell]
v1.0d
port pynfc to new libNFC API (1.6.0-rc1)
add libnfc mifare command support (TODO: error handling)
*** note that early ACS devices such as ACR122-V1/TikiTag/TouchaTag are not currently
working with native libNFC (V2 seem to work fine). This is a libNFC issue.
However, ACR122-V1/TikiTag/TouchaTag devices can be used if libNFC is compiled with
acr122_pcsc driver support, and then used in conjunction with pcscd, in chich case
they should work as READER_LIBNFC and/or READER_PCSC types.
Android support [Nick von Dadelszen]
v1.0e
move to a package style implementation
v1.0h
detect ACS reader type more reliably