CHG: had to move the SwapBits method.
This commit is contained in:
@@ -503,10 +503,18 @@ uint32_t PackBits(uint8_t start, uint8_t len, uint8_t* bits) {
|
||||
|
||||
// RotateLeft - Ultralight, Desfire, works on byte level
|
||||
// 00-01-02 >> 01-02-00
|
||||
void rol(uint8_t *data, const size_t len){
|
||||
void rol(uint8_t *data, const size_t len){
|
||||
uint8_t first = data[0];
|
||||
for (size_t i = 0; i < len-1; i++) {
|
||||
data[i] = data[i+1];
|
||||
}
|
||||
data[len-1] = first;
|
||||
}
|
||||
|
||||
uint32_t SwapBits(uint32_t value, int nrbits) {
|
||||
uint32_t newvalue = 0;
|
||||
for(int i = 0; i < nrbits; i++) {
|
||||
newvalue ^= ((value >> i) & 1) << (nrbits - 1 - i);
|
||||
}
|
||||
return newvalue;
|
||||
}
|
||||
@@ -78,4 +78,5 @@ void wiegand_add_parity(uint8_t *target, uint8_t *source, uint8_t length);
|
||||
void xor(unsigned char * dst, unsigned char * src, size_t len);
|
||||
int32_t le24toh (uint8_t data[3]);
|
||||
uint32_t PackBits(uint8_t start, uint8_t len, uint8_t* bits);
|
||||
void rol(uint8_t *data, const size_t len);
|
||||
void rol(uint8_t *data, const size_t len);
|
||||
uint32_t SwapBits(uint32_t value, int nrbits);
|
||||
Reference in New Issue
Block a user