AndyQ / NFCPassportReader

NFCPassportReader for iOS 13
MIT License
733 stars 235 forks source link

Skip unknown tags #209

Open TerjeLon opened 3 months ago

TerjeLon commented 3 months ago

Should resolve #202.

Identified two possibilities as to why this may occur:

Trying to read a non-supported (Unknown) datagroup.

I am struggling to see how this could even be possible as COM parse function already filters these out:

for v in vals {
    if let index = DataGroupParser.tags.firstIndex(of: v) {
        dataGroupsPresent.append( DataGroupParser.dataGroupNames[index] )
    }
}

Regardless, in such a scenario the reading should not fail, but just skip the datagroup and carry on. So i added a safeguard where this should now be the behaviour going forwards.

COM and/or SOD is listed in COM

DataGroupParser lists COM as "Common" and SOD as "SecurityData". This would result in either of them being added as Unknown in COM.dataGroupsPresent. I believe this to be most likely the scenario that occurs in #202.

Now COM and SOD will be added correctly

Other changes