mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-08-19 21:03:48 -07:00
move byte operations to commonutils
This commit is contained in:
parent
f5b7f93d79
commit
8db2325b13
5 changed files with 75 additions and 39 deletions
|
@ -19,13 +19,13 @@
|
|||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <util.h>
|
||||
#include "commonutil.h"
|
||||
#include "aes.h"
|
||||
#include "ui.h"
|
||||
#include "crc.h"
|
||||
#include "crc16.h" // crc16 ccitt
|
||||
#include "crc32.h"
|
||||
#include "protocols.h"
|
||||
#include "commonutil.h"
|
||||
#include "cmdhf14a.h"
|
||||
#include "iso7816/apduinfo.h" // APDU manipulation / errorcodes
|
||||
#include "iso7816/iso7816core.h" // APDU logging
|
||||
|
|
|
@ -503,36 +503,6 @@ void SwapEndian64ex(const uint8_t *src, const size_t len, const uint8_t blockSiz
|
|||
}
|
||||
}
|
||||
|
||||
uint16_t MemLeToUint2byte(uint8_t *data) {
|
||||
return (data[1] << 8) + data[0];
|
||||
}
|
||||
|
||||
uint32_t MemLeToUint3byte(uint8_t *data) {
|
||||
return (data[2] << 16) + (data[1] << 8) + data[0];
|
||||
}
|
||||
|
||||
uint32_t MemLeToUint4byte(uint8_t *data) {
|
||||
return (data[3] << 24) + (data[2] << 16) + (data[1] << 8) + data[0];
|
||||
}
|
||||
|
||||
void Uint2byteToMemLe(uint8_t *data, uint16_t value) {
|
||||
data[0] = (value >> 8) & 0xff;
|
||||
data[1] = value & 0xff;
|
||||
}
|
||||
|
||||
void Uint3byteToMemLe(uint8_t *data, uint32_t value) {
|
||||
data[0] = (value >> 16) & 0xff;
|
||||
data[1] = (value >> 8) & 0xff;
|
||||
data[2] = value & 0xff;
|
||||
}
|
||||
|
||||
void Uint4byteToMemLe(uint8_t *data, uint32_t value) {
|
||||
data[0] = (value >> 24) & 0xff;
|
||||
data[1] = (value >> 16) & 0xff;
|
||||
data[2] = (value >> 8) & 0xff;
|
||||
data[3] = value & 0xff;
|
||||
}
|
||||
|
||||
// -------------------------------------------------------------------------
|
||||
// string parameters lib
|
||||
// -------------------------------------------------------------------------
|
||||
|
|
|
@ -64,14 +64,6 @@ void bytes_to_bytebits(void *src, size_t srclen, void *dest);
|
|||
uint8_t *SwapEndian64(const uint8_t *src, const size_t len, const uint8_t blockSize);
|
||||
void SwapEndian64ex(const uint8_t *src, const size_t len, const uint8_t blockSize, uint8_t *dest);
|
||||
|
||||
// LE to/from memory
|
||||
uint16_t MemLeToUint2byte(uint8_t *data);
|
||||
uint32_t MemLeToUint3byte(uint8_t *data);
|
||||
uint32_t MemLeToUint4byte(uint8_t *data);
|
||||
void Uint2byteToMemLe(uint8_t *data, uint16_t value);
|
||||
void Uint3byteToMemLe(uint8_t *data, uint32_t value);
|
||||
void Uint4byteToMemLe(uint8_t *data, uint32_t value);
|
||||
|
||||
// parameter helper functions
|
||||
int param_getlength(const char *line, int paramnum);
|
||||
char param_getchar(const char *line, int paramnum);
|
||||
|
|
|
@ -129,6 +129,66 @@ uint64_t bytes_to_num(uint8_t *src, size_t len) {
|
|||
return num;
|
||||
}
|
||||
|
||||
uint16_t MemLeToUint2byte(uint8_t *data) {
|
||||
return (data[1] << 8) + data[0];
|
||||
}
|
||||
|
||||
uint32_t MemLeToUint3byte(uint8_t *data) {
|
||||
return (data[2] << 16) + (data[1] << 8) + data[0];
|
||||
}
|
||||
|
||||
uint32_t MemLeToUint4byte(uint8_t *data) {
|
||||
return (data[3] << 24) + (data[2] << 16) + (data[1] << 8) + data[0];
|
||||
}
|
||||
|
||||
uint16_t MemBeToUint2byte(uint8_t *data) {
|
||||
return (data[0] << 8) + data[1];
|
||||
}
|
||||
|
||||
uint32_t MemBeToUint3byte(uint8_t *data) {
|
||||
return (data[0] << 16) + (data[1] << 8) + data[2];
|
||||
}
|
||||
|
||||
uint32_t MemBeToUint4byte(uint8_t *data) {
|
||||
return (data[0] << 24) + (data[1] << 16) + (data[2] << 8) + data[3];
|
||||
}
|
||||
|
||||
void Uint2byteToMemLe(uint8_t *data, uint16_t value) {
|
||||
data[1] = (value >> 8) & 0xff;
|
||||
data[0] = value & 0xff;
|
||||
}
|
||||
|
||||
void Uint3byteToMemLe(uint8_t *data, uint32_t value) {
|
||||
data[2] = (value >> 16) & 0xff;
|
||||
data[1] = (value >> 8) & 0xff;
|
||||
data[0] = value & 0xff;
|
||||
}
|
||||
|
||||
void Uint4byteToMemLe(uint8_t *data, uint32_t value) {
|
||||
data[3] = (value >> 24) & 0xff;
|
||||
data[2] = (value >> 16) & 0xff;
|
||||
data[1] = (value >> 8) & 0xff;
|
||||
data[0] = value & 0xff;
|
||||
}
|
||||
|
||||
void Uint2byteToMemBe(uint8_t *data, uint16_t value) {
|
||||
data[0] = (value >> 8) & 0xff;
|
||||
data[1] = value & 0xff;
|
||||
}
|
||||
|
||||
void Uint3byteToMemBe(uint8_t *data, uint32_t value) {
|
||||
data[0] = (value >> 16) & 0xff;
|
||||
data[1] = (value >> 8) & 0xff;
|
||||
data[2] = value & 0xff;
|
||||
}
|
||||
|
||||
void Uint4byteToMemBe(uint8_t *data, uint32_t value) {
|
||||
data[0] = (value >> 24) & 0xff;
|
||||
data[1] = (value >> 16) & 0xff;
|
||||
data[2] = (value >> 8) & 0xff;
|
||||
data[3] = value & 0xff;
|
||||
}
|
||||
|
||||
// RotateLeft - Ultralight, Desfire
|
||||
void rol(uint8_t *data, const size_t len) {
|
||||
uint8_t first = data[0];
|
||||
|
|
|
@ -52,6 +52,20 @@ uint32_t reflect32(uint32_t b); // dedicated 32bit reversal
|
|||
void num_to_bytes(uint64_t n, size_t len, uint8_t *dest);
|
||||
uint64_t bytes_to_num(uint8_t *src, size_t len);
|
||||
|
||||
// LE and BE to/from memory
|
||||
uint16_t MemLeToUint2byte(uint8_t *data);
|
||||
uint32_t MemLeToUint3byte(uint8_t *data);
|
||||
uint32_t MemLeToUint4byte(uint8_t *data);
|
||||
uint16_t MemBeToUint2byte(uint8_t *data);
|
||||
uint32_t MemBeToUint3byte(uint8_t *data);
|
||||
uint32_t MemBeToUint4byte(uint8_t *data);
|
||||
void Uint2byteToMemLe(uint8_t *data, uint16_t value);
|
||||
void Uint3byteToMemLe(uint8_t *data, uint32_t value);
|
||||
void Uint4byteToMemLe(uint8_t *data, uint32_t value);
|
||||
void Uint2byteToMemBe(uint8_t *data, uint16_t value);
|
||||
void Uint3byteToMemBe(uint8_t *data, uint32_t value);
|
||||
void Uint4byteToMemBe(uint8_t *data, uint32_t value);
|
||||
|
||||
// rotate left byte array
|
||||
void rol(uint8_t *data, const size_t len);
|
||||
void lsl(uint8_t *data, size_t len);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue