File tree Expand file tree Collapse file tree 2 files changed +30
-2
lines changed
Expand file tree Collapse file tree 2 files changed +30
-2
lines changed Original file line number Diff line number Diff line change @@ -396,17 +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 private and hasattr (self .key , 'public_key' ):
411+ return self .key .public_key ()
412+
413+ if private and not hasattr (self .key , 'private_bytes' ):
414+ raise ValueError ("Not a private key" )
415+
410416 return self .key
411417
412418 def verify (self ):
@@ -1026,6 +1032,11 @@ def serialize(self, private=True):
10261032 res ["k" ] = as_unicode (b64e (bytes (self .key )))
10271033 return res
10281034
1035+ def get_key (self , ** kwargs ):
1036+ if not self .key :
1037+ self .deserialize ()
1038+ return self .key
1039+
10291040 def encryption_key (self , alg , ** kwargs ):
10301041 """
10311042 Return an encryption key as per
Original file line number Diff line number Diff line change @@ -294,6 +294,23 @@ def test_keys():
294294 assert len (keyl ['ec' ]) == 1
295295
296296
297+ def test_get_key ():
298+ ec_key = generate_private_key (NIST2SEC ['P-256' ], default_backend ())
299+ asym_private_key = ECKey (key = ec_key )
300+ asym_public_key = ECKey (key = asym_private_key .key .public_key ())
301+ sym_key = SYMKey (key = 'mekmitasdigoat' , kid = 'xyzzy' )
302+
303+ asym_private_key .get_key (private = True )
304+ asym_private_key .get_key (private = False )
305+
306+ with pytest .raises (ValueError ):
307+ asym_public_key .get_key (private = True )
308+ asym_public_key .get_key (private = False )
309+
310+ sym_key .get_key (private = True )
311+ sym_key .get_key (private = False )
312+
313+
297314def test_private_key_from_jwk ():
298315 keys = []
299316
You can’t perform that action at this time.
0 commit comments