Skip to content

Commit 6935298

Browse files
committed
feat: added support for EC2Key
1 parent 0be45af commit 6935298

File tree

2 files changed

+16
-6
lines changed

2 files changed

+16
-6
lines changed

pymdoccbor/mdoc/issuer.py

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import cbor2
33
import logging
44

5-
from pycose.keys import CoseKey
5+
from pycose.keys import CoseKey, EC2Key
66
from typing import Union
77

88
from pymdoccbor.mso.issuer import MsoIssuer
@@ -16,7 +16,7 @@ class MdocCborIssuer:
1616
MdocCborIssuer helper class to create a new mdoc
1717
"""
1818

19-
def __init__(self, private_key: Union[dict, CoseKey]):
19+
def __init__(self, private_key: Union[dict, EC2Key, CoseKey]):
2020
"""
2121
Create a new MdocCborIssuer instance
2222
@@ -28,11 +28,17 @@ def __init__(self, private_key: Union[dict, CoseKey]):
2828
self.version: str = '1.0'
2929
self.status: int = 0
3030

31-
if not private_key:
31+
if isinstance(private_key, dict):
32+
self.private_key = CoseKey.from_dict(private_key)
33+
elif isinstance(private_key, EC2Key):
34+
ec2_encoded = private_key.encode()
35+
ec2_decoded = CoseKey.decode(ec2_encoded)
36+
self.private_key = ec2_decoded
37+
elif isinstance(private_key, CoseKey):
38+
self.private_key = private_key
39+
else:
3240
raise MissingPrivateKey("You must provide a private key")
3341

34-
if private_key and isinstance(private_key, dict):
35-
self.private_key = CoseKey.from_dict(private_key)
3642

3743
self.signed :dict = {}
3844

pymdoccbor/mso/issuer.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ class MsoIssuer(MsoX509Fabric):
2626
def __init__(
2727
self,
2828
data: dict,
29-
private_key: Union[dict, CoseKey],
29+
private_key: Union[dict, EC2Key, CoseKey],
3030
digest_alg: str = settings.PYMDOC_HASHALG
3131
):
3232
"""
@@ -48,6 +48,10 @@ def __init__(
4848
self.private_key.kid = str(uuid.uuid4())
4949
elif private_key and isinstance(private_key, CoseKey):
5050
self.private_key = private_key
51+
elif private_key and isinstance(private_key, EC2Key):
52+
ec2_encoded = private_key.encode()
53+
ec2_decoded = CoseKey.decode(ec2_encoded)
54+
self.private_key = ec2_decoded
5155
else:
5256
raise MsoPrivateKeyRequired(
5357
"MSO Writer requires a valid private key"

0 commit comments

Comments
 (0)