From: Blaine Forbort Date: Sun, 21 Dec 2014 01:18:26 +0000 (-0800) Subject: Limit to single-DES operation and return session key to client. X-Git-Url: https://git.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/commitdiff_plain/3c05723ee224b72138884c150b78c4c45ae841ba?ds=inline Limit to single-DES operation and return session key to client. --- diff --git a/armsrc/mifaredesfire.c b/armsrc/mifaredesfire.c index 85e31751..42ae48ca 100644 --- a/armsrc/mifaredesfire.c +++ b/armsrc/mifaredesfire.c @@ -218,6 +218,8 @@ void MifareDES_Auth1(uint8_t mode, uint8_t algo, uint8_t keyno, uint8_t *datain // des, nyckel 0, switch (mode){ case 1:{ + if (algo == 1) { + uint8_t keybytes[8]; uint8_t RndA[8] = {0x00}; uint8_t RndB[8] = {0x00}; @@ -256,6 +258,7 @@ void MifareDES_Auth1(uint8_t mode, uint8_t algo, uint8_t keyno, uint8_t *datain memcpy(RndB, decRndB, 8); rol(decRndB,8); + // This should be random uint8_t decRndA[8] = {0x00}; memcpy(RndA, decRndA, 8); uint8_t encRndA[8] = {0x00}; @@ -290,7 +293,8 @@ void MifareDES_Auth1(uint8_t mode, uint8_t algo, uint8_t keyno, uint8_t *datain struct desfire_key sessionKey = {0}; desfirekey_t skey = &sessionKey; Desfire_session_key_new( RndA, RndB , key, skey ); - print_result("SESSION : ", skey->data, 8); + //print_result("SESSION : ", skey->data, 8); + cmd_send(CMD_ACK,1,0,0,skey->data,8); } else { DbpString("Authetication failed."); @@ -310,6 +314,7 @@ void MifareDES_Auth1(uint8_t mode, uint8_t algo, uint8_t keyno, uint8_t *datain } + } } break; case 2: