Commit graph

469 commits

Author SHA1 Message Date
Romain Tartière
f6c7f7692b Check malloc(3) return value. 2015-04-15 17:11:14 +02:00
Romain Tartière
65894ca3b4 Unbreak automake.
Now that README is named README.md for Github integration, automake will fail
if not told we use a foreign way of naming files.
2015-04-13 15:10:35 +02:00
Romain Tartière
515fc66050 Update and rename README to README.md 2015-04-13 14:34:13 +02:00
Romain Tartière
ffde4d4d92 Fix mifare_desfire_get_[iso_]file_ids() prototype.
The "files" parameter is not an array of pointer to uint8_t (uint8_t
*files[]), but rather an pointer to an array of uint8_t (uint8_t
(*files)[]).  Since this syntax confuses the compiler (the program
attempt to assign a value to what "files" is pointing to, which is
supposed to be an array, which is not assignable), declare "files" as a
pointer to a pointer to uint8_t (uint8_t **files) which makes everybody
happy.

Fixes issue 26.
2014-04-16 02:35:40 +02:00
Romain Tartière
27d33775dc Don't make me think! 2014-04-16 02:02:50 +02:00
Romain Tartière
57e1fceb6b Prevent mifare_desfire_read_data() overflow.
Depending on the communication settings, mifare_desfire_read_data() may
write more than the provided "length" bytes to the "data" buffer,
possibly causing data corruption or crashes if no special care is taken.

Since the test suite is precisely a "no special care is taken" example,
assume only "length" bytes can be written to the "data" buffer and rely
on a temporary buffer for cryptographic operations.

Fixes  issue 28.
2014-04-16 01:54:14 +02:00
Romain Tartière
8290d3d8cc Keys are supposed to be const. 2014-04-13 20:29:57 +02:00
Romain Tartière
32c585db69 rnda & rndb are 16 bytes long in 3K3DS and AES mode. 2014-04-13 20:01:44 +02:00
Romain Tartière
646a20da34 Add missing break.
This had no incidence on the code, but this change make things more
consistent.
2014-04-13 19:47:56 +02:00
Romain Tartière
c42dfce78d Style. 2014-04-13 19:41:17 +02:00
Romain Tartière
e848cf9ced Ignore a few more files. 2014-04-06 14:14:12 +02:00
Romain Tartière
510d8a4b85 Reindent after last commit. 2014-04-06 14:14:01 +02:00
Romain Tartière
3085408bf2 Check malloc() return value.
Fixes issue 25.
2014-04-06 13:38:12 +02:00
Robert Clausecker
0ad6a09cda Tell apart malloc failure from no application in mifare_application_write() 2014-03-19 18:55:09 +01:00
Robert Clausecker
3e53c7811a Check for NULL pointer in mifare_application_free()
This changeset alters the return type of mifare_application_free() from void to
int. This change is necessary to be able to inform the caller whether the call
to malloc() inside mifare_application_find() failed.
2014-03-19 18:55:04 +01:00
Philippe Teuwen
c4e657f8cd Return EACCES when authentication to a DESFire tag fails
Note that in case the tag didn't authenticate us, we've also
tag->last_picc_error = AUTHENTICATION_ERROR
But in the unlikely event that we didn't authenticate the tag
(e.g. if the tag is fake and pretends the auth was ok)
only errno = EACCES will be set
2014-03-14 22:50:17 +01:00
Philippe Teuwen
c72a55993b Return EACCES when authentication to a MIFARE Classic tag fails 2014-03-14 22:31:48 +01:00
Robert Clausecker
184c5dcbdf Return EACCES when authentication to an ultralight tag fails 2014-03-13 14:07:41 +01:00
Philippe Teuwen
7ae729a65d Use 424kbits/s when talking to DESFire
PN532 does not support 847kbits/s, oops
2014-03-11 22:09:53 +01:00
Philippe Teuwen
e6b80856c9 Use 847kbits/s when talking to DESFire
This has effects only with libnfc >= libnfc-1.7.1-5-g108de27
2014-03-11 00:16:07 +01:00
Philippe Teuwen
7933adc57e mifare_desfire_connect(): select Desfire AID 2014-02-11 17:24:50 +01:00
Philippe Teuwen
2960f704f8 Let's redirect NFC phones to Desfire as they're ISO14443-4 2014-02-11 17:24:38 +01:00
Philippe Teuwen
dbb88cd184 mifare_cryto_postprocess_data: add safety checks 2014-01-27 18:24:55 +01:00
Philippe Teuwen
e797ee2a2e Add freefare_selected_tag_is_present() 2014-01-27 16:32:23 +01:00
Maxim Chechel
9ee3687280 Support for Dual Interface cards like UICC/eSE SmartMX based emulation 2013-12-18 19:14:50 +04:00
Romuald Conty
530ccbc193 Update changelog for 0.4.0 2013-12-04 11:03:40 +01:00
Romuald Conty
cd481cb70e Use bzip2 instead of gzip compression algorithm 2013-12-04 11:03:33 +01:00
Romuald Conty
c3d0942c3b Updates invalid email address 2013-12-03 16:22:23 +01:00
Don Coleman
14219ab145 add -y flag to mifare-classic-write-ndef
write without confirmation
2013-07-14 22:55:56 +02:00
Philippe Teuwen
f86ad5a183 mifare-classic-read-ndef: skip NULL TLV & proprio TLV 2013-07-14 21:18:28 +02:00
Philippe Teuwen
ea496c441d Merge remote-tracking branch 'dheidler/master'
* dheidler/master:
  mifare-classic-format option: read keys from dump
2013-06-20 14:27:58 +02:00
Philippe Teuwen
f0c4db2f4b Fix MIFARE_ULTRALIGHT_C_PAGE_COUNT_READ
Fixes issue #12
Reading page 0x2b of an ULC was refused
2013-06-20 00:00:55 +02:00
Jan Engelhardt
089b6006b1 libfreefare: resolve compiler warning on breakage of strict aliasing
gcc warns:
mifare_classic.c:353:45: warning: dereferencing type-punned pointer
will break strict-aliasing rules [-Wstrict-aliasing]

There is another problem with this code: "data", being a 16-byte
array, may not be suitably aligned for the other types in the union.
This patch resolves this.
2013-06-05 19:37:32 +02:00
Dominik Heidler
cc36619f13 mifare-classic-format option: read keys from dump 2013-05-03 09:58:22 +02:00
Philippe Teuwen
00e999dd52 Ugly fix as workaround of FIXME mifare_desfire.c read_data() 2013-04-29 00:51:06 +02:00
Philippe Teuwen
29235a0295 Debian: fix libnfc dependency now that rc7 has a name 2013-04-05 16:18:58 +02:00
Philippe Teuwen
296ab78fad Debian: allow compilation against libnfc RC releases 2013-03-31 00:02:01 +01:00
Philippe Teuwen
061b41ed2d Align with libnfc API change: test nfc_init() result 2013-03-30 18:07:34 +01:00
Philippe Teuwen
86c194ef6c Changelog from git2cl, to be beautified 2013-02-18 17:13:40 +01:00
Philippe Teuwen
2d3cff48e7 Add support for 7-byte UID MIFARE Classic cards 2013-01-29 23:26:32 +01:00
Philippe Teuwen
42e731b492 DF cutter tests: detect if DF is too small for tests 2013-01-29 22:47:50 +01:00
Philippe Teuwen
bfa8bc69fc Document how to run cutter tests, all pass now 2013-01-29 22:05:27 +01:00
Philippe Teuwen
57f93fbeda Fix buffer size in desfire_get_version, now cutter is happy on DF EV1
38 test(s), 8120 assertion(s), 0 failure(s), 0 error(s), 0 pending(s), 19 omission(s), 0 notification(s)
100% passed
2013-01-29 22:05:27 +01:00
Philippe Teuwen
601b75333f DF EV1 Cutter tests must be done with at least a 4k card, still 2 tests failed
38 test(s), 8041 assertion(s), 2 failure(s), 0 error(s), 0 pending(s), 19 omission(s), 0 notification(s)
94.7368% passed

.errorlibnfc.chip.pn53xBuffer size is too short: 23o available(s), 24o needed
F
===============================================================================
Failure: test_mifare_desfire_ev1_aes2
Wrong return value
<-1 != res>
expected: <-1>
  actual: <-1>
./test_mifare_desfire_ev1.c:75: test_mifare_desfire_ev1_aes2(): cut_assert_not_equal_int(-1, res)
===============================================================================
F
===============================================================================
Failure: test_mifare_desfire_ev1_iso
Wrong DF count
<count == 0>
expected: <1>
  actual: <0>
./test_mifare_desfire_ev1_iso.c:48: test_mifare_desfire_ev1_iso(): cut_assert_equal_int(count, 0, cut_test_context_set_current_result_user_message( cut_test_context_current_
===============================================================================
2013-01-29 22:05:27 +01:00
Philippe Teuwen
fbb5434f24 Adjusting DESFire frame sizes, cutter still not entirely satisfied
Desfire (old) 4k:

write large ndef OK
read large ndef OK
cutter: OK
31 test(s), 2576 assertion(s), 0 failure(s), 0 error(s), 0 pending(s), 26 omission(s), 0 notification(s)
100% passed

Desfire EV1 2k:

write large ndef OK
read large ndef OK
cutter: FAIL
38 test(s), 5257 assertion(s), 6 failure(s), 0 error(s), 0 pending(s), 19 omission(s), 0 notification(s)
84.2105% passed
2013-01-29 22:05:27 +01:00
Romain Tartière
5fa9f2cbc3 Remove a few static.
Cutter can't test suche methods.
2013-01-28 15:55:22 +01:00
Romuald Conty
4f3aec28b3 Updates NEWS file 2013-01-20 17:53:38 +01:00
Romuald Conty
444a62567f Updates unit tests to use libnfc 1.7.0 2013-01-20 17:53:33 +01:00
Philippe Teuwen
8885aaa94c Debian: bump dev dep to libnfc-dev to 1.7.0 2013-01-16 08:34:56 +01:00
Philippe Teuwen
b922c8b2c9 Add debian/.gitignore 2013-01-16 08:31:53 +01:00