summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYuval Adam <_@yuv.al>2021-12-31 11:52:26 +0200
committerYuval Adam <_@yuv.al>2021-12-31 11:52:26 +0200
commit2f99fc0b4e4a8f97229940a78d242bfa491653db (patch)
tree2253d2aa076ac4f2f349926634531a7e5c1f4e8c
parent2679e6c3ebc181677acdd077df409bf73b7dc048 (diff)
More refactoring WIP
-rw-r--r--greenpass/certificate.py2
-rw-r--r--greenpass/verifier.py4
-rw-r--r--greenpass/verifiers/base.py6
-rw-r--r--greenpass/verifiers/eu.py8
-rw-r--r--greenpass/verifiers/il.py12
5 files changed, 23 insertions, 9 deletions
diff --git a/greenpass/certificate.py b/greenpass/certificate.py
index 37d97d2..66b9d58 100644
--- a/greenpass/certificate.py
+++ b/greenpass/certificate.py
@@ -47,7 +47,7 @@ class CertificateData(object):
def verify(self):
# EU certs start with HC1
- if self.data.startswith("HC1"):
+ if self.data.startswith("HC1:"):
return EuroVerifier(self.data)
else:
try:
diff --git a/greenpass/verifier.py b/greenpass/verifier.py
index abe6a4b..b5182e1 100644
--- a/greenpass/verifier.py
+++ b/greenpass/verifier.py
@@ -27,10 +27,6 @@ class GreenPassVerifier(object):
self.ec_cert = self.get_cert_path("IL-NB-DSC-01.pem")
self.rsa_cert = self.get_cert_path("RamzorQRPubKey.pem")
- def validate_bytes(self, bs):
- if bs.decode().startswith("GreenPass"):
- raise Exception("Green pass QR code contains no signature to verify")
-
def validate_data(self):
ct = self.data["ct"]
if ct not in (1, 2):
diff --git a/greenpass/verifiers/base.py b/greenpass/verifiers/base.py
new file mode 100644
index 0000000..c8ccdf6
--- /dev/null
+++ b/greenpass/verifiers/base.py
@@ -0,0 +1,6 @@
+class Verifier(object):
+ def __init__(self, data):
+ self.data = data
+
+ def verify(self):
+ raise NotImplementedError()
diff --git a/greenpass/verifiers/eu.py b/greenpass/verifiers/eu.py
index 20ac69e..2c89c2f 100644
--- a/greenpass/verifiers/eu.py
+++ b/greenpass/verifiers/eu.py
@@ -1,2 +1,6 @@
-class EuroVerifier(object):
- pass
+from .base import Verifier
+
+
+class EuroVerifier(Verifier):
+ def verify(self):
+ return False
diff --git a/greenpass/verifiers/il.py b/greenpass/verifiers/il.py
index c221e91..c457944 100644
--- a/greenpass/verifiers/il.py
+++ b/greenpass/verifiers/il.py
@@ -1,2 +1,10 @@
-class IsraeliVerifier(object):
- pass
+from .base import Verifier
+
+
+class IsraeliVerifier(Verifier):
+ def validate(self):
+ if not self.data.decode().startswith("GreenPass"):
+ raise Exception("Green pass QR code contains no signature to verify")
+
+ def verify(self):
+ return False