cppchecker fix
This commit is contained in:
@@ -191,12 +191,10 @@ static int emrtd_exchange_commands_noout(const char *cmd, bool activate_field, b
|
|||||||
|
|
||||||
static char emrtd_calculate_check_digit(char *data) {
|
static char emrtd_calculate_check_digit(char *data) {
|
||||||
int mrz_weight[] = {7, 3, 1};
|
int mrz_weight[] = {7, 3, 1};
|
||||||
int cd = 0;
|
int value, cd = 0;
|
||||||
int value = 0;
|
|
||||||
char d;
|
|
||||||
|
|
||||||
for (int i = 0; i < strlen(data); i++) {
|
for (int i = 0; i < strlen(data); i++) {
|
||||||
d = data[i];
|
char d = data[i];
|
||||||
if ('A' <= d && d <= 'Z') {
|
if ('A' <= d && d <= 'Z') {
|
||||||
value = d - 55;
|
value = d - 55;
|
||||||
} else if ('a' <= d && d <= 'z') {
|
} else if ('a' <= d && d <= 'z') {
|
||||||
@@ -652,19 +650,16 @@ static bool emrtd_lds_get_data_by_tag(uint8_t *datain, size_t datainlen, uint8_t
|
|||||||
offset += emrtd_get_asn1_field_length(datain, datainlen, offset);
|
offset += emrtd_get_asn1_field_length(datain, datainlen, offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
int e_idlen = 0;
|
|
||||||
int e_datalen = 0;
|
|
||||||
int e_fieldlen = 0;
|
|
||||||
while (offset < datainlen) {
|
while (offset < datainlen) {
|
||||||
PrintAndLogEx(DEBUG, "emrtd_lds_get_data_by_tag, offset: %i, data: %X", offset, *(datain + offset));
|
PrintAndLogEx(DEBUG, "emrtd_lds_get_data_by_tag, offset: %i, data: %X", offset, *(datain + offset));
|
||||||
// Determine element ID length to set as offset on asn1datalength
|
// Determine element ID length to set as offset on asn1datalength
|
||||||
e_idlen = emrtd_lds_determine_tag_length(*(datain + offset));
|
int e_idlen = emrtd_lds_determine_tag_length(*(datain + offset));
|
||||||
|
|
||||||
// Get the length of the element
|
// Get the length of the element
|
||||||
e_datalen = emrtd_get_asn1_data_length(datain + offset, datainlen - offset, e_idlen);
|
int e_datalen = emrtd_get_asn1_data_length(datain + offset, datainlen - offset, e_idlen);
|
||||||
|
|
||||||
// Get the length of the element's length
|
// Get the length of the element's length
|
||||||
e_fieldlen = emrtd_get_asn1_field_length(datain + offset, datainlen - offset, e_idlen);
|
int e_fieldlen = emrtd_get_asn1_field_length(datain + offset, datainlen - offset, e_idlen);
|
||||||
|
|
||||||
PrintAndLogEx(DEBUG, "emrtd_lds_get_data_by_tag, e_idlen: %02X, e_datalen: %02X, e_fieldlen: %02X", e_idlen, e_datalen, e_fieldlen);
|
PrintAndLogEx(DEBUG, "emrtd_lds_get_data_by_tag, e_idlen: %02X, e_datalen: %02X, e_fieldlen: %02X", e_idlen, e_datalen, e_fieldlen);
|
||||||
|
|
||||||
@@ -828,7 +823,8 @@ static bool emrtd_dump_file(uint8_t *ks_enc, uint8_t *ks_mac, uint8_t *ssc, cons
|
|||||||
|
|
||||||
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 false;
|
||||||
|
|
||||||
strcpy(filepath, path);
|
strcpy(filepath, path);
|
||||||
strncat(filepath, PATHSEP, 2);
|
strncat(filepath, PATHSEP, 2);
|
||||||
strcat(filepath, name);
|
strcat(filepath, name);
|
||||||
@@ -1649,8 +1645,6 @@ static int emrtd_parse_ef_sod_hashes(uint8_t *data, size_t datalen, uint8_t *has
|
|||||||
|
|
||||||
size_t emrtdsiglen = 0;
|
size_t emrtdsiglen = 0;
|
||||||
size_t hashlistlen = 0;
|
size_t hashlistlen = 0;
|
||||||
size_t e_datalen = 0;
|
|
||||||
size_t e_fieldlen = 0;
|
|
||||||
size_t offset = 0;
|
size_t offset = 0;
|
||||||
|
|
||||||
if (emrtd_ef_sod_extract_signatures(data, datalen, emrtdsig, &emrtdsiglen) != PM3_SUCCESS) {
|
if (emrtd_ef_sod_extract_signatures(data, datalen, emrtdsig, &emrtdsiglen) != PM3_SUCCESS) {
|
||||||
@@ -1670,10 +1664,10 @@ static int emrtd_parse_ef_sod_hashes(uint8_t *data, size_t datalen, uint8_t *has
|
|||||||
|
|
||||||
while (offset < hashlistlen) {
|
while (offset < hashlistlen) {
|
||||||
// Get the length of the element
|
// Get the length of the element
|
||||||
e_datalen = emrtd_get_asn1_data_length(hashlist + offset, hashlistlen - offset, 1);
|
int e_datalen = emrtd_get_asn1_data_length(hashlist + offset, hashlistlen - offset, 1);
|
||||||
|
|
||||||
// Get the length of the element's length
|
// Get the length of the element's length
|
||||||
e_fieldlen = emrtd_get_asn1_field_length(hashlist + offset, hashlistlen - offset, 1);
|
int e_fieldlen = emrtd_get_asn1_field_length(hashlist + offset, hashlistlen - offset, 1);
|
||||||
|
|
||||||
switch (hashlist[offset]) {
|
switch (hashlist[offset]) {
|
||||||
case 0x30:
|
case 0x30:
|
||||||
@@ -1703,11 +1697,10 @@ static int emrtd_print_ef_sod_info(uint8_t *dg_hashes_calc, uint8_t *dg_hashes_s
|
|||||||
PrintAndLogEx(SUCCESS, "Hash algorithm: " _YELLOW_("%s"), hashalg_table[hash_algo].name);
|
PrintAndLogEx(SUCCESS, "Hash algorithm: " _YELLOW_("%s"), hashalg_table[hash_algo].name);
|
||||||
|
|
||||||
uint8_t all_zeroes[64] = { 0x00 };
|
uint8_t all_zeroes[64] = { 0x00 };
|
||||||
bool calc_all_zero, sod_all_zero, hash_matches;
|
|
||||||
for (int i = 1; i <= 16; i++) {
|
for (int i = 1; i <= 16; i++) {
|
||||||
calc_all_zero = (memcmp(dg_hashes_calc + (i * 64), all_zeroes, hashalg_table[hash_algo].hashlen) == 0);
|
bool calc_all_zero = (memcmp(dg_hashes_calc + (i * 64), all_zeroes, hashalg_table[hash_algo].hashlen) == 0);
|
||||||
sod_all_zero = (memcmp(dg_hashes_sod + (i * 64), all_zeroes, hashalg_table[hash_algo].hashlen) == 0);
|
bool sod_all_zero = (memcmp(dg_hashes_sod + (i * 64), all_zeroes, hashalg_table[hash_algo].hashlen) == 0);
|
||||||
hash_matches = (memcmp(dg_hashes_sod + (i * 64), dg_hashes_calc + (i * 64), hashalg_table[hash_algo].hashlen) == 0);
|
bool hash_matches = (memcmp(dg_hashes_sod + (i * 64), dg_hashes_calc + (i * 64), hashalg_table[hash_algo].hashlen) == 0);
|
||||||
// Ignore files we don't haven't read and lack hashes to
|
// Ignore files we don't haven't read and lack hashes to
|
||||||
if (calc_all_zero == true && sod_all_zero == true) {
|
if (calc_all_zero == true && sod_all_zero == true) {
|
||||||
continue;
|
continue;
|
||||||
|
|||||||
Reference in New Issue
Block a user