{"id":2659,"date":"2021-07-14T09:17:34","date_gmt":"2021-07-14T09:17:34","guid":{"rendered":"http:\/\/www.bardecode.com\/newsite\/?p=2659"},"modified":"2021-07-14T09:17:34","modified_gmt":"2021-07-14T09:17:34","slug":"2ddoc-barcodes","status":"publish","type":"post","link":"https:\/\/www.bardecode.com\/newsite\/2ddoc-barcodes\/","title":{"rendered":"2DDOC Barcodes"},"content":{"rendered":"<p>We&#8217;ve had a number of emails about the 2DDOC barcode type being used in French Covid &#8220;passports&#8221;. 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.<\/p>\n<p>Here&#8217;s an example&#8230;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2660\" src=\"http:\/\/www.bardecode.com\/newsite\/wp-content\/uploads\/2ddoc.png\" alt=\"\" width=\"217\" height=\"251\" \/><\/p>\n<p>And here&#8217;s how it decodes using the Softek Barcode Reader (using quoted printable encoding)&#8230;<\/p>\n<p>Scanning for: 1-D barcodes, Datamatrix<br \/>\nFound 1 barcode(s) in 14 ms<br \/>\nBarcode 1:<br \/>\nPage: 1<br \/>\nPosition (from top left): (x = 0, y = 0), (w = 217, h = 218)<br \/>\nType: DATAMATRIX<br \/>\nQuality score: 5\/5<br \/>\nValue: DC01FR01SFR0124B124C0126FR240616010M\/SERME\/GABRIEL=1D2255 AVENUE CANNES=1D25ANTIBES=1D18859453627=1D=E7=D6=1F=9A]=9D=D67=B6kg=00=9B=C7=18,=89=A8=85=D6M&gt; L=F3=CCV=B6=FB=0B=8F&amp;=FF=D5=91=04N=F3=E8=AAI6=C7=FEgf=C12=13=BE=C9l=E8=E7!=19=F0=E8\/=D0d=E8gq<\/p>\n<p>Any none-printable characters above are represented as =XX where XX is the hex value.<\/p>\n<p>Note: In C# it&#8217;s worth using GetBarStringBytes to retrieve the data to avoid the effort of converting back from a string.<\/p>\n<p>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.<\/p>\n<p>The following web page details how the plain text data is formatted:<\/p>\n<p><a href=\"https:\/\/blog.juliendelmas.fr\/?a-quoi-sert-le-qr-code-en-bas-de-ma-fiche-de-paye-code-2D-Doc\">https:\/\/blog.juliendelmas.fr\/?a-quoi-sert-le-qr-code-en-bas-de-ma-fiche-de-paye-code-2D-Doc<\/a><\/p>\n<p>and here&#8217;s a link to a wikipedia page about 2DDOC:<\/p>\n<p><a href=\"https:\/\/fr.wikipedia.org\/wiki\/2D-Doc\">https:\/\/fr.wikipedia.org\/wiki\/2D-Doc<\/a><\/p>\n<p>We&#8217;ll post more as we work it out.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>We&#8217;ve had a number of emails about the 2DDOC barcode type being used in French Covid &#8220;passports&#8221;. 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 &hellip; <\/p>\n","protected":false},"author":1,"featured_media":314,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[196,18,203,31],"tags":[],"class_list":["post-2659","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-bardecodefiler","category-knowledge-base","category-news","category-software-development-kits"],"_links":{"self":[{"href":"https:\/\/www.bardecode.com\/newsite\/wp-json\/wp\/v2\/posts\/2659"}],"collection":[{"href":"https:\/\/www.bardecode.com\/newsite\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.bardecode.com\/newsite\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.bardecode.com\/newsite\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bardecode.com\/newsite\/wp-json\/wp\/v2\/comments?post=2659"}],"version-history":[{"count":1,"href":"https:\/\/www.bardecode.com\/newsite\/wp-json\/wp\/v2\/posts\/2659\/revisions"}],"predecessor-version":[{"id":2661,"href":"https:\/\/www.bardecode.com\/newsite\/wp-json\/wp\/v2\/posts\/2659\/revisions\/2661"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.bardecode.com\/newsite\/wp-json\/wp\/v2\/media\/314"}],"wp:attachment":[{"href":"https:\/\/www.bardecode.com\/newsite\/wp-json\/wp\/v2\/media?parent=2659"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bardecode.com\/newsite\/wp-json\/wp\/v2\/categories?post=2659"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bardecode.com\/newsite\/wp-json\/wp\/v2\/tags?post=2659"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}