Skip to content

Commit 24de72b

Browse files
committed
split into general and specific symmetric get_key()
1 parent f30e8e6 commit 24de72b

File tree

1 file changed

+13
-3
lines changed

1 file changed

+13
-3
lines changed

src/cryptojwt/jwk.py

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -396,20 +396,23 @@ def serialize(self, private=False):
396396
"""
397397
pass
398398

399-
def get_key(self, **kwargs):
399+
def get_key(self, private=False):
400400
"""
401401
Get a keys useful for signing and/or encrypting information.
402402
403-
:param kwargs:
403+
:param private: Private key requested
404404
:return: A key instance. This can be an RSA, EC or other
405405
type of key.
406406
"""
407407
if not self.key:
408408
self.deserialize()
409409

410-
if not kwargs.get('private', True) and hasattr(self.key, 'public_key'):
410+
if not private and hasattr(self.key, 'public_key'):
411411
return self.key.public_key()
412412

413+
if private and not hasattr(self.key, 'private_bytes'):
414+
raise ValueError("Not a private key")
415+
413416
return self.key
414417

415418
def verify(self):
@@ -1029,6 +1032,13 @@ def serialize(self, private=True):
10291032
res["k"] = as_unicode(b64e(bytes(self.key)))
10301033
return res
10311034

1035+
def get_key(self, private=False):
1036+
if not self.key:
1037+
self.deserialize()
1038+
if not private:
1039+
raise ValueError("Public key not available for symmetric keys")
1040+
return self.key
1041+
10321042
def encryption_key(self, alg, **kwargs):
10331043
"""
10341044
Return an encryption key as per

0 commit comments

Comments
 (0)