17
17
* along with this program. If not, see <http://www.gnu.org/licenses/>.
18
18
*/
19
19
#include "nfc_supported_card_plugin.h"
20
+ #include <flipper_application.h>
20
21
21
- #include "protocols/mf_classic/mf_classic.h"
22
- #include <flipper_application/flipper_application.h>
23
-
24
- #include <nfc/nfc_device.h>
25
- #include <nfc/helpers/nfc_util.h>
26
22
#include <nfc/protocols/mf_classic/mf_classic_poller_sync.h>
27
23
24
+ #include <bit_lib.h>
28
25
#include <furi_hal_rtc.h>
29
26
30
27
#define TAG "Kazan"
@@ -134,7 +131,7 @@ static bool kazan_verify(Nfc* nfc) {
134
131
FURI_LOG_D (TAG , "Verifying sector %u" , verification_sector_number );
135
132
136
133
MfClassicKey key_1 = {0 };
137
- nfc_util_num2bytes (
134
+ bit_lib_num_to_bytes_be (
138
135
kazan_1k_keys_v1 [verification_sector_number ].a , COUNT_OF (key_1 .data ), key_1 .data );
139
136
140
137
MfClassicAuthContext auth_context ;
@@ -145,7 +142,7 @@ static bool kazan_verify(Nfc* nfc) {
145
142
TAG , "Failed to read block %u: %d. Keys: v1" , verification_block_number , error );
146
143
147
144
MfClassicKey key_2 = {0 };
148
- nfc_util_num2bytes (
145
+ bit_lib_num_to_bytes_be (
149
146
kazan_1k_keys_v2 [verification_sector_number ].a , COUNT_OF (key_2 .data ), key_2 .data );
150
147
151
148
MfClassicAuthContext auth_context ;
@@ -196,17 +193,23 @@ static bool kazan_read(Nfc* nfc, NfcDevice* device) {
196
193
};
197
194
198
195
for (size_t i = 0 ; i < mf_classic_get_total_sectors_num (data -> type ); i ++ ) {
199
- nfc_util_num2bytes (kazan_1k_keys_v1 [i ].a , sizeof (MfClassicKey ), keys_v1 .key_a [i ].data );
200
- nfc_util_num2bytes (kazan_1k_keys_v2 [i ].a , sizeof (MfClassicKey ), keys_v2 .key_a [i ].data );
201
- nfc_util_num2bytes (kazan_1k_keys_v3 [i ].a , sizeof (MfClassicKey ), keys_v3 .key_a [i ].data );
196
+ bit_lib_num_to_bytes_be (
197
+ kazan_1k_keys_v1 [i ].a , sizeof (MfClassicKey ), keys_v1 .key_a [i ].data );
198
+ bit_lib_num_to_bytes_be (
199
+ kazan_1k_keys_v2 [i ].a , sizeof (MfClassicKey ), keys_v2 .key_a [i ].data );
200
+ bit_lib_num_to_bytes_be (
201
+ kazan_1k_keys_v3 [i ].a , sizeof (MfClassicKey ), keys_v3 .key_a [i ].data );
202
202
203
203
FURI_BIT_SET (keys_v1 .key_a_mask , i );
204
204
FURI_BIT_SET (keys_v2 .key_a_mask , i );
205
205
FURI_BIT_SET (keys_v3 .key_a_mask , i );
206
206
207
- nfc_util_num2bytes (kazan_1k_keys_v1 [i ].b , sizeof (MfClassicKey ), keys_v1 .key_b [i ].data );
208
- nfc_util_num2bytes (kazan_1k_keys_v2 [i ].b , sizeof (MfClassicKey ), keys_v2 .key_b [i ].data );
209
- nfc_util_num2bytes (kazan_1k_keys_v3 [i ].b , sizeof (MfClassicKey ), keys_v3 .key_b [i ].data );
207
+ bit_lib_num_to_bytes_be (
208
+ kazan_1k_keys_v1 [i ].b , sizeof (MfClassicKey ), keys_v1 .key_b [i ].data );
209
+ bit_lib_num_to_bytes_be (
210
+ kazan_1k_keys_v2 [i ].b , sizeof (MfClassicKey ), keys_v2 .key_b [i ].data );
211
+ bit_lib_num_to_bytes_be (
212
+ kazan_1k_keys_v3 [i ].b , sizeof (MfClassicKey ), keys_v3 .key_b [i ].data );
210
213
211
214
FURI_BIT_SET (keys_v1 .key_b_mask , i );
212
215
FURI_BIT_SET (keys_v2 .key_b_mask , i );
@@ -261,8 +264,8 @@ static bool kazan_parse(const NfcDevice* device, FuriString* parsed_data) {
261
264
const MfClassicSectorTrailer * sec_tr =
262
265
mf_classic_get_sector_trailer_by_sector (data , ticket_sector_number );
263
266
264
- keys .a = nfc_util_bytes2num (sec_tr -> key_a .data , COUNT_OF (sec_tr -> key_a .data ));
265
- keys .b = nfc_util_bytes2num (sec_tr -> key_b .data , COUNT_OF (sec_tr -> key_b .data ));
267
+ keys .a = bit_lib_bytes_to_num_be (sec_tr -> key_a .data , COUNT_OF (sec_tr -> key_a .data ));
268
+ keys .b = bit_lib_bytes_to_num_be (sec_tr -> key_b .data , COUNT_OF (sec_tr -> key_b .data ));
266
269
267
270
if (((keys .a != kazan_1k_keys_v1 [8 ].a ) && (keys .a != kazan_1k_keys_v2 [8 ].a )) ||
268
271
((keys .b != kazan_1k_keys_v1 [8 ].b ) && (keys .b != kazan_1k_keys_v2 [8 ].b ))) {
@@ -305,11 +308,11 @@ static bool kazan_parse(const NfcDevice* device, FuriString* parsed_data) {
305
308
start_block_num = mf_classic_get_first_block_num_of_sector (balance_sector_number );
306
309
block_start_ptr = & data -> block [start_block_num ].data [0 ];
307
310
308
- const uint32_t trip_counter = nfc_util_bytes2num_little_endian (block_start_ptr , 4 );
311
+ const uint32_t trip_counter = bit_lib_bytes_to_num_le (block_start_ptr , 4 );
309
312
310
313
size_t uid_len = 0 ;
311
314
const uint8_t * uid = mf_classic_get_uid (data , & uid_len );
312
- const uint32_t card_number = nfc_util_bytes2num_little_endian (uid , 4 );
315
+ const uint32_t card_number = bit_lib_bytes_to_num_le (uid , 4 );
313
316
314
317
furi_string_cat_printf (
315
318
parsed_data , "\e#Kazan transport card\nCard number: %lu\n" , card_number );
0 commit comments