mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2024-11-11 01:55:38 +08:00
Merge remote-tracking branch 'upstream/master' into hf_mf_sim
This commit is contained in:
commit
3c96440215
3 changed files with 19 additions and 13 deletions
|
@ -541,7 +541,11 @@ int CmdHF14AInfo(const char *Cmd) {
|
|||
if (strlen(dr) != 0) dr[strlen(dr) - 2] = '\0';
|
||||
PrintAndLogEx(NORMAL, " - TA1 : different divisors are%s supported, "
|
||||
"DR: [%s], DS: [%s]",
|
||||
(card.ats[pos] & 0x80 ? " NOT" : ""), dr, ds);
|
||||
((card.ats[pos] & 0x80) ? " NOT" : ""),
|
||||
dr,
|
||||
ds
|
||||
);
|
||||
|
||||
pos++;
|
||||
}
|
||||
if (tb1) {
|
||||
|
@ -810,12 +814,12 @@ int CmdHF14ASniff(const char *Cmd) {
|
|||
}
|
||||
|
||||
int ExchangeRAW14a(uint8_t *datain, int datainlen, bool activateField, bool leaveSignalON, uint8_t *dataout, int maxdataoutlen, int *dataoutlen) {
|
||||
static bool responseNum = false;
|
||||
static uint8_t responseNum = 0;
|
||||
uint16_t cmdc = 0;
|
||||
*dataoutlen = 0;
|
||||
|
||||
if (activateField) {
|
||||
responseNum = false;
|
||||
responseNum = 1;
|
||||
UsbCommand resp;
|
||||
|
||||
// Anticollision + SELECT card
|
||||
|
@ -848,7 +852,7 @@ int ExchangeRAW14a(uint8_t *datain, int datainlen, bool activateField, bool leav
|
|||
return 1;
|
||||
}
|
||||
|
||||
if (resp.arg[0] <= 0) { // ats_len
|
||||
if (resp.arg[0] == 0) { // ats_len
|
||||
PrintAndLogEx(ERR, "Can't get ATS.");
|
||||
return 1;
|
||||
}
|
||||
|
@ -859,7 +863,7 @@ int ExchangeRAW14a(uint8_t *datain, int datainlen, bool activateField, bool leav
|
|||
cmdc |= ISO14A_NO_DISCONNECT;
|
||||
|
||||
UsbCommand c = {CMD_READER_ISO_14443a, {ISO14A_RAW | ISO14A_APPEND_CRC | cmdc, (datainlen & 0xFFFF) + 2, 0}};
|
||||
uint8_t header[] = {0x0a | responseNum, 0x00};
|
||||
uint8_t header[] = { 0x0a | responseNum, 0x00};
|
||||
responseNum ^= 1;
|
||||
memcpy(c.d.asBytes, header, 2);
|
||||
memcpy(&c.d.asBytes[2], datain, datainlen);
|
||||
|
@ -899,7 +903,6 @@ int ExchangeRAW14a(uint8_t *datain, int datainlen, bool activateField, bool leav
|
|||
return 3;
|
||||
}
|
||||
|
||||
|
||||
} else {
|
||||
PrintAndLogEx(ERR, "Reply timeout.");
|
||||
return 4;
|
||||
|
@ -948,7 +951,7 @@ int SelectCard14443_4(bool disconnect, iso14a_card_select_t *card) {
|
|||
return 1;
|
||||
}
|
||||
|
||||
if (resp.arg[0] <= 0) { // ats_len
|
||||
if (resp.arg[0] == 0) { // ats_len
|
||||
PrintAndLogEx(ERR, "Can't get ATS.");
|
||||
return 1;
|
||||
}
|
||||
|
@ -997,7 +1000,10 @@ int CmdExchangeAPDU(bool chainingin, uint8_t *datain, int datainlen, bool activa
|
|||
// here length USB_CMD_DATA_SIZE=512
|
||||
// timeout must be authomatically set by "get ATS"
|
||||
UsbCommand c = {CMD_READER_ISO_14443a, {ISO14A_APDU | ISO14A_NO_DISCONNECT | cmdc, (datainlen & 0xFFFF), 0}};
|
||||
memcpy(c.d.asBytes, datain, datainlen);
|
||||
|
||||
if ( datain )
|
||||
memcpy(c.d.asBytes, datain, datainlen);
|
||||
|
||||
SendCommand(&c);
|
||||
|
||||
uint8_t *recv;
|
||||
|
|
|
@ -215,7 +215,7 @@ int CmdHFFidoRegister(const char *cmd) {
|
|||
if (paramsPlain) {
|
||||
memset(cdata, 0x00, 32);
|
||||
CLIGetStrWithReturn(6, cdata, &chlen);
|
||||
if (chlen && chlen > 16) {
|
||||
if (chlen > 16) {
|
||||
PrintAndLog("ERROR: challenge parameter length in ASCII mode must be less than 16 chars instead of: %d", chlen);
|
||||
return 1;
|
||||
}
|
||||
|
@ -233,7 +233,7 @@ int CmdHFFidoRegister(const char *cmd) {
|
|||
if (paramsPlain) {
|
||||
memset(adata, 0x00, 32);
|
||||
CLIGetStrWithReturn(7, adata, &applen);
|
||||
if (applen && applen > 16) {
|
||||
if (applen > 16) {
|
||||
PrintAndLog("ERROR: application parameter length in ASCII mode must be less than 16 chars instead of: %d", applen);
|
||||
return 1;
|
||||
}
|
||||
|
@ -479,7 +479,7 @@ int CmdHFFidoAuthenticate(const char *cmd) {
|
|||
if (paramsPlain) {
|
||||
memset(hdata, 0x00, 32);
|
||||
CLIGetStrWithReturn(9, hdata, &hdatalen);
|
||||
if (hdatalen && hdatalen > 16) {
|
||||
if (hdatalen > 16) {
|
||||
PrintAndLog("ERROR: challenge parameter length in ASCII mode must be less than 16 chars instead of: %d", hdatalen);
|
||||
return 1;
|
||||
}
|
||||
|
@ -496,7 +496,7 @@ int CmdHFFidoAuthenticate(const char *cmd) {
|
|||
if (paramsPlain) {
|
||||
memset(hdata, 0x00, 32);
|
||||
CLIGetStrWithReturn(11, hdata, &hdatalen);
|
||||
if (hdatalen && hdatalen > 16) {
|
||||
if (hdatalen > 16) {
|
||||
PrintAndLog("ERROR: application parameter length in ASCII mode must be less than 16 chars instead of: %d", hdatalen);
|
||||
return 1;
|
||||
}
|
||||
|
|
|
@ -301,7 +301,7 @@ CBOR_API CborError cbor_value_leave_container(CborValue *it, const CborValue *re
|
|||
|
||||
CBOR_PRIVATE_API uint64_t _cbor_value_decode_int64_internal(const CborValue *value);
|
||||
CBOR_INLINE_API uint64_t _cbor_value_extract_int64_helper(const CborValue *value) {
|
||||
return value->flags & CborIteratorFlag_IntegerValueTooLarge ?
|
||||
return (value->flags & CborIteratorFlag_IntegerValueTooLarge) ?
|
||||
_cbor_value_decode_int64_internal(value) : value->extra;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue