From aacd31e32689c4dc1bf7b4cdc5e98d074c47619c Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Sat, 14 Aug 2010 16:22:56 +0800 Subject: add functions to alter easycard log records and mifare value blocks --- easytool/mifare_classic.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'easytool/mifare_classic.c') diff --git a/easytool/mifare_classic.c b/easytool/mifare_classic.c index e516631..5f21fd5 100644 --- a/easytool/mifare_classic.c +++ b/easytool/mifare_classic.c @@ -1,6 +1,7 @@ #include #include #include +#include #include "mifare_classic.h" @@ -27,3 +28,18 @@ void mfcl_parse_acc_bits(struct acc_bits_parsed *abp, uint8_t *acc_bits) abp->block[block] |= ABP_C3; } } + +/* apply a delta (positive or negative) to a Mifare Classic VALUE block */ +int mfcl_update_value_block(struct mfcl_value_block *mvb, int32_t delta) +{ + int64_t sum = mvb->value + delta; + + if (sum > 0xffffffff || sum < 0) + return -ERANGE; + + mvb->value = sum; + mvb->value_backup = mvb->value; + mvb->value_inv = ~sum; + + return 0; +} -- cgit v1.2.3