Uruguayan eID: document how to decode the identity data objects - #34
Uruguayan eID: document how to decode the identity data objects#34nicolasgutierrezdev wants to merge 3 commits into
Conversation
|
Cross-checked this against AGESIC's technical documentation and against a v4 The TLV skeleton holds up exactly as written here: The main find is that The rest is sourcing rather than corrections. The UTF-8 point now reads as One practical warning for anyone going to the source: the TLV tables in the PDF |
Co-authored-by: Carlos Andrés Planchón Prestes <carlosandresplanchonprestes@gmail.com>
Cross-checks the decoding section against the official technical documentation and against a card, and records where they disagree. The TLV layouts hold up: 5F01 with a fixed length of 9, 1F01 to 1F06, 3F01 with a long-form length, 7F01, and the three length forms. * The document describes the biographic values as ASCII. Cards store UTF-8, so the page now corrects the specification instead of contradicting it silently. * 1F08 is the date of issue, four bytes of packed BCD. The document mentions a date of issue as its one non-ASCII value but never says which tag holds it. Adds a warning, since BCD bytes stay under 0x80 and a non-ASCII check reports the field as text. * The document only specifies 1F01 to 1F06, so the rows beyond that are marked as read from cards. * The specification names 1F01 PrimerApellido, which is what makes the surname warning worth stating. Also adds the technical documentation and AGESIC's reference code to the resources, notes that the data objects are unverified when EF 711D is absent, and renames the Path column, which held file IDs and not the paths printed above it.
…yout A v4 and a v5 card read for the page carry the same ten tags, 1F01 to 1F0A, in the same order, with 1F08 four bytes wide on both. Both also came with 1F02 zero-length and both surnames in 1F01, so the surname warning now says so instead of leaving it as something seen on unspecified cards. Tested-by: Nicolas Gutierrez <ngutierreztassano@gmail.com>
f4739c9 to
56c8044
Compare
|
Hmm, the text describes how to parse the output. For users, it would be more helpful to have a tool that actually prints the data in human readable form. Skimming through the documentation, it looks like |
|
@frankmorgner |
Follow-up to #33, where @frankmorgner asked for an example of how to get the
face image and the ID data in human readable form instead of the raw encoding.
Adds a "Decoding the identity data objects" section covering the four PKCS#15
data objects (
7001,7002,7004,700B): tag, length form and value typefor each, the
1F xxfield tags of the biographic data, how to get the portraitout as a plain JPEG, and how to split the MRZ into TD1 or TD3 lines.
Two things worth flagging for anyone consuming this data: the biographic text fields
are UTF-8, not ASCII, and the surname split between
1F 01and1F 02is notreliable, some cards pack both surnames into
1F 01.Layouts come from AGESIC's public technical documentation and from reading real
cards.