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":"Romero Muñoz","fnt":"ROMERO<MUNOZ","gn":"José Carlos","gnt":"JOSE<CARLOS"},"dob":"2021-05-28","v":[{"tg":"840539006","vp":"1119349007","mp":"EU/1/20/1525","ma":"ORG-100001417","dn":1,"sd":1,"dt":"2021-05-28","co":"ES","is":"Ministerio de Sanidad","ci":"01ES21R1662955121D74217FDD39#0"}]},
 "CBOR": "BF6376657265312E302E30636E616DBF62666E6D526F6D65726F204D75C3B16F7A63666E746C524F4D45524F3C4D554E4F5A62676E6C4A6F73C3A9204361726C6F7363676E746B4A4F53453C4341524C4F53FF63646F626A323032312D30352D3238617681BF627467693834303533393030366276706A31313139333439303037626D706C45552F312F32302F31353235626D616D4F52472D31303030303134313762646E01627364016264746A323032312D30352D323862636F624553626973754D696E6973746572696F2064652053616E69646164626369781E303145533231523136363239353531323144373432313746444433392330FFFF",
 "COSE": "D2844DA20126044807805B250C759584A059010FA401624553041A60D853D8061A60B0C6D9390103A101A4617681AA626369781E30314553323152313636323935353132314437343231374644443339233062636F62455362646E016264746A323032312D30352D3238626973754D696E6973746572696F2064652053616E69646164626D616D4F52472D313030303031343137626D706C45552F312F32302F3135323562736401627467693834303533393030366276706A3131313933343930303763646F626A323032312D30352D3238636E616DA462666E6D526F6D65726F204D75C3B16F7A62676E6C4A6F73C3A9204361726C6F7363666E746C524F4D45524F3C4D554E4F5A63676E746B4A4F53453C4341524C4F536376657265312E302E305840231082F838E3BE2FDA2F806413E8735055D0392053F494ED90E0F123C0B1B8745B4033D4F0441B91628F23B25FB5C05B3EF32738ECFCD081ECA3E66EBE5E8718",
 "BASE45": "NCFOXN%TSMAHN-HKTGX94G-ICWEXWP769 5W3XH74M6R5J711MG*CM+W4967RXQQHIZC4.OI1RM8ZA*LP0W25$074M9-8YC8O.CP-823L*/GF/GD4T9-8+5TW$5X4PDOPYE9/MV+:T.A53XH395*CBVZ0K1H$$0VONZ 2ZJJ+.K4IJZJJBY4.Z8YLV0C58G13HHEGJDFHIE9MIHJ6W48UK.GA68$8D7AD:XIBEIVG395EV3EVCK09DEWCFVA1RO5VA81K0ECM8CXVDC8C90JK.A+ C/8DXEDKG0CGJ5ALR.4YMR$ZJ*DJWP42W5Z/6S:7Q+MX4CMBNXJUH.VI%K6ZN7BM1US4K5+WJDSH TU/UIGSUJLEH-V: B1-V-VF+4WOUKYZQ.J9 0OERGP%D+W31 FNSGUVPQRHIY1VS11O1QR3*V0Y/FCV7*7L-P9C94HHVCEE.ETSO9GFS5RAI-96HU PV22P6Z42*1E1BGDN51A6STH3S1CO488O:RV%EW07%$5*2OQ*VQ3EOWBYM0WHC24G",
 "PREFIX": "HC1:NCFOXN%TSMAHN-HKTGX94G-ICWEXWP769 5W3XH74M6R5J711MG*CM+W4967RXQQHIZC4.OI1RM8ZA*LP0W25$074M9-8YC8O.CP-823L*/GF/GD4T9-8+5TW$5X4PDOPYE9/MV+:T.A53XH395*CBVZ0K1H$$0VONZ 2ZJJ+.K4IJZJJBY4.Z8YLV0C58G13HHEGJDFHIE9MIHJ6W48UK.GA68$8D7AD:XIBEIVG395EV3EVCK09DEWCFVA1RO5VA81K0ECM8CXVDC8C90JK.A+ C/8DXEDKG0CGJ5ALR.4YMR$ZJ*DJWP42W5Z/6S:7Q+MX4CMBNXJUH.VI%K6ZN7BM1US4K5+WJDSH TU/UIGSUJLEH-V: B1-V-VF+4WOUKYZQ.J9 0OERGP%D+W31 FNSGUVPQRHIY1VS11O1QR3*V0Y/FCV7*7L-P9C94HHVCEE.ETSO9GFS5RAI-96HU PV22P6Z42*1E1BGDN51A6STH3S1CO488O:RV%EW07%$5*2OQ*VQ3EOWBYM0WHC24G",
 "2DCODE": "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" 
,
"TESTCTX": {
		"VERSION": 1,
		"SCHEMA": "1.0.0",
		"CERTIFICATE": "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",
		"VALIDATIONCLOCK": "2021-05-25T18:54:33+02:00",
		"DESCRIPTION": "Test certificate Spain"
	},
	"EXPECTEDRESULTS": {
		"EXPECTEDVALIDOBJECT": true,
		"EXPECTEDSCHEMAVALIDATION": true,
		"EXPECTEDENCODE": true,
		"EXPECTEDDECODE": true,
		"EXPECTEDVERIFY": true,
		"EXPECTEDUNPREFIX": true,
		"EXPECTEDVALIDJSON": true,
		"EXPECTEDB45DECODE": true,
		"EXPECTEDPICTUREDECODE": true
	}
}