@@ -225,8 +225,8 @@ static bool picopass_device_load_data(PicopassDevice* dev, FuriString* path, boo
225
225
}
226
226
if (!block_read ) break ;
227
227
228
- if ( picopass_device_parse_credential (AA1 , pacs ) != ERR_NONE ) break ;
229
- if ( picopass_device_parse_wiegand (pacs -> credential , pacs ) != ERR_NONE ) break ;
228
+ picopass_device_parse_credential (AA1 , pacs );
229
+ picopass_device_parse_wiegand (pacs -> credential , pacs );
230
230
231
231
parsed = true;
232
232
} while (false);
@@ -343,43 +343,28 @@ void picopass_device_set_loading_callback(
343
343
dev -> loading_cb_ctx = context ;
344
344
}
345
345
346
- ReturnCode picopass_device_decrypt (uint8_t * enc_data , uint8_t * dec_data ) {
346
+ void picopass_device_decrypt (uint8_t * enc_data , uint8_t * dec_data ) {
347
347
uint8_t key [32 ] = {0 };
348
348
memcpy (key , picopass_iclass_decryptionkey , sizeof (picopass_iclass_decryptionkey ));
349
349
mbedtls_des3_context ctx ;
350
350
mbedtls_des3_init (& ctx );
351
351
mbedtls_des3_set2key_dec (& ctx , key );
352
352
mbedtls_des3_crypt_ecb (& ctx , enc_data , dec_data );
353
353
mbedtls_des3_free (& ctx );
354
- return ERR_NONE ;
355
354
}
356
355
357
- ReturnCode picopass_device_parse_credential (PicopassBlock * AA1 , PicopassPacs * pacs ) {
358
- ReturnCode err ;
359
-
356
+ void picopass_device_parse_credential (PicopassBlock * AA1 , PicopassPacs * pacs ) {
360
357
pacs -> biometrics = AA1 [6 ].data [4 ];
361
358
pacs -> pin_length = AA1 [6 ].data [6 ] & 0x0F ;
362
359
pacs -> encryption = AA1 [6 ].data [7 ];
363
360
364
361
if (pacs -> encryption == PicopassDeviceEncryption3DES ) {
365
362
FURI_LOG_D (TAG , "3DES Encrypted" );
366
- err = picopass_device_decrypt (AA1 [7 ].data , pacs -> credential );
367
- if (err != ERR_NONE ) {
368
- FURI_LOG_E (TAG , "decrypt error %d" , err );
369
- return err ;
370
- }
363
+ picopass_device_decrypt (AA1 [7 ].data , pacs -> credential );
371
364
372
- err = picopass_device_decrypt (AA1 [8 ].data , pacs -> pin0 );
373
- if (err != ERR_NONE ) {
374
- FURI_LOG_E (TAG , "decrypt error %d" , err );
375
- return err ;
376
- }
365
+ picopass_device_decrypt (AA1 [8 ].data , pacs -> pin0 );
377
366
378
- err = picopass_device_decrypt (AA1 [9 ].data , pacs -> pin1 );
379
- if (err != ERR_NONE ) {
380
- FURI_LOG_E (TAG , "decrypt error %d" , err );
381
- return err ;
382
- }
367
+ picopass_device_decrypt (AA1 [9 ].data , pacs -> pin1 );
383
368
} else if (pacs -> encryption == PicopassDeviceEncryptionNone ) {
384
369
FURI_LOG_D (TAG , "No Encryption" );
385
370
memcpy (pacs -> credential , AA1 [7 ].data , PICOPASS_BLOCK_LEN );
@@ -392,11 +377,9 @@ ReturnCode picopass_device_parse_credential(PicopassBlock* AA1, PicopassPacs* pa
392
377
}
393
378
394
379
pacs -> sio = (AA1 [10 ].data [0 ] == 0x30 ); // rough check
395
-
396
- return ERR_NONE ;
397
380
}
398
381
399
- ReturnCode picopass_device_parse_wiegand (uint8_t * credential , PicopassPacs * pacs ) {
382
+ void picopass_device_parse_wiegand (uint8_t * credential , PicopassPacs * pacs ) {
400
383
uint32_t * halves = (uint32_t * )credential ;
401
384
if (halves [0 ] == 0 ) {
402
385
uint8_t leading0s = __builtin_clz (REVERSE_BYTES_U32 (halves [1 ]));
@@ -413,8 +396,6 @@ ReturnCode picopass_device_parse_wiegand(uint8_t* credential, PicopassPacs* pacs
413
396
swapped = swapped ^ sentinel ;
414
397
memcpy (credential , & swapped , sizeof (uint64_t ));
415
398
FURI_LOG_D (TAG , "PACS: (%d) %016llx" , pacs -> bitLength , swapped );
416
-
417
- return ERR_NONE ;
418
399
}
419
400
420
401
bool picopass_device_hid_csn (PicopassDevice * dev ) {
0 commit comments