Skip to content

Commit 13d1a6b

Browse files
committed
Info
1 parent fb92cad commit 13d1a6b

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

src/jwkest/jwk.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff 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

tests/test_2_jwk.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
from jwkest.ecc import P256
1616
from jwkest import long2intarr, b64e, as_unicode
17-
from jwkest.jwk import DeSerializationNotPossible, SYMKey
17+
from jwkest.jwk import DeSerializationNotPossible, SYMKey, sha256_digest
1818
from jwkest.jwk import load_jwks
1919
from jwkest.jwk import jwk_wrap
2020
from 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

416424
if __name__ == "__main__":
417425
test_private_key_from_jwk()

0 commit comments

Comments
 (0)