dgc 0.0.7

A parser and validator for the EU Digital Green Certificate (dgc) a.k.a. greenpass
Documentation
{
    "JSON": {
        "ver": "1.0.0",
        "nam": {
            "fn": "Musterfrau-Gößinger",
            "fnt": "MUSTERFRAU<GOESSINGER",
            "gn": "Gabriele",
            "gnt": "GABRIELE"
        },
        "dob": "1998-02-26",
        "t": [
            {
                "tg": "840539006",
                "tt": "LP6464-4",
                "nm": "Roche LightCycler qPCR",
                "sc": "2021-02-20T12:34:56Z",
                "tr": "260415000",
                "tc": "Testing center Vienna 1",
                "co": "AT",
                "is": "Ministry of Health, Austria",
                "ci": "URN:UVCI:01:AT:B5921A35D6A0D696421B3E2462178297#I"
            }
        ]
    },
    "CBOR": "bf6376657265312e302e30636e616dbf62666e754d7573746572667261752d47c3b6c39f696e67657263666e74754d5553544552465241553c474f455353494e47455262676e684761627269656c6563676e74684741425249454c45ff63646f626a313939382d30322d3236617481bf62746769383430353339303036627474684c50363436342d34626e6d76526f636865204c696768744379636c6572207150435262736374323032312d30322d32305431323a33343a35365a627472693236303431353030306274637754657374696e672063656e746572205669656e6e61203162636f624154626973781b4d696e6973747279206f66204865616c74682c2041757374726961626369783155524e3a555643493a30313a41543a42353932314133354436413044363936343231423345323436323137383239372349ffff",
    "COSE": "d2844da20448d919375fc1e7b6b20126a0590154a4041a61817ca0061a60942ea001624154390103a101a4617481a962736374323032312d30322d32305431323a33343a35365a627474684c50363436342d34626e6d76526f636865204c696768744379636c657220715043526274637754657374696e672063656e746572205669656e6e61203162636f624154626369783155524e3a555643493a30313a41543a42353932314133354436413044363936343231423345323436323137383239372349626973781b4d696e6973747279206f66204865616c74682c20417573747269616274676938343035333930303662747269323630343135303030636e616da463666e74754d5553544552465241553c474f455353494e47455262666e754d7573746572667261752d47c3b6c39f696e67657263676e74684741425249454c4562676e684761627269656c656376657265312e302e3063646f626a313939382d30322d32365840f91545e7aae81371d5cebf2e6c8d8ea5488efb50ba795e678f594c62bb40714cef23f2a9f3d123ae45449f7b7a75920bfda1f673ee4f0c1ca573841773db376f",
    "COMPRESSED": "78da1dd0b16b13510006708e1617dd44a4adc341c0c984f75eee5e7287432fc9f512b8b4e17229d641bdf77cb97b92be2377efda465d0a5d6da1746f2ae9d00e0e0e1ddaa1487741a143f10fa8938282202278b8fe86effbf83e6fb5df4e37af662a4f3f5c9fbc57ee8f57147f323d1b6cbe1edf987db6571a2bc4f20d65ea40990472f388a45422806011a022023e4466593375fc984819b91dac61ada811b1bae6c53462aacbc348d64774c01275d8a97b44d2759fa5928b50a54cc89c973913225021a1715e4428df803d6fd1ec2dd75b2680a6e59b35dd40d02aeb0d6c810636b08660ad6c230d2358a922a35268119e6eccb5b9e0a94c466adc579b2c18c8e8816a65b9f080c8905735a0970d0030c90561a0411d004045b03aa17d21b376afebdbde8267f51e3a4b76b7db5a746c8ff445d6ce3358d24f82ace85c9c5cece7db5942432123c7aa792ddbb5492822272009670346d758c2600994007d1e9317d030aaffafc28fe67fdfb1af8fbfde1e5e7e3c2f0dde6c1f36b7ff744e474fc29d15979ccd0fddef851f473f3f15ded98dfd572fb3dd9b7f0f7ea5df966edd3b4cb7eea65f2af13ffea89849",
    "BASE45": "NCFRY3EJM+J2600EAEUZ2Y/R$ KZUOXGOJ G20CD.BM4H%168:UYFNOMS0D5:D8-CV8KN OIYL4MEUD+8/D1U%DHWE5J5RDQ/Y1$Y3NHKJ3FIHKGLU0ELKMG 24YBF/7WAFUAHVM5EGASZ179-C$0A-VBK N67UH0BR3GSW7SXDS+3MCJE2N*D3I+O9V1SRTMFJ.NEFCHSSAEAGCA2LD4A*7B.CXM6:-V7594INTZL-.LTA2BSN*-ODLC8YPG99M19UCOI+E7JLNV86*E--KORHG+KBGPD5J%I2%5AJIKC-BN75O9G56EQ%T6AR1*4K4L/RJU/RAEQ8WTCWDFZ0AEM:9C8UDXT1H9B2H4 IAAA2E0E /M3IS-S9-MDH3B%P5.HPAGGV%C8IU:FP51BQDK/S1O76RU0UBK:T3S58OCMVIKWB480FY T$5SI6D/ 3DO9.ANQJBQWDS*U07R4M6JQQHNG*GTNYJW.T%WR/G8N84*APGEF+YR8B9DE4B2411D0/8.9BF6C/VIZ FZQIGEQZRL*9MS8IK7G$KMY7IR3SP.BHR7+X14UDC-6BDWE+9X3AS%JM7JP-PP2SE$GE09*/7Y7SY.H:0BAXMRTJ6/1S/KZ0JP/RJV9T7UH1CJMUW8WFBJ",
    "PREFIX": "HC1:NCFRY3EJM+J2600EAEUZ2Y/R$ KZUOXGOJ G20CD.BM4H%168:UYFNOMS0D5:D8-CV8KN OIYL4MEUD+8/D1U%DHWE5J5RDQ/Y1$Y3NHKJ3FIHKGLU0ELKMG 24YBF/7WAFUAHVM5EGASZ179-C$0A-VBK N67UH0BR3GSW7SXDS+3MCJE2N*D3I+O9V1SRTMFJ.NEFCHSSAEAGCA2LD4A*7B.CXM6:-V7594INTZL-.LTA2BSN*-ODLC8YPG99M19UCOI+E7JLNV86*E--KORHG+KBGPD5J%I2%5AJIKC-BN75O9G56EQ%T6AR1*4K4L/RJU/RAEQ8WTCWDFZ0AEM:9C8UDXT1H9B2H4 IAAA2E0E /M3IS-S9-MDH3B%P5.HPAGGV%C8IU:FP51BQDK/S1O76RU0UBK:T3S58OCMVIKWB480FY T$5SI6D/ 3DO9.ANQJBQWDS*U07R4M6JQQHNG*GTNYJW.T%WR/G8N84*APGEF+YR8B9DE4B2411D0/8.9BF6C/VIZ FZQIGEQZRL*9MS8IK7G$KMY7IR3SP.BHR7+X14UDC-6BDWE+9X3AS%JM7JP-PP2SE$GE09*/7Y7SY.H:0BAXMRTJ6/1S/KZ0JP/RJV9T7UH1CJMUW8WFBJ",
    "2DCODE": "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",
    "TESTCTX": {
        "VERSION": 1,
        "SCHEMA": "1.0.0",
        "CERTIFICATE": "MIIBvTCCAWOgAwIBAgIKAXk8i88OleLsuTAKBggqhkjOPQQDAjA2MRYwFAYDVQQDDA1BVCBER0MgQ1NDQSAxMQswCQYDVQQGEwJBVDEPMA0GA1UECgwGQk1TR1BLMB4XDTIxMDUwNTEyNDEwNloXDTIzMDUwNTEyNDEwNlowPTERMA8GA1UEAwwIQVQgRFNDIDExCzAJBgNVBAYTAkFUMQ8wDQYDVQQKDAZCTVNHUEsxCjAIBgNVBAUTATEwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASt1Vz1rRuW1HqObUE9MDe7RzIk1gq4XW5GTyHuHTj5cFEn2Rge37+hINfCZZcozpwQKdyaporPUP1TE7UWl0F3o1IwUDAOBgNVHQ8BAf8EBAMCB4AwHQYDVR0OBBYEFO49y1ISb6cvXshLcp8UUp9VoGLQMB8GA1UdIwQYMBaAFP7JKEOflGEvef2iMdtopsetwGGeMAoGCCqGSM49BAMCA0gAMEUCIQDG2opotWG8tJXN84ZZqT6wUBz9KF8D+z9NukYvnUEQ3QIgdBLFSTSiDt0UJaDF6St2bkUQuVHW6fQbONd731/M4nc=",
        "VALIDATIONCLOCK": "2021-05-06T18:00:00Z",
        "DESCRIPTION": "INVALID: AT: NAA Test expired"
    },
    "EXPECTEDRESULTS": {
        "EXPECTEDVALIDOBJECT": true,
        "EXPECTEDSCHEMAVALIDATION": true,
        "EXPECTEDDECODE": true,
        "EXPECTEDVERIFY": true,
        "EXPECTEDUNPREFIX": true,
        "EXPECTEDVALIDJSON": true,
        "EXPECTEDCOMPRESSION": true,
        "EXPECTEDB45DECODE": true,
        "EXPECTEDPICTUREDECODE": true
    }
}