Skip to content

Commit 3392e5e

Browse files
committed
add: failure case for non AEAD + len(protected)
1 parent 74d2e76 commit 3392e5e

1 file changed

Lines changed: 19 additions & 0 deletions

File tree

tests/test_recipient.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -797,6 +797,25 @@ def test_recipients_aes(self, kw_alg, enc_alg):
797797
kw_key = COSEKey.from_symmetric_key(alg=kw_alg)
798798
enc_key = COSEKey.from_symmetric_key(alg=enc_alg)
799799

800+
# The sender side (must fail):
801+
with pytest.raises(ValueError) as err:
802+
r = Recipient.new(protected={"alg": kw_alg}, sender_key=kw_key)
803+
pytest.fail("encode_and_encrypt() should fail.")
804+
assert "The protected header must be a zero-length string in key wrap mode with an AE algorithm." in str(err.value)
805+
806+
# The sender side (must fail):
807+
r = Recipient.new(unprotected={"alg": kw_alg}, sender_key=kw_key)
808+
sender = COSE.new(alg_auto_inclusion=True)
809+
with pytest.raises(ValueError) as err:
810+
encoded = sender.encode_and_encrypt(
811+
b"Hello world!",
812+
enc_key,
813+
protected={"kid": "actually-not-protected"},
814+
recipients=[r],
815+
)
816+
pytest.fail("encode_and_encrypt() should fail.")
817+
assert "protected header MUST be zero-length" in str(err.value)
818+
800819
# The sender side:
801820
r = Recipient.new(unprotected={"alg": kw_alg}, sender_key=kw_key)
802821
sender = COSE.new(alg_auto_inclusion=True)

0 commit comments

Comments
 (0)