From c105914f8341d5c6135d077b879a26db13679ded Mon Sep 17 00:00:00 2001 From: Yuval Adam <_@yuv.al> Date: Wed, 17 Mar 2021 23:33:31 +0200 Subject: Add bytes validation and warn on no signature --- verify.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/verify.py b/verify.py index 41f9494..e1c9cdc 100644 --- a/verify.py +++ b/verify.py @@ -15,6 +15,8 @@ from pyzbar import pyzbar class GreenPassVerifier(object): def __init__(self, data_bytes): + self.validate_bytes(data_bytes) + sig, self.payload = data_bytes.split(b"#", maxsplit=1) self.signature = base64.decodebytes(sig) self.data = json.loads(self.payload) @@ -48,6 +50,15 @@ class GreenPassVerifier(object): data = img.getImageData(output="png") return cls.from_qr(BytesIO(data)) + def validate_bytes(self, bs): + if bs.decode().startswith("GreenPass"): + click.secho( + "⚠️ Green pass QR code contains no signature to verify", + fg="yellow", + bold=True, + ) + click.get_current_context().exit() + def validate_data(self): ct = self.data["ct"] if ct not in (1, 2): -- cgit v1.3.1