Skip to content
This repository has been archived by the owner on Jul 28, 2024. It is now read-only.

Commit

Permalink
Browse files Browse the repository at this point in the history
 into xfw-dev
  • Loading branch information
Willy-JL committed Feb 15, 2024
2 parents fe0ff08 + 33cf554 commit 2b8db65
Show file tree
Hide file tree
Showing 29 changed files with 257 additions and 204 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,7 @@ void nfc_render_emv_transactions(const EmvApplication* apl, FuriString* str) {
if(!apl->trans[i].amount) {
furi_string_cat_printf(str, "???");
} else {
FURI_LOG_D("EMV Render", "Amount: %llX\n", apl->trans[i].amount);
uint8_t amount_bytes[6];
bit_lib_num_to_bytes_le(apl->trans[i].amount, 6, amount_bytes);

Expand Down
2 changes: 1 addition & 1 deletion applications/main/nfc/plugins/supported_cards/clipper.c
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@

#include <bit_lib.h>
#include <applications/services/locale/locale.h>
#include <datetime/datetime.h>
#include <datetime.h>
#include <inttypes.h>

//
Expand Down
6 changes: 2 additions & 4 deletions applications/main/nfc/plugins/supported_cards/emv.c
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,6 @@
#include "protocols/emv/emv.h"
#include "helpers/nfc_emv_parser.h"

#include <furi_hal_rtc.h>

#define TAG "EMV"

bool emv_get_currency_name(uint16_t cur_code, FuriString* currency_name) {
Expand Down Expand Up @@ -99,7 +97,7 @@ static bool emv_parse(const NfcDevice* device, FuriString* parsed_data) {
}

if(app.effective_month) {
char day[] = "??";
char day[] = "--";
if(app.effective_day) itoa(app.effective_day, day, 16);
if(day[1] == '\0') {
day[1] = day[0];
Expand All @@ -117,7 +115,7 @@ static bool emv_parse(const NfcDevice* device, FuriString* parsed_data) {
}

if(app.exp_month) {
char day[] = "??";
char day[] = "--";
if(app.exp_day) itoa(app.exp_day, day, 16);
if(day[1] == '\0') {
day[1] = day[0];
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
Expand Up @@ -5,7 +5,7 @@
#include <lib/nfc/protocols/mf_desfire/mf_desfire.h>

#include <applications/services/locale/locale.h>
#include <datetime/datetime.h>
#include <datetime.h>

static const MfDesfireApplicationId itso_app_id = {.data = {0x16, 0x02, 0xa0}};
static const MfDesfireFileId itso_file_id = 0x0f;
Expand Down
8 changes: 4 additions & 4 deletions applications/main/nfc/plugins/supported_cards/kazan.c
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
#include <nfc/protocols/mf_classic/mf_classic_poller_sync.h>

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

#define TAG "Kazan"

Expand Down Expand Up @@ -282,20 +282,20 @@ static bool kazan_parse(const NfcDevice* device, FuriString* parsed_data) {
enum SubscriptionType subscription_type =
get_subscription_type(block_start_ptr[0], tariff_name);

FuriHalRtcDateTime valid_from;
DateTime valid_from;
valid_from.year = 2000 + block_start_ptr[1];
valid_from.month = block_start_ptr[2];
valid_from.day = block_start_ptr[3];

FuriHalRtcDateTime valid_to;
DateTime valid_to;
valid_to.year = 2000 + block_start_ptr[4];
valid_to.month = block_start_ptr[5];
valid_to.day = block_start_ptr[6];

const uint8_t last_trip_block_number = 2;
block_start_ptr = &data->block[start_block_num + last_trip_block_number].data[1];

FuriHalRtcDateTime last_trip;
DateTime last_trip;
last_trip.year = 2000 + block_start_ptr[0];
last_trip.month = block_start_ptr[1];
last_trip.day = block_start_ptr[2];
Expand Down
3 changes: 2 additions & 1 deletion applications/main/nfc/plugins/supported_cards/mykey.c
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
#include "nfc_supported_card_plugin.h"
#include <flipper_application.h>

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

#include <machine/endian.h>

#define TAG "MyKey"

const uint32_t blankBlock18 = 0x480FCD8F, blankBlock19 = 0x070082C0;
Expand Down
2 changes: 1 addition & 1 deletion applications/main/nfc/plugins/supported_cards/opal.c
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
#include <lib/nfc/protocols/mf_desfire/mf_desfire.h>

#include <applications/services/locale/locale.h>
#include <datetime/datetime.h>
#include <datetime.h>

static const MfDesfireApplicationId opal_app_id = {.data = {0x31, 0x45, 0x53}};

Expand Down
64 changes: 32 additions & 32 deletions applications/main/nfc/plugins/supported_cards/social_moscow.c
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
#include <nfc/protocols/mf_classic/mf_classic_poller_sync.h>

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

#define TAG "Social_Moscow"

Expand Down Expand Up @@ -59,24 +59,24 @@ static const MfClassicKeyPair social_moscow_4k_keys[] = {
{.a = 0xa229e68ad9e5, .b = 0x49c2b5296ef4}, {.a = 0xa229e68ad9e5, .b = 0x49c2b5296ef4},
};

void from_days_to_datetime(uint16_t days, FuriHalRtcDateTime* datetime, uint16_t start_year) {
void from_days_to_datetime(uint16_t days, DateTime* datetime, uint16_t start_year) {
uint32_t timestamp = days * 24 * 60 * 60;
FuriHalRtcDateTime start_datetime = {0};
DateTime start_datetime = {0};
start_datetime.year = start_year - 1;
start_datetime.month = 12;
start_datetime.day = 31;
timestamp += furi_hal_rtc_datetime_to_timestamp(&start_datetime);
furi_hal_rtc_timestamp_to_datetime(timestamp, datetime);
timestamp += datetime_datetime_to_timestamp(&start_datetime);
datetime_timestamp_to_datetime(timestamp, datetime);
}

void from_minutes_to_datetime(uint32_t minutes, FuriHalRtcDateTime* datetime, uint16_t start_year) {
void from_minutes_to_datetime(uint32_t minutes, DateTime* datetime, uint16_t start_year) {
uint32_t timestamp = minutes * 60;
FuriHalRtcDateTime start_datetime = {0};
DateTime start_datetime = {0};
start_datetime.year = start_year - 1;
start_datetime.month = 12;
start_datetime.day = 31;
timestamp += furi_hal_rtc_datetime_to_timestamp(&start_datetime);
furi_hal_rtc_timestamp_to_datetime(timestamp, datetime);
timestamp += datetime_datetime_to_timestamp(&start_datetime);
datetime_timestamp_to_datetime(timestamp, datetime);
}

bool parse_transport_block(const MfClassicBlock* block, FuriString* result) {
Expand Down Expand Up @@ -219,10 +219,10 @@ bool parse_transport_block(const MfClassicBlock* block, FuriString* result) {
card_extended,
card_crc16_2);
card_validator = card_validator1 * 1024 + card_validator2;
FuriHalRtcDateTime card_use_before_date_s = {0};
DateTime card_use_before_date_s = {0};
from_days_to_datetime(card_valid_by_date, &card_use_before_date_s, 1992);

FuriHalRtcDateTime card_start_trip_minutes_s = {0};
DateTime card_start_trip_minutes_s = {0};
from_minutes_to_datetime(
(card_start_trip_date) * 24 * 60 + card_start_trip_time,
&card_start_trip_minutes_s,
Expand Down Expand Up @@ -281,7 +281,7 @@ bool parse_transport_block(const MfClassicBlock* block, FuriString* result) {
card_hash,
card_valid_from_date,
card_rfu3);
FuriHalRtcDateTime card_use_before_date_s = {0};
DateTime card_use_before_date_s = {0};
from_days_to_datetime(card_use_before_date, &card_use_before_date_s, 1992);

furi_string_printf(
Expand Down Expand Up @@ -334,10 +334,10 @@ bool parse_transport_block(const MfClassicBlock* block, FuriString* result) {
card_transport_type3,
card_transport_type4,
card_hash);
FuriHalRtcDateTime card_use_before_date_s = {0};
DateTime card_use_before_date_s = {0};
from_days_to_datetime(card_use_before_date - 1, &card_use_before_date_s, 2016);

FuriHalRtcDateTime card_start_trip_minutes_s = {0};
DateTime card_start_trip_minutes_s = {0};
from_minutes_to_datetime(
card_start_trip_minutes - (2 * 24 * 60), &card_start_trip_minutes_s, 2016);
furi_string_printf(
Expand Down Expand Up @@ -395,9 +395,9 @@ bool parse_transport_block(const MfClassicBlock* block, FuriString* result) {
card_transport_type,
card_rfu3,
card_transfer_in_metro);
FuriHalRtcDateTime card_use_before_date_s = {0};
DateTime card_use_before_date_s = {0};
from_days_to_datetime(card_use_before_date - 1, &card_use_before_date_s, 1992);
FuriHalRtcDateTime card_start_trip_minutes_s = {0};
DateTime card_start_trip_minutes_s = {0};
from_minutes_to_datetime(
(card_start_trip_date - 1) * 24 * 60 + card_start_trip_time,
&card_start_trip_minutes_s,
Expand Down Expand Up @@ -476,9 +476,9 @@ bool parse_transport_block(const MfClassicBlock* block, FuriString* result) {
card_transport_type2,
card_rfu5,
card_transfer_in_metro);
FuriHalRtcDateTime card_use_before_date_s = {0};
DateTime card_use_before_date_s = {0};
from_days_to_datetime(card_use_before_date - 1, &card_use_before_date_s, 1992);
FuriHalRtcDateTime card_start_trip_minutes_s = {0};
DateTime card_start_trip_minutes_s = {0};
from_minutes_to_datetime(
(card_start_trip_date - 1) * 24 * 60 + card_start_trip_time,
&card_start_trip_minutes_s,
Expand Down Expand Up @@ -546,10 +546,10 @@ bool parse_transport_block(const MfClassicBlock* block, FuriString* result) {
card_blocked,
card_zoo,
card_hash);
FuriHalRtcDateTime card_use_before_date_s = {0};
DateTime card_use_before_date_s = {0};
from_days_to_datetime(card_use_before_date - 1, &card_use_before_date_s, 1992);

FuriHalRtcDateTime card_start_trip_minutes_s = {0};
DateTime card_start_trip_minutes_s = {0};
from_minutes_to_datetime(
card_start_trip_minutes - (2 * 24 * 60), &card_start_trip_minutes_s, 1992);
furi_string_printf(
Expand Down Expand Up @@ -616,10 +616,10 @@ bool parse_transport_block(const MfClassicBlock* block, FuriString* result) {
card_blocked,
card_extended,
card_hash);
FuriHalRtcDateTime card_use_before_date_s = {0};
DateTime card_use_before_date_s = {0};
from_days_to_datetime(card_use_before_date - 1, &card_use_before_date_s, 2016);

FuriHalRtcDateTime card_start_trip_minutes_s = {0};
DateTime card_start_trip_minutes_s = {0};
from_minutes_to_datetime(
(card_valid_to_date - 1) * 24 * 60 + card_valid_for_minutes -
card_start_trip_neg_minutes,
Expand Down Expand Up @@ -682,10 +682,10 @@ bool parse_transport_block(const MfClassicBlock* block, FuriString* result) {
card_transport_type3,
card_transport_type4,
card_blocked);
FuriHalRtcDateTime card_use_before_date_s = {0};
DateTime card_use_before_date_s = {0};
from_days_to_datetime(card_use_before_date, &card_use_before_date_s, 1992);

FuriHalRtcDateTime card_start_trip_minutes_s = {0};
DateTime card_start_trip_minutes_s = {0};
from_minutes_to_datetime(card_start_trip_minutes, &card_start_trip_minutes_s, 2016);
furi_string_printf(
result,
Expand Down Expand Up @@ -758,10 +758,10 @@ bool parse_transport_block(const MfClassicBlock* block, FuriString* result) {
card_blocked,
card_extended,
card_hash);
FuriHalRtcDateTime card_use_before_date_s = {0};
DateTime card_use_before_date_s = {0};
from_days_to_datetime(card_use_before_date, &card_use_before_date_s, 2016);

FuriHalRtcDateTime card_start_trip_minutes_s = {0};
DateTime card_start_trip_minutes_s = {0};
from_minutes_to_datetime(
(card_use_before_date + 1) * 24 * 60 + card_valid_for_minutes -
card_start_trip_neg_minutes,
Expand Down Expand Up @@ -823,11 +823,11 @@ bool parse_transport_block(const MfClassicBlock* block, FuriString* result) {
card_route,
card_passages_ground_transport,
card_hash);
FuriHalRtcDateTime card_use_before_date_s = {0};
DateTime card_use_before_date_s = {0};

from_days_to_datetime(card_use_before_date, &card_use_before_date_s, 2019);

FuriHalRtcDateTime card_start_trip_minutes_s = {0};
DateTime card_start_trip_minutes_s = {0};
from_minutes_to_datetime(
card_start_trip_minutes - (24 * 60), &card_start_trip_minutes_s, 2019);
furi_string_printf(
Expand Down Expand Up @@ -891,10 +891,10 @@ bool parse_transport_block(const MfClassicBlock* block, FuriString* result) {
card_extended,
card_route,
card_hash);
FuriHalRtcDateTime card_use_before_date_s = {0};
DateTime card_use_before_date_s = {0};
from_days_to_datetime(card_use_before_date - 1, &card_use_before_date_s, 2019);

FuriHalRtcDateTime card_start_trip_minutes_s = {0};
DateTime card_start_trip_minutes_s = {0};
from_minutes_to_datetime(
card_valid_from_date + card_valid_for_minutes - card_start_trip_neg_minutes - 24 * 60,
&card_start_trip_minutes_s,
Expand Down Expand Up @@ -957,7 +957,7 @@ bool parse_transport_block(const MfClassicBlock* block, FuriString* result) {
card_app_code4,
card_type4,
card_hash);
FuriHalRtcDateTime card_use_before_date_s = {0};
DateTime card_use_before_date_s = {0};
from_days_to_datetime(card_valid_by_date - 1, &card_use_before_date_s, 1992);

furi_string_printf(
Expand Down Expand Up @@ -993,7 +993,7 @@ bool parse_transport_block(const MfClassicBlock* block, FuriString* result) {
card_valid_to_minutes,
card_valid_by_date,
card_hash);
FuriHalRtcDateTime card_use_before_date_s = {0};
DateTime card_use_before_date_s = {0};
from_days_to_datetime(card_valid_by_date - 1, &card_use_before_date_s, 1992);

furi_string_printf(
Expand Down
Loading

0 comments on commit 2b8db65

Please sign in to comment.