ZeroPass / dmrtd

Dart library for reading Biometric Passport
Other
43 stars 19 forks source link

Invalid date format #20

Closed zamirszn closed 6 months ago

zamirszn commented 6 months ago

Screenshot (740) Hello , first of all thanks for this awesome lib , im trying to scan a passport using the example provided in the dev branch , i keep getting an invalid date format Exception This is the format i get using the datepicker

_dob = "10/28/1998";

_doe = "10/31/2028";

smlu commented 6 months ago

The issue looks like it could be related to DateFormat.yMd().parse function. From provided screenshot I can see there is some interaction with the passport. Exactly which line in the example code is throwing the exception?

zamirszn commented 6 months ago

The issue looks like it could be related to DateFormat.yMd().parse function. From provided screenshot I can see there is some interaction with the passport. Exactly which line in the example code is throwing the exception?

thanks for the response i get the exception at line 376

 else {
        _log.error("An exception was encountered while trying to read Passport: $e");
      }
smlu commented 6 months ago

Ok this doesn't tell us much, as the scope of possible locations where that particular exception is thrown is quite large. Can you maybe debug line by line and pinpoint the exact place in code where the exception is thrown.

zamirszn commented 6 months ago

Ok this doesn't tell us much, as the scope of possible locations where that particular exception is thrown is quite large. Can you maybe debug line by line and pinpoint the exact place in code where the exception is thrown.

image i dont know if this help , i keep getting this source "˜("

smlu commented 6 months ago

Hmm, unfortunately this also doesn't give us much info. From provided screenshot I see there is some interaction with the passport. The only case that I can think of atm where the dates are parsed from elementary files is EF.DG1 file (MRZ data). Can you comment out this line main.dart:286 in example app and see if app can scan the passport. If successful, the next step would be to examine the received EF.DG1 data. You can use any HEX editor for this task since the content of the file is text-based. FYI, the MRZ class parses the date of birth and date of expiry from bytes here and here, assuming the scanned document is indeed a passport and the EF.DG1 contains TR3 type of MRZ data.

zamirszn commented 6 months ago

Hmm, unfortunately this also doesn't give us much info. From provided screenshot I see there is some interaction with the passport. The only case that I can think of atm where the dates are parsed from elementary files is EF.DG1 file (MRZ data). Can you comment out this line main.dart:286 in example app and see if app can scan the passport. If successful, the next step would be to examine the received EF.DG1 data. You can use any HEX editor for this task since the content of the file is text-based. FYI, the MRZ class parses the date of birth and date of expiry from bytes here and here, assuming the scanned document is indeed a passport and the EF.DG1 contains TR3 type of MRZ data.

Thanks a lot , I switched to the example from the master branch and it worked fine turns out I was running the develop branch , rookie mistake , thanks again @smlu , I appreciate the effort