mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2024-09-20 07:16:14 +08:00
refactor: move concatbits() to commonutil
This commit is contained in:
parent
805dc99b97
commit
e5c0007f0b
|
@ -1160,21 +1160,6 @@ static void hts_send_receive(const uint8_t *tx, size_t txlen, uint8_t *rx, size_
|
|||
*prxbits = k;
|
||||
}
|
||||
|
||||
static size_t concatbits(uint8_t *dst, size_t dstskip, const uint8_t *src, size_t srcstart, size_t srclen) {
|
||||
// erase dstbuf bits that will be overriden
|
||||
dst[dstskip / 8] &= 0xFF - ((1 << (7 - (dstskip % 8) + 1)) - 1);
|
||||
for (size_t i = (dstskip / 8) + 1; i <= (dstskip + srclen) / 8; i++) {
|
||||
dst[i] = 0;
|
||||
}
|
||||
|
||||
for (size_t i = 0; i < srclen; i++) {
|
||||
// equiv of dstbufbits[dstbufskip + i] = srcbufbits[srcbufstart + i]
|
||||
dst[(dstskip + i) / 8] |= ((src[(srcstart + i) / 8] >> (7 - ((srcstart + i) % 8))) & 1) << (7 - ((dstskip + i) % 8));
|
||||
}
|
||||
|
||||
return dstskip + srclen;
|
||||
}
|
||||
|
||||
static int hts_select_tag(const lf_hitag_data_t *packet, uint8_t *tx, size_t sizeoftx, uint8_t *rx, size_t sizeofrx, int t_wait, bool ledcontrol) {
|
||||
|
||||
StopTicks();
|
||||
|
|
|
@ -651,21 +651,6 @@ static int CmdEM410xSpoof(const char *Cmd) {
|
|||
return PM3_SUCCESS;
|
||||
}
|
||||
|
||||
static size_t concatbits(uint8_t *dst, size_t dstskip, const uint8_t *src, size_t srcstart, size_t srclen) {
|
||||
// erase dstbuf bits that will be overriden
|
||||
dst[dstskip / 8] &= 0xFF - ((1 << (7 - (dstskip % 8) + 1)) - 1);
|
||||
for (size_t i = (dstskip / 8) + 1; i <= (dstskip + srclen) / 8; i++) {
|
||||
dst[i] = 0;
|
||||
}
|
||||
|
||||
for (size_t i = 0; i < srclen; i++) {
|
||||
// equiv of dstbufbits[dstbufskip + i] = srcbufbits[srcbufstart + i]
|
||||
dst[(dstskip + i) / 8] |= ((src[(srcstart + i) / 8] >> (7 - ((srcstart + i) % 8))) & 1) << (7 - ((dstskip + i) % 8));
|
||||
}
|
||||
|
||||
return dstskip + srclen;
|
||||
}
|
||||
|
||||
static int CmdEM410xClone(const char *Cmd) {
|
||||
CLIParserContext *ctx;
|
||||
CLIParserInit(&ctx, "lf em 410x clone",
|
||||
|
|
|
@ -563,3 +563,18 @@ void reverse_arraybytes_copy(uint8_t *arr, uint8_t *dest, size_t len) {
|
|||
dest[i] = reflect8(arr[i]);
|
||||
}
|
||||
}
|
||||
|
||||
size_t concatbits(uint8_t *dst, size_t dstskip, const uint8_t *src, size_t srcstart, size_t srclen) {
|
||||
// erase dstbuf bits that will be overriden
|
||||
dst[dstskip / 8] &= 0xFF - ((1 << (7 - (dstskip % 8) + 1)) - 1);
|
||||
for (size_t i = (dstskip / 8) + 1; i <= (dstskip + srclen) / 8; i++) {
|
||||
dst[i] = 0;
|
||||
}
|
||||
|
||||
for (size_t i = 0; i < srclen; i++) {
|
||||
// equiv of dstbufbits[dstbufskip + i] = srcbufbits[srcbufstart + i]
|
||||
dst[(dstskip + i) / 8] |= ((src[(srcstart + i) / 8] >> (7 - ((srcstart + i) % 8))) & 1) << (7 - ((dstskip + i) % 8));
|
||||
}
|
||||
|
||||
return dstskip + srclen;
|
||||
}
|
|
@ -133,4 +133,6 @@ bool hexstr_to_byte_array(const char *hexstr, uint8_t *d, size_t *n);
|
|||
|
||||
void reverse_arraybytes(uint8_t *arr, size_t len);
|
||||
void reverse_arraybytes_copy(uint8_t *arr, uint8_t *dest, size_t len);
|
||||
|
||||
size_t concatbits(uint8_t *dst, size_t dstskip, const uint8_t *src, size_t srcstart, size_t srclen);
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue