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):
396
396
"""
397
397
pass
398
398
399
- def get_key (self , ** kwargs ):
399
+ def get_key (self , private = False ):
400
400
"""
401
401
Get a keys useful for signing and/or encrypting information.
402
402
403
- :param kwargs:
403
+ :param private: Private key requested
404
404
:return: A key instance. This can be an RSA, EC or other
405
405
type of key.
406
406
"""
407
407
if not self .key :
408
408
self .deserialize ()
409
409
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
+
410
416
return self .key
411
417
412
418
def verify (self ):
@@ -1026,6 +1032,11 @@ def serialize(self, private=True):
1026
1032
res ["k" ] = as_unicode (b64e (bytes (self .key )))
1027
1033
return res
1028
1034
1035
+ def get_key (self , ** kwargs ):
1036
+ if not self .key :
1037
+ self .deserialize ()
1038
+ return self .key
1039
+
1029
1040
def encryption_key (self , alg , ** kwargs ):
1030
1041
"""
1031
1042
Return an encryption key as per
Original file line number Diff line number Diff line change @@ -294,6 +294,23 @@ def test_keys():
294
294
assert len (keyl ['ec' ]) == 1
295
295
296
296
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
+
297
314
def test_private_key_from_jwk ():
298
315
keys = []
299
316
You can’t perform that action at this time.
0 commit comments