nfc: Add mifare classic value block commands (#2317)
Co-authored-by: gornekich <n.gorbadey@gmail.com> Co-authored-by: あく <alleteam@gmail.com>
This commit is contained in:
committed by
GitHub
parent
1ff5843ee6
commit
d035872cf6
@@ -23,7 +23,7 @@ void nfc_util_num2bytes(uint64_t src, uint8_t len, uint8_t* dest) {
|
||||
}
|
||||
}
|
||||
|
||||
uint64_t nfc_util_bytes2num(uint8_t* src, uint8_t len) {
|
||||
uint64_t nfc_util_bytes2num(const uint8_t* src, uint8_t len) {
|
||||
furi_assert(src);
|
||||
furi_assert(len <= 8);
|
||||
|
||||
@@ -45,3 +45,26 @@ uint8_t nfc_util_even_parity32(uint32_t data) {
|
||||
uint8_t nfc_util_odd_parity8(uint8_t data) {
|
||||
return nfc_util_odd_byte_parity[data];
|
||||
}
|
||||
|
||||
void nfc_util_odd_parity(const uint8_t* src, uint8_t* dst, uint8_t len) {
|
||||
furi_assert(src);
|
||||
furi_assert(dst);
|
||||
|
||||
uint8_t parity = 0;
|
||||
uint8_t bit = 0;
|
||||
while(len--) {
|
||||
parity |= nfc_util_odd_parity8(*src) << (7 - bit); // parity is MSB first
|
||||
bit++;
|
||||
if(bit == 8) {
|
||||
*dst = parity;
|
||||
dst++;
|
||||
parity = 0;
|
||||
bit = 0;
|
||||
}
|
||||
src++;
|
||||
}
|
||||
|
||||
if(bit) {
|
||||
*dst = parity;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user