added some crypto

This commit is contained in:
merlokk
2018-10-26 14:12:20 +03:00
parent ef4b2fae8a
commit 8bb192fc75
7 changed files with 459 additions and 1 deletions

View File

@@ -105,6 +105,7 @@ CMDSRCS = crapto1/crapto1.c \
tea.c \
polarssl/des.c \
polarssl/aes.c \
polarssl/aes_cmac128.c \
polarssl/bignum.c \
polarssl/rsa.c \
polarssl/sha1.c \

View File

@@ -16,6 +16,18 @@
#include "ui.h"
#include "polarssl/libpcrypto.h"
int CalulateMAC(mf4Session *session, uint8_t *data, int datalen, uint8_t *mac, bool verbose) {
if (!session || !session->Authenticated || !mac || !data || !datalen)
return 1;
memset(mac, 0x00, 8);
if (verbose)
PrintAndLog("MAC data[%d]: %s", datalen, sprint_hex(data, datalen));
return aes_cmac8(NULL, session->Key, data, mac, datalen);
}
int MifareAuth4(mf4Session *session, uint8_t *keyn, uint8_t *key, bool activateField, bool leaveSignalON, bool verbose) {
uint8_t data[257] = {0};
int datalen = 0;

View File

@@ -17,12 +17,14 @@
typedef struct {
bool Authenticated;
uint8_t Key[16];
uint16_t KeyNum;
uint8_t Rnd1[16];
uint8_t Rnd2[16];
}mf4Session;
extern int CalulateMAC(mf4Session *session, uint8_t *data, int datalen, uint8_t *mac, bool verbose);
extern int MifareAuth4(mf4Session *session, uint8_t *keyn, uint8_t *key, bool activateField, bool leaveSignalON, bool verbose);
extern uint8_t mfNumBlocksPerSector(uint8_t sectorNo);