-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Hey Nice Work, No Examples on Decoding And Can I detect standard? #28
Comments
Hi @Hussseinkizz please describe your use case and give more context to your query. How minutiae binary data was obtained? What is the processing chain? What evidences do you have to support your suspection about ANSI/INCITS 378-2004 minutiae? |
Hi @Hussseinkizz, well you did not add much information from the initial post. Just FYI, this project implements ANSI/NIST-ITL 1-2011 but does not deal specifically with the minutiae decoding/encoding (it's a blob right now because every vendor has its own scheme). If you have a pressing need, support can be added for ANSI/INCITS 378-* encoding and decoding. |
well am in Uganda, this https://www.muehlbauer.de/solutions/border-control-document-verification/document-verification/mb-steel-reader-mobile/ made some ID cards, probably following that standard and am trying to scan the barcode and read the data, so far I could scan it, and get base64 then to binary, which after looking around seems to follow that standard I shared, as the snippet I shared, ohh that site is germany but if you got translator, if I go through this I can even contribute to node-nist, it can be the ultimate library for working with these nist standards, wish it could even detect the used standard following patterns in binary, as in it tries the binary through known formats etc! |
This is starting to be interesting. From reading the specification for MB Steel Reader Mobile, this device is used to read various eID and ePassport documents (https://en.wikipedia.org/wiki/Machine-readable_passport). I make the first assumption here that when you say "made some ID cards", you actually refer to Uganda national identity card, such as described here: https://washington.mofa.go.ug/visa/national-id I make the second assumption here that when the barcode on the ID card is read, it yields the base64-encoded data which you referenced in the original post. If this is really the case, then it's highly improbable the data contains fingerprint minutiae. Why?
Please correct me where I am wrong. Please also provide more details on your use case - be exact and specific. |
Hey wow thanks that's interesting to hear, you discovered all that, indeed am trying to get data from Uganda National ID barcode, now am trying to look into this: https://www.nist.gov/services-resources/software/biomdi-software-tools-supporting-standard-biometric-data-interchange yes your didn't find the magic number in binary, it's really not there but it seems only minutia data was encoded into the barcode, for example, all barcodes seem to have 50 bytes, each in pack of 5, and first 2 bits of each giving minutia type, a 10 or 01, as indicated by the standard, then the byte for the angle indeed has no byte with byte value more than 360, I strongly believe it is, I just can't figure out how to get it exactly the right way, none the less thanks friend, thanks a lot for trying to help upto this point. If there's anything or any way you think I could go around this, cause I want to match the print on that ID with a print I take here, am just trying to learn about all this but it's a bit overwhelming!!! |
Hey I solved my case, it was that standard I proved it and it worked out! |
Hi @Hussseinkizz that's interesting. Let me recap the facts and please correct me where I am wrong:
What is not clear to me at this point is that the whole MINUTIA record should be 6 bytes long according to the standard but the total data length from the barcode is 250 bytes (= not divisible by 6). |
I can't share the decoding algorithms but it's 5 bytes instead of 6, because the last byte can be optional and therefore it is, all the other facts you mentioned are correct! |
@Hussseinkizz Thanks for the confirmation, that's good news! |
Ok sure, am going to keep this on my radar, I will contribute the decoding bit, thanks for this great work though friend! |
I suspect I have a ANSI/INCITS 378-2004 minutiae data binary, how do I detect the standard anyways, here is a sample well its base64 but it's binary when decoded, and according to this I have been following: https://templates.machinezoo.com it's probably ANSI/INCITS 378-2004 but though node nist can help me, there is my sample:
Qj4EHM5BFwQhuIFzBCG6g/0EXlyB7QRozoGMBNjQQSwFR9CCcQVXW4LWBWZbhVEFemdAmAWJzkENBajUhR8FvG5EWQXWb4IqBdtbRTgF73xAnQX00EY2Bfl4gVkGGFaFywZkf0HyBn1fhJAGgoCEDAahfoNlBrBxgX0GzmCBIgbZYoCTBuNzgyMG43uCSAcGc0PaBwaEhe8HFopDygdIhkB6B2wCQSwHdnpE3QefikKzB7iCQU8Hx4JFTAfHCkPPCAkEQvoILYRFvAhWDED+CN+IgxgI7o2FGgjzjoRoCQKVg+QJF59CmQkhtoLcCSG7Ql0JJryDjQkroQ==
The text was updated successfully, but these errors were encountered: