Skip to content

Commit

Permalink
Merge branch 'master' into master
Browse files Browse the repository at this point in the history
Signed-off-by: Iceman <[email protected]>
  • Loading branch information
iceman1001 authored Oct 29, 2023
2 parents d4f8c42 + 9fd5397 commit c3abea8
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 23 deletions.
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ This project uses the changelog in accordance with [keepchangelog](http://keepac

## [unreleased][unreleased]
- Added support for NTAG424 cards. (@dankar)
- Additional fixes to configcard code for keyroll mode based on nfc-iclass output (@Antiklesys)
- Added `bind` option for network connections to specify the outbound address and port (@wh201906)
- Changed `lf em 4x05 dump` - now supports the `--ns` nosave parameter (@iceman1001)
- Fixed some wrong synchronization waits in usb_write() to increase the communication speed (@wh201906)
Expand Down Expand Up @@ -40,6 +41,7 @@ This project uses the changelog in accordance with [keepchangelog](http://keepac
- Modified `hf iclass configcard` to only support online mode (@Antiklesys)
- Modified `hf iclass configcard` command to generate config cards without a cardhelper module by porting the contents of blocks 6 & 7 from nfc-iclass (@Antiklesys)
- Fixed `hf iclass info` command showing incorrectly in offline mode (@Antiklesys)
- Changed lf sampling - improved the performance (@yah01)

## [Raccoon.4.17140][2023-09-09]
- Changed text and adjust pm3_test case for mf_aes_brute (@doegox)
Expand Down
35 changes: 14 additions & 21 deletions armsrc/lfsampling.c
Original file line number Diff line number Diff line change
Expand Up @@ -128,20 +128,6 @@ sample_config *getSamplingConfig(void) {
return &config;
}

/**
* @brief Pushes bit onto the stream
* @param stream
* @param bit
*/
static void pushBit(BitstreamOut_t *stream, uint8_t bit) {
int bytepos = stream->position >> 3; // divide by 8
int bitpos = stream->position & 7;
*(stream->buffer + bytepos) &= ~(1 << (7 - bitpos));
*(stream->buffer + bytepos) |= (bit > 0) << (7 - bitpos);
stream->position++;
stream->numbits++;
}

void initSampleBuffer(uint32_t *sample_size) {
initSampleBufferEx(sample_size, false);
}
Expand Down Expand Up @@ -233,13 +219,20 @@ void logSample(uint8_t sample, uint8_t decimation, uint8_t bits_per_sample, bool
data.numbits = samples.total_saved << 3;

} else {
pushBit(&data, sample & 0x80);
if (bits_per_sample > 1) pushBit(&data, sample & 0x40);
if (bits_per_sample > 2) pushBit(&data, sample & 0x20);
if (bits_per_sample > 3) pushBit(&data, sample & 0x10);
if (bits_per_sample > 4) pushBit(&data, sample & 0x08);
if (bits_per_sample > 5) pushBit(&data, sample & 0x04);
if (bits_per_sample > 6) pushBit(&data, sample & 0x02);
// truncate trailing data
sample >>= 8 - bits_per_sample;
sample <<= 8 - bits_per_sample;

uint8_t bits_offset = data.numbits & 0x7;
uint8_t bits_cap = 8 - bits_offset;

// write the current byte
data.buffer[data.numbits >> 3] |= sample >> bits_offset;
int numbits = data.numbits + bits_cap;

// write the remaining bits to the next byte
data.buffer[numbits >> 3] |= sample << (bits_cap);
data.numbits += bits_per_sample;
}
}

Expand Down
4 changes: 2 additions & 2 deletions client/src/cmdhficlass.c
Original file line number Diff line number Diff line change
Expand Up @@ -424,7 +424,7 @@ static int generate_config_card(const iclass_config_card_item_t *o, uint8_t *ke
memcpy(data + (0x0D * 8), lkey, sizeof(enckey1));
}
// encrypted 0xFF
for (uint8_t i = 0x0D; i < 0x14; i++) {
for (uint8_t i = 0x0E; i < 0x14; i++) {
memcpy(data + (i * 8), ffs, sizeof(ffs));
}
PrintAndLogEx(NORMAL, "( " _GREEN_("ok") " )");
Expand All @@ -450,7 +450,7 @@ static int generate_config_card(const iclass_config_card_item_t *o, uint8_t *ke
// encrypted partial keyroll key 15
PrintAndLogEx(INFO, "Setting encrypted partial key15... " NOLF);
memset(foo, 0xFF, sizeof(foo));
foo[0] = lkey[7];
foo[0] = key[7];
if (IsCardHelperPresent(false) != false) {
if (Encrypt(foo, enckey2) == false) {
PrintAndLogEx(WARNING, "failed to encrypt partial 2");
Expand Down

0 comments on commit c3abea8

Please sign in to comment.