We’ve had a number of emails about the 2DDOC barcode type being used in French Covid “passports”. The Softek Barcode Reader Toolkit is able to read the data in the barcodes because it is stored using plain text in a DataMatrix symbology, however we do not support the actual verification of the digital signature for the data.
Here’s an example…
And here’s how it decodes using the Softek Barcode Reader (using quoted printable encoding)…
Scanning for: 1-D barcodes, Datamatrix
Found 1 barcode(s) in 14 ms
Position (from top left): (x = 0, y = 0), (w = 217, h = 218)
Quality score: 5/5
Value: DC01FR01SFR0124B124C0126FR240616010M/SERME/GABRIEL=1D2255 AVENUE CANNES=1D25ANTIBES=1D18859453627=1D=E7=D6=1F=9A]=9D=D67=B6kg=00=9B=C7=18,=89=A8=85=D6M> L=F3=CCV=B6=FB=0B=8F&=FF=D5=91=04N=F3=E8=AAI6=C7=FEgf=C12=13=BE=C9l=E8=E7!=19=F0=E8/=D0d=E8gq
Any none-printable characters above are represented as =XX where XX is the hex value.
Note: In C# it’s worth using GetBarStringBytes to retrieve the data to avoid the effort of converting back from a string.
The plain text at the start is the data and the binary at the end (64 bytes) is the digital signature. A 2DDOC reader needs to have the public key for the certificate issuer in order to verify the data.
The following web page details how the plain text data is formatted:
and here’s a link to a wikipedia page about 2DDOC:
We’ll post more as we work it out.