Skip to content

Commit ef2eb24

Browse files
committed
feat: added status descriptor dict
1 parent c0b6467 commit ef2eb24

File tree

2 files changed

+18
-1
lines changed

2 files changed

+18
-1
lines changed

pymdoccbor/mdoc/exceptions.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,6 @@ class NoSignedDocumentProvided(Exception):
99

1010
class MissingIssuerAuth(Exception):
1111
pass
12+
13+
class InvalidStatusDescriptor(Exception):
14+
pass

pymdoccbor/mdoc/issuer.py

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
from pymdoccbor.mso.issuer import MsoIssuer
1212

1313
from cbor_diag import cbor2diag
14+
from pymdoccbor.mdoc.exceptions import InvalidStatusDescriptor
1415

1516

1617
logger = logging.getLogger("pymdoccbor")
@@ -74,7 +75,8 @@ def new(
7475
validity: dict = None,
7576
devicekeyinfo: Union[dict, CoseKey, str] = None,
7677
cert_path: str = None,
77-
revocation: dict = None
78+
revocation: dict = None,
79+
status: dict = None
7880
) -> dict:
7981
"""
8082
create a new mdoc with signed mso
@@ -85,6 +87,7 @@ def new(
8587
:param devicekeyinfo: Union[dict, CoseKey, str]: device key info
8688
:param cert_path: str: path to the certificate
8789
:param revocation: dict: revocation status dict it may include status_list and identifier_list keys
90+
:param status: dict: status dict that includes the status list's uri and the idx following the "https://datatracker.ietf.org/doc/draft-ietf-oauth-status-list" specification
8891
8992
:return: dict: signed mdoc
9093
"""
@@ -188,6 +191,17 @@ def new(
188191
"status": self.status,
189192
}
190193

194+
if status:
195+
if not "status_list" in status:
196+
raise InvalidStatusDescriptor("status_list is required")
197+
198+
if not "uri" in status["status_list"]:
199+
raise InvalidStatusDescriptor("uri is required")
200+
if not "idx" in status["status_list"]:
201+
raise InvalidStatusDescriptor("idx is required")
202+
203+
res["status"] = status
204+
191205
logger.debug(f"MSO diagnostic notation: {cbor2diag(mso_cbor)}")
192206

193207
self.signed = res

0 commit comments

Comments
 (0)