mirror of
https://github.com/Proxmark/proxmark3.git
synced 2025-08-14 02:26:59 -07:00
* move to separate files mifaresim.[ch] * check CRC of commands * don't execute commands without successfull authentication * ensure correct timing of REQA, WUPA, ANTICOL and SELECT responses * trace reader commands immediately, only fix start time after tag response. Decreases time to be ready for next reader command. * remove iso14443-4 remnants * trace raw reader commands instead of decrypted ones * some refactoring * fix hf mf sim * timing: decrease time to get ready for new reader commands
This commit is contained in:
parent
ed6f29f317
commit
6e49717b5e
11 changed files with 777 additions and 864 deletions
|
@ -24,23 +24,27 @@
|
|||
int MF_DBGLEVEL = MF_DBG_ALL;
|
||||
|
||||
// crypto1 helpers
|
||||
void mf_crypto1_decrypt(struct Crypto1State *pcs, uint8_t *data, int len){
|
||||
void mf_crypto1_decryptEx(struct Crypto1State *pcs, uint8_t *data_in, int len, uint8_t *data_out){
|
||||
uint8_t bt = 0;
|
||||
int i;
|
||||
|
||||
if (len != 1) {
|
||||
for (i = 0; i < len; i++)
|
||||
data[i] = crypto1_byte(pcs, 0x00, 0) ^ data[i];
|
||||
data_out[i] = crypto1_byte(pcs, 0x00, 0) ^ data_in[i];
|
||||
} else {
|
||||
bt = 0;
|
||||
for (i = 0; i < 4; i++)
|
||||
bt |= (crypto1_bit(pcs, 0, 0) ^ BIT(data[0], i)) << i;
|
||||
bt |= (crypto1_bit(pcs, 0, 0) ^ BIT(data_in[0], i)) << i;
|
||||
|
||||
data[0] = bt;
|
||||
data_out[0] = bt;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
void mf_crypto1_decrypt(struct Crypto1State *pcs, uint8_t *data, int len){
|
||||
mf_crypto1_decryptEx(pcs, data, len, data);
|
||||
}
|
||||
|
||||
void mf_crypto1_encrypt(struct Crypto1State *pcs, uint8_t *data, uint16_t len, uint8_t *par) {
|
||||
uint8_t bt = 0;
|
||||
int i;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue