|
12 | 12 | from pymdoccbor.mso.issuer import MsoIssuer |
13 | 13 | from pymdoccbor.tests.pid_data import PID_DATA |
14 | 14 | from pymdoccbor.tests.cert_data import CERT_DATA |
15 | | -from pymdoccbor.tests.pkey import PKEY, PKEY_ED25519 |
| 15 | +from pymdoccbor.tests.pkey import PKEY, PKEY_ED25519, PKEY_RSA |
16 | 16 |
|
17 | 17 |
|
18 | 18 | def extract_mso(mdoc:dict): |
@@ -121,6 +121,49 @@ def test_mdoc_issuer_EdDSA(): |
121 | 121 | mdoci.dump() |
122 | 122 | mdoci.dumps() |
123 | 123 |
|
| 124 | + # check mso content for status list |
| 125 | + mso = extract_mso(mdoc) |
| 126 | + status_list = mso["status"]["status_list"] |
| 127 | + assert status_list["idx"] == 0 |
| 128 | + assert status_list["uri"] == "https://issuer.com/statuslists" |
| 129 | + cert_bytes = status_list["certificate"] |
| 130 | + cert:Certificate = load_der_x509_certificate(cert_bytes) |
| 131 | + assert "Test ASL Issuer" in cert.subject.rfc4514_string(), "ASL is not signed with the expected certificate" |
| 132 | + |
| 133 | +def test_mdoc_issuer_RSA(): |
| 134 | + validity = {"issuance_date": "2025-01-17", "expiry_date": "2025-11-13" } |
| 135 | + mdoci = MdocCborIssuer( |
| 136 | + private_key=PKEY, |
| 137 | + alg = "ES256", |
| 138 | + cert_info=CERT_DATA |
| 139 | + ) |
| 140 | + with open("pymdoccbor/tests/certs/fake-cert.pem", "rb") as file: |
| 141 | + fake_cert_file = file.read() |
| 142 | + asl_signing_cert = x509.load_pem_x509_certificate(fake_cert_file) |
| 143 | + _asl_signing_cert = asl_signing_cert.public_bytes(getattr(serialization.Encoding, "DER")) |
| 144 | + status_list = { |
| 145 | + "status_list": { |
| 146 | + "idx": 0, |
| 147 | + "uri": "https://issuer.com/statuslists", |
| 148 | + "certificate": _asl_signing_cert, |
| 149 | + } |
| 150 | + } |
| 151 | + mdoc = mdoci.new( |
| 152 | + doctype="eu.europa.ec.eudiw.pid.1", |
| 153 | + data=PID_DATA, |
| 154 | + devicekeyinfo=PKEY_RSA, |
| 155 | + validity=validity, |
| 156 | + revocation=status_list |
| 157 | + ) |
| 158 | + |
| 159 | + mdocp = MdocCbor() |
| 160 | + aa = cbor2.dumps(mdoc) |
| 161 | + mdocp.loads(aa) |
| 162 | + assert mdocp.verify() is True |
| 163 | + |
| 164 | + mdoci.dump() |
| 165 | + mdoci.dumps() |
| 166 | + |
124 | 167 | # check mso content for status list |
125 | 168 | mso = extract_mso(mdoc) |
126 | 169 | status_list = mso["status"]["status_list"] |
|
0 commit comments