Skip to content

Commit

Permalink
total cleanup. finally, bitlib
Browse files Browse the repository at this point in the history
  • Loading branch information
Leptopt1los authored and xMasterX committed Feb 14, 2024
1 parent 6d15c23 commit cc457fa
Show file tree
Hide file tree
Showing 28 changed files with 149 additions and 1,088 deletions.
4 changes: 2 additions & 2 deletions applications/main/lfrfid/scenes/lfrfid_scene_clear_t5577.c
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
#include "../lfrfid_i.h"
#include <bit_lib.h>
#include "tools/t5577.h"
#define TAG "Clear T5577"

Expand All @@ -21,8 +22,7 @@ static void lfrfid_clear_t5577_password_and_config_to_EM(LfRfid* app) {
};

// Clear custom password
uint32_t custom_pass = (app->password[0] << 24) | (app->password[1] << 16) |
(app->password[2] << 8) | (app->password[3]);
uint32_t custom_pass = bit_lib_bytes_to_num_be(app->password, 4);
snprintf(curr_buf, sizeof(curr_buf), "Custom password");
view_dispatcher_switch_to_view(app->view_dispatcher, LfRfidViewPopup);

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
#include "../lfrfid_i.h"
#include "bit_lib.h"
#include "gui/scene_manager.h"

int next_scene;
Expand All @@ -16,7 +17,7 @@ void lfrfid_scene_enter_password_on_enter(void* context) {
const uint32_t* password_list = lfrfid_get_t5577_default_passwords(&password_list_size);
uint32_t pass = password_list[furi_get_tick() % password_list_size];

for(uint8_t i = 0; i < 4; i++) app->password[4 - (i + 1)] = (pass >> (8 * i)) & 0xFF;
bit_lib_num_to_bytes_be(pass, 4, app->password);
}

byte_input_set_header_text(byte_input, "Enter the password in hex");
Expand Down
7 changes: 3 additions & 4 deletions applications/main/nfc/plugins/supported_cards/aime.c
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
#include "nfc_supported_card_plugin.h"
#include <flipper_application.h>

#include <flipper_application/flipper_application.h>

#include <nfc/nfc_device.h>
#include <bit_lib/bit_lib.h>
#include <nfc/protocols/mf_classic/mf_classic_poller_sync.h>

#include <bit_lib.h>

#define TAG "Aime"

static const uint64_t aime_key = 0x574343467632;
Expand Down
2 changes: 1 addition & 1 deletion applications/main/nfc/plugins/supported_cards/all_in_one.c
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#include "nfc_supported_card_plugin.h"
#include <flipper_application.h>

#include <flipper_application/flipper_application.h>
#include <nfc/protocols/mf_ultralight/mf_ultralight.h>

#define TAG "AllInOne"
Expand Down
5 changes: 3 additions & 2 deletions applications/main/nfc/plugins/supported_cards/clipper.c
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,11 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "nfc_supported_card_plugin.h"
#include <flipper_application.h>

#include <flipper_application/flipper_application.h>
#include <lib/nfc/protocols/mf_desfire/mf_desfire.h>
#include <bit_lib/bit_lib.h>

#include <bit_lib.h>
#include <applications/services/locale/locale.h>
#include <furi_hal_rtc.h>
#include <inttypes.h>
Expand Down
11 changes: 4 additions & 7 deletions applications/main/nfc/plugins/supported_cards/emv.c
Original file line number Diff line number Diff line change
Expand Up @@ -16,17 +16,14 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "core/string.h"
#include "furi_hal_rtc.h"
#include "helpers/nfc_emv_parser.h"

#include "nfc_supported_card_plugin.h"
#include <flipper_application.h>

#include "protocols/emv/emv.h"
#include "protocols/nfc_protocol.h"
#include <flipper_application/flipper_application.h>
#include "helpers/nfc_emv_parser.h"

#include <nfc/nfc_device.h>
#include <nfc/helpers/nfc_util.h>
#include <furi_hal_rtc.h>

#define TAG "EMV"

Expand Down
7 changes: 3 additions & 4 deletions applications/main/nfc/plugins/supported_cards/gallagher.c
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,11 @@
*/

#include "nfc_supported_card_plugin.h"
#include <flipper_application.h>

#include "../../api/gallagher/gallagher_util.h"

#include <flipper_application/flipper_application.h>
#include <nfc/protocols/mf_classic/mf_classic.h>
#include <nfc/protocols/mf_classic/mf_classic_poller_sync.h>
#include <bit_lib/bit_lib.h>
#include <bit_lib.h>

static bool gallagher_parse(const NfcDevice* device, FuriString* parsed_data) {
furi_assert(device);
Expand Down
7 changes: 4 additions & 3 deletions applications/main/nfc/plugins/supported_cards/hi.c
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
#include "nfc_supported_card_plugin.h"
#include <flipper_application/flipper_application.h>
#include <nfc/nfc_device.h>
#include <bit_lib/bit_lib.h>
#include <flipper_application.h>

#include <nfc/protocols/mf_classic/mf_classic_poller_sync.h>

#include <bit_lib.h>

#define TAG "HI!"
#define KEY_LENGTH 6
#define HI_KEY_TO_GEN 5
Expand Down
7 changes: 3 additions & 4 deletions applications/main/nfc/plugins/supported_cards/hid.c
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
#include "nfc_supported_card_plugin.h"
#include <flipper_application.h>

#include <flipper_application/flipper_application.h>

#include <nfc/nfc_device.h>
#include <bit_lib/bit_lib.h>
#include <nfc/protocols/mf_classic/mf_classic_poller_sync.h>

#include <bit_lib.h>

#define TAG "HID"

static const uint64_t hid_key = 0x484944204953;
Expand Down
2 changes: 1 addition & 1 deletion applications/main/nfc/plugins/supported_cards/itso.c
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/* itso.c - Parser for ITSO cards (United Kingdom). */
#include "nfc_supported_card_plugin.h"
#include <flipper_application.h>

#include <flipper_application/flipper_application.h>
#include <lib/nfc/protocols/mf_desfire/mf_desfire.h>

#include <applications/services/locale/locale.h>
Expand Down
37 changes: 20 additions & 17 deletions applications/main/nfc/plugins/supported_cards/kazan.c
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,11 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "nfc_supported_card_plugin.h"
#include <flipper_application.h>

#include "protocols/mf_classic/mf_classic.h"
#include <flipper_application/flipper_application.h>

#include <nfc/nfc_device.h>
#include <nfc/helpers/nfc_util.h>
#include <nfc/protocols/mf_classic/mf_classic_poller_sync.h>

#include <bit_lib.h>
#include <furi_hal_rtc.h>

#define TAG "Kazan"
Expand Down Expand Up @@ -134,7 +131,7 @@ static bool kazan_verify(Nfc* nfc) {
FURI_LOG_D(TAG, "Verifying sector %u", verification_sector_number);

MfClassicKey key_1 = {0};
nfc_util_num2bytes(
bit_lib_num_to_bytes_be(
kazan_1k_keys_v1[verification_sector_number].a, COUNT_OF(key_1.data), key_1.data);

MfClassicAuthContext auth_context;
Expand All @@ -145,7 +142,7 @@ static bool kazan_verify(Nfc* nfc) {
TAG, "Failed to read block %u: %d. Keys: v1", verification_block_number, error);

MfClassicKey key_2 = {0};
nfc_util_num2bytes(
bit_lib_num_to_bytes_be(
kazan_1k_keys_v2[verification_sector_number].a, COUNT_OF(key_2.data), key_2.data);

MfClassicAuthContext auth_context;
Expand Down Expand Up @@ -196,17 +193,23 @@ static bool kazan_read(Nfc* nfc, NfcDevice* device) {
};

for(size_t i = 0; i < mf_classic_get_total_sectors_num(data->type); i++) {
nfc_util_num2bytes(kazan_1k_keys_v1[i].a, sizeof(MfClassicKey), keys_v1.key_a[i].data);
nfc_util_num2bytes(kazan_1k_keys_v2[i].a, sizeof(MfClassicKey), keys_v2.key_a[i].data);
nfc_util_num2bytes(kazan_1k_keys_v3[i].a, sizeof(MfClassicKey), keys_v3.key_a[i].data);
bit_lib_num_to_bytes_be(
kazan_1k_keys_v1[i].a, sizeof(MfClassicKey), keys_v1.key_a[i].data);
bit_lib_num_to_bytes_be(
kazan_1k_keys_v2[i].a, sizeof(MfClassicKey), keys_v2.key_a[i].data);
bit_lib_num_to_bytes_be(
kazan_1k_keys_v3[i].a, sizeof(MfClassicKey), keys_v3.key_a[i].data);

FURI_BIT_SET(keys_v1.key_a_mask, i);
FURI_BIT_SET(keys_v2.key_a_mask, i);
FURI_BIT_SET(keys_v3.key_a_mask, i);

nfc_util_num2bytes(kazan_1k_keys_v1[i].b, sizeof(MfClassicKey), keys_v1.key_b[i].data);
nfc_util_num2bytes(kazan_1k_keys_v2[i].b, sizeof(MfClassicKey), keys_v2.key_b[i].data);
nfc_util_num2bytes(kazan_1k_keys_v3[i].b, sizeof(MfClassicKey), keys_v3.key_b[i].data);
bit_lib_num_to_bytes_be(
kazan_1k_keys_v1[i].b, sizeof(MfClassicKey), keys_v1.key_b[i].data);
bit_lib_num_to_bytes_be(
kazan_1k_keys_v2[i].b, sizeof(MfClassicKey), keys_v2.key_b[i].data);
bit_lib_num_to_bytes_be(
kazan_1k_keys_v3[i].b, sizeof(MfClassicKey), keys_v3.key_b[i].data);

FURI_BIT_SET(keys_v1.key_b_mask, i);
FURI_BIT_SET(keys_v2.key_b_mask, i);
Expand Down Expand Up @@ -261,8 +264,8 @@ static bool kazan_parse(const NfcDevice* device, FuriString* parsed_data) {
const MfClassicSectorTrailer* sec_tr =
mf_classic_get_sector_trailer_by_sector(data, ticket_sector_number);

keys.a = nfc_util_bytes2num(sec_tr->key_a.data, COUNT_OF(sec_tr->key_a.data));
keys.b = nfc_util_bytes2num(sec_tr->key_b.data, COUNT_OF(sec_tr->key_b.data));
keys.a = bit_lib_bytes_to_num_be(sec_tr->key_a.data, COUNT_OF(sec_tr->key_a.data));
keys.b = bit_lib_bytes_to_num_be(sec_tr->key_b.data, COUNT_OF(sec_tr->key_b.data));

if(((keys.a != kazan_1k_keys_v1[8].a) && (keys.a != kazan_1k_keys_v2[8].a)) ||
((keys.b != kazan_1k_keys_v1[8].b) && (keys.b != kazan_1k_keys_v2[8].b))) {
Expand Down Expand Up @@ -305,11 +308,11 @@ static bool kazan_parse(const NfcDevice* device, FuriString* parsed_data) {
start_block_num = mf_classic_get_first_block_num_of_sector(balance_sector_number);
block_start_ptr = &data->block[start_block_num].data[0];

const uint32_t trip_counter = nfc_util_bytes2num_little_endian(block_start_ptr, 4);
const uint32_t trip_counter = bit_lib_bytes_to_num_le(block_start_ptr, 4);

size_t uid_len = 0;
const uint8_t* uid = mf_classic_get_uid(data, &uid_len);
const uint32_t card_number = nfc_util_bytes2num_little_endian(uid, 4);
const uint32_t card_number = bit_lib_bytes_to_num_le(uid, 4);

furi_string_cat_printf(
parsed_data, "\e#Kazan transport card\nCard number: %lu\n", card_number);
Expand Down
23 changes: 12 additions & 11 deletions applications/main/nfc/plugins/supported_cards/metromoney.c
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,12 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "nfc_supported_card_plugin.h"
#include <flipper_application.h>

#include "protocols/mf_classic/mf_classic.h"
#include <flipper_application/flipper_application.h>

#include <nfc/nfc_device.h>
#include <nfc/helpers/nfc_util.h>
#include <nfc/protocols/mf_classic/mf_classic_poller_sync.h>

#include <bit_lib.h>

#define TAG "Metromoney"

typedef struct {
Expand Down Expand Up @@ -61,7 +59,7 @@ static bool metromoney_verify(Nfc* nfc) {
FURI_LOG_D(TAG, "Verifying sector %u", ticket_sector_number);

MfClassicKey key = {0};
nfc_util_num2bytes(
bit_lib_num_to_bytes_be(
metromoney_1k_keys[ticket_sector_number].a, COUNT_OF(key.data), key.data);

MfClassicAuthContext auth_context;
Expand Down Expand Up @@ -100,9 +98,11 @@ static bool metromoney_read(Nfc* nfc, NfcDevice* device) {
.key_b_mask = 0,
};
for(size_t i = 0; i < mf_classic_get_total_sectors_num(data->type); i++) {
nfc_util_num2bytes(metromoney_1k_keys[i].a, sizeof(MfClassicKey), keys.key_a[i].data);
bit_lib_num_to_bytes_be(
metromoney_1k_keys[i].a, sizeof(MfClassicKey), keys.key_a[i].data);
FURI_BIT_SET(keys.key_a_mask, i);
nfc_util_num2bytes(metromoney_1k_keys[i].b, sizeof(MfClassicKey), keys.key_b[i].data);
bit_lib_num_to_bytes_be(
metromoney_1k_keys[i].b, sizeof(MfClassicKey), keys.key_b[i].data);
FURI_BIT_SET(keys.key_b_mask, i);
}

Expand Down Expand Up @@ -137,7 +137,8 @@ static bool metromoney_parse(const NfcDevice* device, FuriString* parsed_data) {
const MfClassicSectorTrailer* sec_tr =
mf_classic_get_sector_trailer_by_sector(data, ticket_sector_number);

const uint64_t key = nfc_util_bytes2num(sec_tr->key_a.data, COUNT_OF(sec_tr->key_a.data));
const uint64_t key =
bit_lib_bytes_to_num_be(sec_tr->key_a.data, COUNT_OF(sec_tr->key_a.data));
if(key != metromoney_1k_keys[ticket_sector_number].a) break;

// Parse data
Expand All @@ -147,14 +148,14 @@ static bool metromoney_parse(const NfcDevice* device, FuriString* parsed_data) {
const uint8_t* block_start_ptr =
&data->block[start_block_num + ticket_block_number].data[0];

uint32_t balance = nfc_util_bytes2num_little_endian(block_start_ptr, 4) - 100;
uint32_t balance = bit_lib_bytes_to_num_le(block_start_ptr, 4) - 100;

uint32_t balance_lari = balance / 100;
uint8_t balance_tetri = balance % 100;

size_t uid_len = 0;
const uint8_t* uid = mf_classic_get_uid(data, &uid_len);
uint32_t card_number = nfc_util_bytes2num_little_endian(uid, 4);
uint32_t card_number = bit_lib_bytes_to_num_le(uid, 4);

furi_string_printf(
parsed_data,
Expand Down
7 changes: 4 additions & 3 deletions applications/main/nfc/plugins/supported_cards/microel.c
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
#include "nfc_supported_card_plugin.h"
#include <flipper_application/flipper_application.h>
#include <nfc/nfc_device.h>
#include <bit_lib/bit_lib.h>
#include <flipper_application.h>

#include <nfc/protocols/mf_classic/mf_classic_poller_sync.h>

#include <bit_lib.h>

#define TAG "Microel"
#define KEY_LENGTH 6
#define UID_LENGTH 4
Expand Down
7 changes: 4 additions & 3 deletions applications/main/nfc/plugins/supported_cards/mizip.c
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
#include "nfc_supported_card_plugin.h"
#include <flipper_application/flipper_application.h>
#include <nfc/nfc_device.h>
#include <bit_lib/bit_lib.h>
#include <flipper_application.h>

#include <nfc/protocols/mf_classic/mf_classic_poller_sync.h>

#include <bit_lib.h>

#define TAG "MiZIP"
#define KEY_LENGTH 6
#define MIZIP_KEY_TO_GEN 5
Expand Down
2 changes: 1 addition & 1 deletion applications/main/nfc/plugins/supported_cards/mykey.c
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#include "nfc_supported_card_plugin.h"
#include <flipper_application.h>

#include <flipper_application/flipper_application.h>
#include <machine/endian.h>
#include <nfc/protocols/st25tb/st25tb.h>

Expand Down
2 changes: 1 addition & 1 deletion applications/main/nfc/plugins/supported_cards/myki.c
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
* Reference: https://github.com/metrodroid/metrodroid/wiki/Myki
*/
#include "nfc_supported_card_plugin.h"
#include <flipper_application.h>

#include <flipper_application/flipper_application.h>
#include <lib/nfc/protocols/mf_desfire/mf_desfire.h>

static const MfDesfireApplicationId myki_app_id = {.data = {0x00, 0x11, 0xf2}};
Expand Down
Loading

0 comments on commit cc457fa

Please sign in to comment.