import zlib import cbor2 import json import pyqrcode from base45 import b45encode from cose.keys import EC2Key from cose.messages.cosemessage import CoseMessage from cose.messages.sign1message import Sign1Message code = { 1: "UA", 4: 1629551271, 6: 1624367271, -260: { 1: { "ver": "1.3.0", "nam": { "fn": "Байден", "fnt": "BIDEN", "gn": "Джо", "gnt": "JOE" }, "dob": "1942-11-20", "v": [ { "tg": "840539006", "vp": "J07BX03", "mp": "EU/1/21/1529", "ma": "ORG-100001699", "dn": 1, "sd": 2, "dt": "2021-06-04", "co": "UA", "is": "State Enterprise \"DIIA\"", "ci": "URN:UVCI:01:UA:A72D06C09378B5540FEDE3160B3D83C8" } ] } } } msg = Sign1Message(phdr={'ALG': 'ES256', 'KID': b'state.gov'}, payload = cbor2.dumps(code)) msg.key = EC2Key.generate_key(crv = 'P_256') c = "HC1:" + b45encode(zlib.compress(msg.encode())).decode('ascii') print (c) qr = pyqrcode.create(c) qr.png("qrcode.png", scale = 4)