The unified diff between revisions [79d4f35e..] and [36d5d43a..] is displayed below. It can also be downloaded as a raw diff.
# # # patch "ENGINEERING" # from [1e3e3f12423c4479cf21ef3c44348b53e9ef252e] # to [98accc97ed78eeee973321bb6ebfbcafb5874d1d] # ============================================================ --- ENGINEERING 1e3e3f12423c4479cf21ef3c44348b53e9ef252e +++ ENGINEERING 98accc97ed78eeee973321bb6ebfbcafb5874d1d @@ -218,6 +218,44 @@ After issuing this command, future comma -- +API Call: "rf_m1_authentication2" +Parameters: key identifier - A 0x60, B 0x61, block number to authenticate on, + encryption key (6 bytes) + +Default transport keys: 0xFF FF FF FF FF FF, 0x00 00 00 00 00 00 (either A or B) +0xA0 A1 A2 A3 A4 A5 (key A) +0xB0 B1 B2 B3 B4 B5 (key B) + +Commands: +1. '\xAA\xBB\x0D\x00\x00\x00\x07\x02\x60\x00\xFF\xFF\xFF\xFF\xFF\xFF\x65' + Authenticate with key A as '0xFF FF FF FF FF FF' + +Responses: +1. '\xAA\xBB\x06\x00\xDE\xAD\x07\x08\x00\x76' Successful authentication +1. '\xAA\xBB\x06\x00\xDE\xAD\x07\x08\x16\x60' Access denied (incorrect key) + +-- + +API Call "rf_m1_read" +Parameters: 'absolute' block number + +MIFARE cards are split into blocks of 4 16-byte sectors (where the fourth sector +contains the access control data). The SL500L requires an absolute offset, so +block 0 is sectors 0, 1, 2 and 3 (where sector 3 contains the keys and ACL). +Block 1 is sectors 4, 5, 6 and 7, and so on. + +To make things a little more confusing, blocks 32 and above (sector >= 0x80) are +made up of 16 sectors, where the sixteenth is the key and ACL sector. + +Commands: +1. '\xAA\xBB\x06\x00\x00\x00\x08\x02\x07\x0D' Read sector 0x07 (i.e. in block 1) + +Responses: +1. '\xaa\xbb\x16\x00\xde\xad\x08\x02\x00\x00\x00\x00\x00\x00\x00\x00\xff\x07\x80\x69\xff\xff\xff\xff\xff\xff\x68' + Success, returned data is 000000000000FF078069FFFFFFFFFFFF + +-- + API Call: "rf_halt" Parameters: none