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": "Andaluza Andaluza",
			"gn": "Carmen",
			"fnt": "ANDALUZA<ANDALUZA",
			"gnt": "CARMEN"
		},
		"dob": "1974-02-28",
		"t": [
			{
				"tg": "840539006",
				"tt": "LP6464-4",
				"sc": "2021-05-03T14:20:00+00:00",
				"dr": "2021-05-03T20:00:01+00:00",
				"tr": "260415000",
				"tc": "Hospital Virgen del RocĂ­o",
				"co": "ES",
				"is": "Servicio Andaluz de Salud",
				"ci": "01ES01T8D8F19849772480B86DE8#C"
			}
		]
	},
	"CBOR": "a4061a60abd99b041a60b11f9b01624553390103a101a46376657265312e302e30636e616da462666e71416e64616c757a6120416e64616c757a6162676e664361726d656e63666e7471414e44414c555a413c414e44414c555a4163676e74664341524d454e63646f626a313937342d30322d3238617481a962746769383430353339303036627474684c50363436342d346273637819323032312d30352d30335431343a32303a30302b30303a30306264727819323032312d30352d30335432303a30303a30312b30303a303062747269323630343135303030627463781a486f73706974616c2056697267656e2064656c20526f63c3ad6f62636f6245536269737819536572766963696f20416e64616c757a2064652053616c7564626369781e303145533031543844384631393834393737323438304238364445382343",
	"COSE": "d28450a3012603183d044807805b250c759584a0590141a4061a60abd99b041a60b11f9b01624553390103a101a46376657265312e302e30636e616da462666e71416e64616c757a6120416e64616c757a6162676e664361726d656e63666e7471414e44414c555a413c414e44414c555a4163676e74664341524d454e63646f626a313937342d30322d3238617481a962746769383430353339303036627474684c50363436342d346273637819323032312d30352d30335431343a32303a30302b30303a30306264727819323032312d30352d30335432303a30303a30312b30303a303062747269323630343135303030627463781a486f73706974616c2056697267656e2064656c20526f63c3ad6f62636f6245536269737819536572766963696f20416e64616c757a2064652053616c7564626369781e3031455330315438443846313938343937373234383042383644453823435840c23d0869c910207a9b0e43859320f64abd5c259ab52bcdc74b5a2e7a3fa1083a991f5e5fada1698d45c1e3423c9973bcacc05f0618677fefb4ec8c6c78ed2e9e",
	"BASE45": "NCFOXNEG2NBJ5*H:QOS/O.+NEKBS7LOMD7LGT.8+W4VGACUL84QOGIVER%18AD6E 6 NI4EFSYS1-ST*QGTA4W7.Y7B-S-*O5W41FDZ*GCEFTFHP+KREHS469JA8/BIQEBDA5KDOKEH-BOJKS7K2TK.9DQRKUYH:ZJ83BV8TR634$TM7J5OI9YI:8DH:D%PDGZK5WCDAB*CNAHLW 70SO:GOLIROGO3T5ZXK9UO GOP*OSV8PS4V776K82HPPEPHCRTWANDOT*ON*O2HPJSP/88N10%*4GR2UFPM.KON1*JK1W4/GJI+C7*4M:KZ34MLEOXIE:F2C8LC9D:H+7BNDAOLD5H88LDBH882G1OS7NV0OPI98J%44$2X49O5L+*IL%4Z7TTYNOVAD12OWCSP4*2DFDPU53XY0N43W9BW9BA93HKB29BHRJGHJZ23VEBOLN+HBAM7947WRM5EP B5D6AHVJ2KN.QMZ17D-N4QLX2N+5KR4UR+K$%CODIWLDLWFK/V1+G3:NN+0LP7N P-6S*4TZT7PT8*4WLX5QLF*I5YUT3H0TDQSBH",
	"PREFIX": "HC1:NCFOXNEG2NBJ5*H:QOS/O.+NEKBS7LOMD7LGT.8+W4VGACUL84QOGIVER%18AD6E 6 NI4EFSYS1-ST*QGTA4W7.Y7B-S-*O5W41FDZ*GCEFTFHP+KREHS469JA8/BIQEBDA5KDOKEH-BOJKS7K2TK.9DQRKUYH:ZJ83BV8TR634$TM7J5OI9YI:8DH:D%PDGZK5WCDAB*CNAHLW 70SO:GOLIROGO3T5ZXK9UO GOP*OSV8PS4V776K82HPPEPHCRTWANDOT*ON*O2HPJSP/88N10%*4GR2UFPM.KON1*JK1W4/GJI+C7*4M:KZ34MLEOXIE:F2C8LC9D:H+7BNDAOLD5H88LDBH882G1OS7NV0OPI98J%44$2X49O5L+*IL%4Z7TTYNOVAD12OWCSP4*2DFDPU53XY0N43W9BW9BA93HKB29BHRJGHJZ23VEBOLN+HBAM7947WRM5EP B5D6AHVJ2KN.QMZ17D-N4QLX2N+5KR4UR+K$%CODIWLDLWFK/V1+G3:NN+0LP7N P-6S*4TZT7PT8*4WLX5QLF*I5YUT3H0TDQSBH",
	"2DCODE": "iVBORw0KGgoAAAANSUhEUgAAAZQAAAGUCAIAAACdp0P3AAAPbUlEQVR42u3aUW7cOBBAQd//0tkTBNhY/ZrUTL1PI7E1GrIENPXzR5Je2I9bIAlekgQvSYKXJHhJErwkCV6S4CVJ8JIkeEkSvCTBS5LgJUnwkgQvSYKXJMFLErwkCV6SBC9JgpckeEkSvCQJXpLgJUnwkiR4SYKXJMFLkuAlSfCSBC9JgpckwUsSvCQJXpIEL0nwkiR4SRK8JAlekuAlSfCSJHhJgpckwUuS4CUJXvdcUND/+VtP/s2Tz1j/3b/9nif36l9/59T38uSzTK2ff/35v17D1BrY3Efwghe84AUveMELXvCCF7zgBS94wWtmYxe/p8ax2BhTG6D+/afuyROIpx48t62ZU/sRXvCCF7zgBS94wQte8IIXvOAFL3j9fuBaL/r692wOTaf+Vg1csTZuGGxPfb/1vYIXvOAFL3jBC17wghe84AUveMELXp+D15OXHuvPvrmIT23Uzd+/+YJoMRSHF7zgBS94wQte8IIXvOAFL3jBC17w2ti0U7+zvv56UW5e/2ZTD7Anv79eP/CCF7zgBS94wQte8IIXvOAFL3jBa2/Rbw4yi2s+tZhu2FSn7vmT72jzYfbk35/aR/CCF7zgBS94wQte8IIXvOAFL3jB6/c3qx6y+rmff8PPbz7YgRe8/NzP4QUvP/dzeMELXn7u5/D6FrxO4Vj8ns2XCac+7+Z1bg6kNw9Vir/7liE6vOAFL3jBC17wghe84AUveMELXvCaX0D1oPEJUlOL++Y27+fmC6XFGqgfEp80mIcXvOAFL3jBC17wghe84AUveMHr0wb2my+mFovmBrAKUOrvtD5gqdfG5iFDATG84AUveMELXvCCF7zgBS94wQte8LoXr1O41BDXhw9Tm624P/VnObWWTgH0duDgBS94wQte8IIXvOAFL3jBC17w+mS8poa1Uy/7bV7/1GB787PUn/eGF1yL7+7UGoAXvOAFL3jBC17wghe84AUveMELXi1YUxgVw+lTg+Ri85x6wEw9hE49eGo0N4frb3l5FV7wghe84AUveMELXvCCF7zgBa+3DuynNskpyIqXNt94/fWGuQGa+n7W1za19uAFL3jBC17wghe84AUveMELXvCC194Qt/gii5cbi/97wxC9fgl2E9PiO9082Jk6NIMXvOAFL3jBC17wghe84AUveMELXvND+ic3uh6m3naIcQqOmzdSPeAv7s+pw4erfYAXvOAFL3jBC17wghe84AUveMHrAwb2Uy/yFUP9YlGeuldT0Nf39hT6xTVvgnjD+oQXvOAFL3jBC17wghe84AUveMHrG/HaXCibA/76pdlNjIqNVOB4CohTD1QDe3jBC17wghe84AUveMELXvCCF7zeh1cB0+YAu94Ymxvgyc/rNVCgvHk/b9gLb0ENXvCCF7zgBS94wQte8IIXvOAFrzfhVQ/g68X95LMUUN6M3dQGrofQNxwa1J/3jcN7eMELXvCCF7zgBS94wQte8IIXvN46sK83eTFsnvpcNTqnFnGx4Yth/Bvhu+GQBF7wghe84AUveMELXvCCF7zgBS94tcP7N+IyhVH9b+r7XOBy6mDh5of9qQc5vOAFL3jBC17wghe84AUveMELXgb28wP7YsMUSBWLr9jAmy/T3raW6vtfPDCm7gm84AUveMELXvCCF7zgBS94wQte8Ho3iPULjfXQtAb31L264SBiCvdTBzKv39fwghe84AUveMELXvCCF7zgBS94fcDAfnODTQ3Lb/68U8ieOnCov/di0L55D4v7DC94wQte8IIXvOAFL3jBC17wghe85iErvvg34li8ZFgMuU99X8W9fQLc1DU/+btvRwpe8IIXvOAFL3jBC17wghe84AWvb8Gr2FT1NWwiO7VYN69h89qK72vzkKH4jor7AC94wQte8IIXvOAFL3jBC17wghe89hbZ5qB3c+MVA9pTG7jYVKewqAfzBvbwghe84AUveMELXvCCF7zgBS94vW9gvzkMPrVQipdXi+F3/YJl8f1uDr/rYX+9Ht6IGrzgBS94wQte8IIXvOAFL3jBC16fgNcUIsVwuri2esEVi7KG6YaB9BSIT/7N5kPFwB5e8IIXvOAFL3jBC17wghe84AWv8zDdsIGLhXJqQFsv6E3sblgPU9ezebgEL3jBC17wghe84AUveMELXvCCF7z2Nnxx04sNcOrFzhr6+gXgqY19CoXNg4Kp9QMveMELXvCCF7zgBS94wQte8IIXvM7jVS/uU0P3GxZcPQgvrv/Uy7HFg6r+jPUBGrzgBS94wQte8IIXvOAFL3jBC17w+v3NqgfYBXZT1zA1uN28/zdstqmHX/GArP/uJsrwghe84AUveMELXvCCF7zg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",
	"TESTCTX": {
		"VERSION": 1,
		"SCHEMA": "1.0.0",
		"CERTIFICATE": "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",
		"VALIDATIONCLOCK": "2021-05-25T12:00:00.085231Z",
		"DESCRIPTION": "Test statement OK"
	},
	"EXPECTEDRESULTS": {
		"EXPECTEDSCHEMAVALIDATION": true,
		"EXPECTEDENCODE": true,
		"EXPECTEDDECODE": true,
		"EXPECTEDVERIFY": true,
		"EXPECTEDUNPREFIX": true,
		"EXPECTEDVALIDJSON": true,
		"EXPECTEDB45DECODE": true,
		"EXPECTEDPICTUREDECODE": true,
		"EXPECTEDEXPIRATIONCHECK": true
	}
}