mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-03-29 00:14:21 +08:00
Merge pull request #102 from vratiskol/mem_leak
Mem leak / Crapto cleanup
This commit is contained in:
commit
af08d140a9
3 changed files with 13 additions and 54 deletions
|
@ -1253,12 +1253,12 @@ void UsbPacketReceived(uint8_t *packet, int len) {
|
||||||
|
|
||||||
size_t size = MIN(USB_CMD_DATA_SIZE, len);
|
size_t size = MIN(USB_CMD_DATA_SIZE, len);
|
||||||
|
|
||||||
uint8_t *mem = BigBuf_malloc(size);
|
|
||||||
|
|
||||||
if (!FlashInit()) {
|
if (!FlashInit()) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint8_t *mem = BigBuf_malloc(size);
|
||||||
|
|
||||||
for(size_t i = 0; i < len; i += size) {
|
for(size_t i = 0; i < len; i += size) {
|
||||||
len = MIN((len - i), size);
|
len = MIN((len - i), size);
|
||||||
|
|
||||||
|
@ -1271,6 +1271,7 @@ void UsbPacketReceived(uint8_t *packet, int len) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
BigBuf_free();
|
||||||
FlashStop();
|
FlashStop();
|
||||||
LED_B_OFF();
|
LED_B_OFF();
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -33,21 +33,6 @@ static void __attribute__((constructor)) fill_lut()
|
||||||
#define filter(x) (filterlut[(x) & 0xfffff])
|
#define filter(x) (filterlut[(x) & 0xfffff])
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/** binsearch
|
|
||||||
* Binary search for the first occurence of *stop's MSB in sorted [start,stop]
|
|
||||||
*/
|
|
||||||
/* static inline uint32_t* binsearch(uint32_t *start, uint32_t *stop)
|
|
||||||
{
|
|
||||||
uint32_t mid, val = *stop & 0xff000000;
|
|
||||||
while(start != stop)
|
|
||||||
if(start[mid = (stop - start) >> 1] > val)
|
|
||||||
stop = &start[mid];
|
|
||||||
else
|
|
||||||
start += mid + 1;
|
|
||||||
|
|
||||||
return start;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
/** update_contribution
|
/** update_contribution
|
||||||
* helper, calculates the partial linear feedback contributions and puts in MSB
|
* helper, calculates the partial linear feedback contributions and puts in MSB
|
||||||
*/
|
*/
|
||||||
|
@ -329,12 +314,6 @@ uint8_t lfsr_rollback_bit(struct Crypto1State *s, uint32_t in, int fb)
|
||||||
*/
|
*/
|
||||||
uint8_t lfsr_rollback_byte(struct Crypto1State *s, uint32_t in, int fb)
|
uint8_t lfsr_rollback_byte(struct Crypto1State *s, uint32_t in, int fb)
|
||||||
{
|
{
|
||||||
/*
|
|
||||||
int i, ret=0;
|
|
||||||
for (i = 7; i >= 0; --i)
|
|
||||||
ret |= lfsr_rollback_bit(s, BIT(in, i), fb) << i;
|
|
||||||
*/
|
|
||||||
// unfold loop 20160112
|
|
||||||
uint8_t ret = 0;
|
uint8_t ret = 0;
|
||||||
ret |= lfsr_rollback_bit(s, BIT(in, 7), fb) << 7;
|
ret |= lfsr_rollback_bit(s, BIT(in, 7), fb) << 7;
|
||||||
ret |= lfsr_rollback_bit(s, BIT(in, 6), fb) << 6;
|
ret |= lfsr_rollback_bit(s, BIT(in, 6), fb) << 6;
|
||||||
|
@ -351,13 +330,7 @@ uint8_t lfsr_rollback_byte(struct Crypto1State *s, uint32_t in, int fb)
|
||||||
*/
|
*/
|
||||||
uint32_t lfsr_rollback_word(struct Crypto1State *s, uint32_t in, int fb)
|
uint32_t lfsr_rollback_word(struct Crypto1State *s, uint32_t in, int fb)
|
||||||
{
|
{
|
||||||
/*
|
|
||||||
int i;
|
|
||||||
uint32_t ret = 0;
|
|
||||||
for (i = 31; i >= 0; --i)
|
|
||||||
ret |= lfsr_rollback_bit(s, BEBIT(in, i), fb) << (i ^ 24);
|
|
||||||
*/
|
|
||||||
// unfold loop 20160112
|
|
||||||
uint32_t ret = 0;
|
uint32_t ret = 0;
|
||||||
ret |= lfsr_rollback_bit(s, BEBIT(in, 31), fb) << (31 ^ 24);
|
ret |= lfsr_rollback_bit(s, BEBIT(in, 31), fb) << (31 ^ 24);
|
||||||
ret |= lfsr_rollback_bit(s, BEBIT(in, 30), fb) << (30 ^ 24);
|
ret |= lfsr_rollback_bit(s, BEBIT(in, 30), fb) << (30 ^ 24);
|
||||||
|
|
|
@ -50,7 +50,6 @@ struct Crypto1State * crypto1_create(uint64_t key)
|
||||||
s->odd = s->even = 0;
|
s->odd = s->even = 0;
|
||||||
|
|
||||||
int i;
|
int i;
|
||||||
//for(i = 47;s && i > 0; i -= 2) {
|
|
||||||
for(i = 47; i > 0; i -= 2) {
|
for(i = 47; i > 0; i -= 2) {
|
||||||
s->odd = s->odd << 1 | BIT(key, (i - 1) ^ 7);
|
s->odd = s->odd << 1 | BIT(key, (i - 1) ^ 7);
|
||||||
s->even = s->even << 1 | BIT(key, i ^ 7);
|
s->even = s->even << 1 | BIT(key, i ^ 7);
|
||||||
|
@ -89,13 +88,6 @@ uint8_t crypto1_bit(struct Crypto1State *s, uint8_t in, int is_encrypted)
|
||||||
}
|
}
|
||||||
uint8_t crypto1_byte(struct Crypto1State *s, uint8_t in, int is_encrypted)
|
uint8_t crypto1_byte(struct Crypto1State *s, uint8_t in, int is_encrypted)
|
||||||
{
|
{
|
||||||
/*
|
|
||||||
uint8_t i, ret = 0;
|
|
||||||
|
|
||||||
for (i = 0; i < 8; ++i)
|
|
||||||
ret |= crypto1_bit(s, BIT(in, i), is_encrypted) << i;
|
|
||||||
*/
|
|
||||||
// unfold loop 20161012
|
|
||||||
uint8_t ret = 0;
|
uint8_t ret = 0;
|
||||||
ret |= crypto1_bit(s, BIT(in, 0), is_encrypted) << 0;
|
ret |= crypto1_bit(s, BIT(in, 0), is_encrypted) << 0;
|
||||||
ret |= crypto1_bit(s, BIT(in, 1), is_encrypted) << 1;
|
ret |= crypto1_bit(s, BIT(in, 1), is_encrypted) << 1;
|
||||||
|
@ -109,13 +101,6 @@ uint8_t crypto1_byte(struct Crypto1State *s, uint8_t in, int is_encrypted)
|
||||||
}
|
}
|
||||||
uint32_t crypto1_word(struct Crypto1State *s, uint32_t in, int is_encrypted)
|
uint32_t crypto1_word(struct Crypto1State *s, uint32_t in, int is_encrypted)
|
||||||
{
|
{
|
||||||
/*
|
|
||||||
uint32_t i, ret = 0;
|
|
||||||
|
|
||||||
for (i = 0; i < 32; ++i)
|
|
||||||
ret |= crypto1_bit(s, BEBIT(in, i), is_encrypted) << (i ^ 24);
|
|
||||||
*/
|
|
||||||
//unfold loop 2016012
|
|
||||||
uint32_t ret = 0;
|
uint32_t ret = 0;
|
||||||
ret |= crypto1_bit(s, BEBIT(in, 0), is_encrypted) << (0 ^ 24);
|
ret |= crypto1_bit(s, BEBIT(in, 0), is_encrypted) << (0 ^ 24);
|
||||||
ret |= crypto1_bit(s, BEBIT(in, 1), is_encrypted) << (1 ^ 24);
|
ret |= crypto1_bit(s, BEBIT(in, 1), is_encrypted) << (1 ^ 24);
|
||||||
|
|
Loading…
Add table
Reference in a new issue