mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-08-20 21:33:47 -07:00
hf emrtd, maybe this makes coverity more calm
This commit is contained in:
parent
5ee8c9c75e
commit
2a9d064fd6
1 changed files with 16 additions and 6 deletions
|
@ -262,13 +262,22 @@ static int emrtd_get_asn1_data_length(uint8_t *datain, int datainlen, int offset
|
||||||
// https://wf.lavatech.top/ave-but-random/emrtd-data-quirks#EF_SOD
|
// https://wf.lavatech.top/ave-but-random/emrtd-data-quirks#EF_SOD
|
||||||
return datainlen;
|
return datainlen;
|
||||||
} else if (lenfield == 0x81) {
|
} else if (lenfield == 0x81) {
|
||||||
return ((int) * (datain + offset + 1));
|
int tmp = (*(datain + offset + 1) << 8);
|
||||||
|
return tmp;
|
||||||
|
//return ((int) * (datain + offset + 1));
|
||||||
} else if (lenfield == 0x82) {
|
} else if (lenfield == 0x82) {
|
||||||
return ((int) * (datain + offset + 1) << 8) | ((int) * (datain + offset + 2));
|
int tmp = (*(datain + offset + 1) << 8);
|
||||||
|
tmp |= *(datain + offset + 2);
|
||||||
|
return tmp;
|
||||||
|
//return ((int) * (datain + offset + 1) << 8) | ((int) * (datain + offset + 2));
|
||||||
} else if (lenfield == 0x83) {
|
} else if (lenfield == 0x83) {
|
||||||
return (((int) * (datain + offset + 1) << 16) | ((int) * (datain + offset + 2)) << 8) | ((int) * (datain + offset + 3));
|
int tmp = (*(datain + offset + 1) << 16);
|
||||||
|
tmp |= (*(datain + offset + 2) << 8);
|
||||||
|
tmp |= *(datain + offset + 3);
|
||||||
|
return tmp;
|
||||||
|
//return (((int) * (datain + offset + 1) << 16) | ((int) * (datain + offset + 2)) << 8) | ((int) * (datain + offset + 3));
|
||||||
}
|
}
|
||||||
return false;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int emrtd_get_asn1_field_length(uint8_t *datain, int datainlen, int offset) {
|
static int emrtd_get_asn1_field_length(uint8_t *datain, int datainlen, int offset) {
|
||||||
|
@ -284,7 +293,7 @@ static int emrtd_get_asn1_field_length(uint8_t *datain, int datainlen, int offse
|
||||||
} else if (lenfield == 0x83) {
|
} else if (lenfield == 0x83) {
|
||||||
return 4;
|
return 4;
|
||||||
}
|
}
|
||||||
return false;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void des_encrypt_ecb(uint8_t *key, uint8_t *input, uint8_t *output) {
|
static void des_encrypt_ecb(uint8_t *key, uint8_t *input, uint8_t *output) {
|
||||||
|
@ -839,12 +848,13 @@ static int emrtd_dump_ef_sod(uint8_t *file_contents, size_t file_length, const c
|
||||||
|
|
||||||
if (fieldlen + 1 > EMRTD_MAX_FILE_SIZE) {
|
if (fieldlen + 1 > EMRTD_MAX_FILE_SIZE) {
|
||||||
PrintAndLogEx(ERR, "error (emrtd_dump_ef_sod) fieldlen out-of-bounds");
|
PrintAndLogEx(ERR, "error (emrtd_dump_ef_sod) fieldlen out-of-bounds");
|
||||||
return PM3_SUCCESS;
|
return PM3_EOUTOFBOUND;
|
||||||
}
|
}
|
||||||
|
|
||||||
char *filepath = calloc(strlen(path) + 100, sizeof(char));
|
char *filepath = calloc(strlen(path) + 100, sizeof(char));
|
||||||
if (filepath == NULL)
|
if (filepath == NULL)
|
||||||
return PM3_EMALLOC;
|
return PM3_EMALLOC;
|
||||||
|
|
||||||
strcpy(filepath, path);
|
strcpy(filepath, path);
|
||||||
strncat(filepath, PATHSEP, 2);
|
strncat(filepath, PATHSEP, 2);
|
||||||
strcat(filepath, dg_table[EF_SOD].filename);
|
strcat(filepath, dg_table[EF_SOD].filename);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue