Skip to content

Commit 0be45af

Browse files
committed
tests: added tests
1 parent e8686ee commit 0be45af

File tree

2 files changed

+125
-0
lines changed

2 files changed

+125
-0
lines changed
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
import os
2+
from pymdoccbor.mdoc.verifier import MobileDocument
3+
from pymdoccbor.mdoc.issuer import MdocCborIssuer
4+
from pymdoccbor.tests.micov_data import MICOV_DATA
5+
6+
PKEY = {
7+
'KTY': 'EC2',
8+
'CURVE': 'P_256',
9+
'ALG': 'ES256',
10+
'D': os.urandom(32),
11+
'KID': b"demo-kid"
12+
}
13+
14+
mdoc = MdocCborIssuer(PKEY)
15+
mdoc.new(
16+
data=MICOV_DATA,
17+
devicekeyinfo=PKEY, # TODO
18+
doctype="org.micov.medical.1"
19+
)
20+
21+
def test_verifier_must_fail_document_type():
22+
try:
23+
MobileDocument(None, None)
24+
except Exception as e:
25+
assert str(e) == "You must provide a document type"
26+
27+
def test_verifier_must_fail_issuer_signed():
28+
try:
29+
MobileDocument("org.micov.medical.1", None)
30+
except Exception as e:
31+
assert str(e) == "You must provide a signed document"
32+
33+
def test_mobile_document():
34+
document = mdoc.signed["documents"][0]
35+
doc = MobileDocument(**document)
36+
37+
assert doc.doctype == "org.micov.medical.1"
38+
assert doc.issuersigned
39+
40+
def test_mobile_document_dump():
41+
document = mdoc.signed["documents"][0]
42+
doc = MobileDocument(**document)
43+
44+
dump = doc.dump()
45+
assert dump
46+
assert isinstance(dump, bytes)
47+
assert len(dump) > 0
48+
49+
def test_mobile_document_dumps():
50+
document = mdoc.signed["documents"][0]
51+
doc = MobileDocument(**document)
52+
53+
dumps = doc.dumps()
54+
assert dumps
55+
assert isinstance(dumps, bytes)
56+
assert len(dumps) > 0
57+
58+
def test_mobile_document_verify():
59+
document = mdoc.signed["documents"][0]
60+
doc = MobileDocument(**document)
61+
62+
#assert mdoc.verify() == True
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
import os
2+
from pymdoccbor.mso.verifier import MsoVerifier
3+
from pymdoccbor.mdoc.issuer import MdocCborIssuer
4+
from pymdoccbor.tests.micov_data import MICOV_DATA
5+
from pycose.messages import CoseMessage
6+
7+
PKEY = {
8+
'KTY': 'EC2',
9+
'CURVE': 'P_256',
10+
'ALG': 'ES256',
11+
'D': os.urandom(32),
12+
'KID': b"demo-kid"
13+
}
14+
15+
mdoc = MdocCborIssuer(PKEY)
16+
mdoc.new(
17+
data=MICOV_DATA,
18+
devicekeyinfo=PKEY, # TODO
19+
doctype="org.micov.medical.1"
20+
)
21+
22+
def test_mso_verifier_fail():
23+
try:
24+
MsoVerifier(None)
25+
except Exception as e:
26+
assert str(e) == "MsoParser only supports raw bytes and list, a <class 'NoneType'> was provided"
27+
28+
def test_mso_verifier_creation():
29+
issuerAuth = mdoc.signed["documents"][0]["issuerSigned"]["issuerAuth"]
30+
31+
msov = MsoVerifier(issuerAuth)
32+
33+
assert isinstance(msov.object, CoseMessage)
34+
35+
def test_mso_verifier_verify_signatures():
36+
issuerAuth = mdoc.signed["documents"][0]["issuerSigned"]["issuerAuth"]
37+
38+
msov = MsoVerifier(issuerAuth)
39+
40+
assert msov.verify_signature()
41+
42+
def test_mso_verifier_payload_as_cbor():
43+
issuerAuth = mdoc.signed["documents"][0]["issuerSigned"]["issuerAuth"]
44+
45+
msov = MsoVerifier(issuerAuth)
46+
47+
cbor = msov.payload_as_cbor
48+
49+
assert cbor
50+
assert cbor["version"] == "1.0"
51+
assert cbor["digestAlgorithm"] == "sha256"
52+
assert cbor["valueDigests"]["org.micov.medical.1"]
53+
54+
def test_payload_as_raw():
55+
issuerAuth = mdoc.signed["documents"][0]["issuerSigned"]["issuerAuth"]
56+
57+
msov = MsoVerifier(issuerAuth)
58+
59+
raw = msov.payload_as_raw
60+
61+
assert raw
62+
assert isinstance(raw, bytes)
63+
assert len(raw) > 0

0 commit comments

Comments
 (0)