Skip to content

Commit

Permalink
emrtd: Calculate document type from MRZ length
Browse files Browse the repository at this point in the history
+ Add the German Aufenthaltstitel
  • Loading branch information
aveao committed Feb 6, 2021
1 parent f6bca6e commit 7947d2e
Showing 1 changed file with 12 additions and 5 deletions.
17 changes: 12 additions & 5 deletions client/src/cmdhfemrtd.c
Original file line number Diff line number Diff line change
Expand Up @@ -1338,19 +1338,26 @@ static int emrtd_print_ef_dg1_info(uint8_t *data, size_t datalen) {

// Determine and print the document type
if (mrz[0] == 'I' && mrz[1] == 'P') {
td_variant = 1;
PrintAndLogEx(SUCCESS, "Document Type.........: " _YELLOW_("Passport Card"));
} else if (mrz[0] == 'I') {
td_variant = 1;
PrintAndLogEx(SUCCESS, "Document Type.........: " _YELLOW_("ID Card"));
} else if (mrz[0] == 'P') {
td_variant = 3;
PrintAndLogEx(SUCCESS, "Document Type.........: " _YELLOW_("Passport"));
} else if (mrz[0] == 'A') {
PrintAndLogEx(SUCCESS, "Document Type.........: " _YELLOW_("German Residency Permit"));
} else {
td_variant = 1;
PrintAndLogEx(SUCCESS, "Document Type.........: " _YELLOW_("Unknown"));
PrintAndLogEx(INFO, "Assuming ID-style MRZ.");
}

if (mrzlen == 90) {
td_variant = 1;
} else if (mrzlen == 88) {
td_variant = 3;
} else {
PrintAndLogEx(ERR, "MRZ length (%zu) is wrong.", mrzlen);
return PM3_ESOFT;
}

PrintAndLogEx(SUCCESS, "Document Form Factor..: " _YELLOW_("TD%i"), td_variant);

// Print the MRZ
Expand Down

0 comments on commit 7947d2e

Please sign in to comment.