Skip to content

Commit 967727a

Browse files
committed
Fix missing apu/apv #159
1 parent e77cd91 commit 967727a

File tree

2 files changed

+22
-1
lines changed

2 files changed

+22
-1
lines changed

src/cryptojwt/jwe/jwe_ec.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ def dec_setup(self, token, key=None, **kwargs):
138138
raise Exception("Ephemeral Public Key Missing in ECDH-ES Computation")
139139

140140
epubkey = ECKey(**self.headers["epk"])
141-
apu = apv = ""
141+
apu = apv = b""
142142
if "apu" in self.headers:
143143
apu = b64d(self.headers["apu"].encode())
144144
if "apv" in self.headers:

tests/test_07_jwe.py

+21
Original file line numberDiff line numberDiff line change
@@ -443,6 +443,27 @@ def test_ecdh_encrypt_decrypt_direct_key():
443443
assert msg == plain
444444

445445

446+
def test_ecdh_encrypt_decrypt_direct_key_wo_apu_apv():
447+
# Alice starts of
448+
jwenc = JWE_EC(plain, alg="ECDH-ES", enc="A128GCM")
449+
cek, encrypted_key, iv, params, ret_epk = jwenc.enc_setup(plain, key=eck_bob, apu=b"", apv=b"")
450+
451+
# Remove agreement information about sending and receiving parties
452+
del params["apv"]
453+
del params["apu"]
454+
455+
kwargs = {"params": params, "cek": cek, "iv": iv, "encrypted_key": encrypted_key}
456+
jwt = jwenc.encrypt(**kwargs)
457+
458+
# Bob decrypts
459+
ret_jwe = factory(jwt, alg="ECDH-ES", enc="A128GCM")
460+
jwdec = JWE_EC()
461+
jwdec.dec_setup(ret_jwe.jwt, key=bob)
462+
msg = jwdec.decrypt(ret_jwe.jwt)
463+
464+
assert msg == plain
465+
466+
446467
def test_ecdh_encrypt_decrypt_keywrapped_key():
447468
jwenc = JWE_EC(plain, alg="ECDH-ES+A128KW", enc="A128GCM")
448469
cek, encrypted_key, iv, params, ret_epk = jwenc.enc_setup(plain, key=eck_bob)

0 commit comments

Comments
 (0)