File tree Expand file tree Collapse file tree 2 files changed +17
-1
lines changed
Expand file tree Collapse file tree 2 files changed +17
-1
lines changed Original file line number Diff line number Diff line change @@ -640,6 +640,14 @@ def serialize(self, private=True):
640640 return res
641641
642642 def encryption_key (self , alg , ** kwargs ):
643+ """
644+ Return an encryption key as per
645+ http://openid.net/specs/openid-connect-core-1_0.html#Encryption
646+
647+ :param alg: encryption algorithm
648+ :param kwargs:
649+ :return: encryption key as byte string
650+ """
643651 if not self .key :
644652 self .deserialize ()
645653
Original file line number Diff line number Diff line change 1414
1515from jwkest .ecc import P256
1616from jwkest import long2intarr , b64e , as_unicode
17- from jwkest .jwk import DeSerializationNotPossible , SYMKey
17+ from jwkest .jwk import DeSerializationNotPossible , SYMKey , sha256_digest
1818from jwkest .jwk import load_jwks
1919from jwkest .jwk import jwk_wrap
2020from jwkest .jwk import import_rsa_key_from_file
@@ -412,6 +412,14 @@ def test_encryption_key():
412412 _v = as_unicode (b64e (_enc ))
413413 assert _v == 'NBBATS-5BakQ8FfKuPHpLLSGm8XNA_auVaes5LCVYBo'
414414
415+ ek = sha256_digest (
416+ 'YzE0MjgzNmRlODI5Yzg2MGYyZTRjNGE0NTZlMzBkZDRiNzJkNDA5MzUzNjM0ODkzM2E2MDk3ZWY' )[:16 ]
417+ assert as_unicode (b64e (ek )) == 'yf_UUkAFZ8Pn_prxPPgu9w'
418+
419+ sk = SYMKey (key = 'YzE0MjgzNmRlODI5Yzg2MGYyZTRjNGE0NTZlMzBkZDRiNzJkNDA5MzUzNjM0ODkzM2E2MDk3ZWY' )
420+ _enc = sk .encryption_key (alg = 'A128KW' )
421+ _v = as_unicode (b64e (_enc ))
422+ assert _v == as_unicode (b64e (ek ))
415423
416424if __name__ == "__main__" :
417425 test_private_key_from_jwk ()
You can’t perform that action at this time.
0 commit comments