projects
/
proxmark3-svn
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Updated CHANGELOG to new release 3.0.0
[proxmark3-svn]
/
armsrc
/
mifareutil.c
diff --git
a/armsrc/mifareutil.c
b/armsrc/mifareutil.c
index 8ef364c259f0d16216834a87dac9bef073be1e92..6c84377858b9daa1f9d04835d9cb0b1f107b118b 100644
(file)
--- a/
armsrc/mifareutil.c
+++ b/
armsrc/mifareutil.c
@@
-9,15
+9,16
@@
// Work with mifare cards.
\r
//-----------------------------------------------------------------------------
\r
\r
// Work with mifare cards.
\r
//-----------------------------------------------------------------------------
\r
\r
+#include "mifareutil.h"
\r
#include "proxmark3.h"
\r
#include "apps.h"
\r
#include "util.h"
\r
#include "proxmark3.h"
\r
#include "apps.h"
\r
#include "util.h"
\r
+#include "parity.h"
\r
#include "string.h"
\r
\r
#include "iso14443crc.h"
\r
#include "iso14443a.h"
\r
#include "string.h"
\r
\r
#include "iso14443crc.h"
\r
#include "iso14443a.h"
\r
-#include "crapto1.h"
\r
-#include "mifareutil.h"
\r
+#include "crapto1/crapto1.h"
\r
#include "des.h"
\r
\r
int MF_DBGLEVEL = MF_DBG_ALL;
\r
#include "des.h"
\r
\r
int MF_DBGLEVEL = MF_DBG_ALL;
\r
@@
-50,7
+51,7
@@
void mf_crypto1_encrypt(struct Crypto1State *pcs, uint8_t *data, uint16_t len, u
data[i] = crypto1_byte(pcs, 0x00, 0) ^ data[i];
\r
if((i&0x0007) == 0)
\r
par[i>>3] = 0;
\r
data[i] = crypto1_byte(pcs, 0x00, 0) ^ data[i];
\r
if((i&0x0007) == 0)
\r
par[i>>3] = 0;
\r
- par[i>>3] |= (((filter(pcs->odd) ^ oddparity(bt)) & 0x01)<<(7-(i&0x0007)));
\r
+ par[i>>3] |= (((filter(pcs->odd) ^ oddparity
8
(bt)) & 0x01)<<(7-(i&0x0007)));
\r
}
\r
return;
\r
}
\r
}
\r
return;
\r
}
\r
@@
-99,7
+100,7
@@
int mifare_sendcmd_short(struct Crypto1State *pcs, uint8_t crypted, uint8_t cmd,
for (pos = 0; pos < 4; pos++)
\r
{
\r
ecmd[pos] = crypto1_byte(pcs, 0x00, 0) ^ dcmd[pos];
\r
for (pos = 0; pos < 4; pos++)
\r
{
\r
ecmd[pos] = crypto1_byte(pcs, 0x00, 0) ^ dcmd[pos];
\r
- par[0] |= (((filter(pcs->odd) ^ oddparity(dcmd[pos])) & 0x01) << (7-pos));
\r
+ par[0] |= (((filter(pcs->odd) ^ oddparity
8
(dcmd[pos])) & 0x01) << (7-pos));
\r
}
\r
\r
ReaderTransmitPar(ecmd, sizeof(ecmd), par, timing);
\r
}
\r
\r
ReaderTransmitPar(ecmd, sizeof(ecmd), par, timing);
\r
@@
-193,7
+194,7
@@
int mifare_classic_authex(struct Crypto1State *pcs, uint32_t uid, uint8_t blockN
for (pos = 0; pos < 4; pos++)
\r
{
\r
mf_nr_ar[pos] = crypto1_byte(pcs, nr[pos], 0) ^ nr[pos];
\r
for (pos = 0; pos < 4; pos++)
\r
{
\r
mf_nr_ar[pos] = crypto1_byte(pcs, nr[pos], 0) ^ nr[pos];
\r
- par[0] |= (((filter(pcs->odd) ^ oddparity(nr[pos])) & 0x01) << (7-pos));
\r
+ par[0] |= (((filter(pcs->odd) ^ oddparity
8
(nr[pos])) & 0x01) << (7-pos));
\r
}
\r
\r
// Skip 32 bits in pseudo random generator
\r
}
\r
\r
// Skip 32 bits in pseudo random generator
\r
@@
-204,7
+205,7
@@
int mifare_classic_authex(struct Crypto1State *pcs, uint32_t uid, uint8_t blockN
{
\r
nt = prng_successor(nt,8);
\r
mf_nr_ar[pos] = crypto1_byte(pcs,0x00,0) ^ (nt & 0xff);
\r
{
\r
nt = prng_successor(nt,8);
\r
mf_nr_ar[pos] = crypto1_byte(pcs,0x00,0) ^ (nt & 0xff);
\r
- par[0] |= (((filter(pcs->odd) ^ oddparity
(nt & 0xff
)) & 0x01) << (7-pos));
\r
+ par[0] |= (((filter(pcs->odd) ^ oddparity
8(nt
)) & 0x01) << (7-pos));
\r
}
\r
\r
// Transmit reader nonce and reader answer
\r
}
\r
\r
// Transmit reader nonce and reader answer
\r
@@
-427,7
+428,7
@@
int mifare_classic_writeblock(struct Crypto1State *pcs, uint32_t uid, uint8_t bl
for (pos = 0; pos < 18; pos++)
\r
{
\r
d_block_enc[pos] = crypto1_byte(pcs, 0x00, 0) ^ d_block[pos];
\r
for (pos = 0; pos < 18; pos++)
\r
{
\r
d_block_enc[pos] = crypto1_byte(pcs, 0x00, 0) ^ d_block[pos];
\r
- par[pos>>3] |= (((filter(pcs->odd) ^ oddparity(d_block[pos])) & 0x01) << (7 - (pos&0x0007)));
\r
+ par[pos>>3] |= (((filter(pcs->odd) ^ oddparity
8
(d_block[pos])) & 0x01) << (7 - (pos&0x0007)));
\r
}
\r
\r
ReaderTransmitPar(d_block_enc, sizeof(d_block_enc), par, NULL);
\r
}
\r
\r
ReaderTransmitPar(d_block_enc, sizeof(d_block_enc), par, NULL);
\r
Impressum
,
Datenschutz