Skip to content

Commit 2ac4498

Browse files
committed
add: AES-KW + {AES-CTR, AES-CBC} tests
1 parent 6388e32 commit 2ac4498

1 file changed

Lines changed: 102 additions & 0 deletions

File tree

tests/test_recipient.py

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -782,6 +782,108 @@ def test_recipients_open_with_invalid_rsk(self, rpk1):
782782
pytest.fail("decode() should fail.")
783783
assert "Failed to open." in str(err.value)
784784

785+
def test_recipients_a128ctr_aeskw(self, rsk1, rsk2):
786+
a128kw_key = COSEKey.from_symmetric_key(alg="A128KW")
787+
a128ctr_key = COSEKey.from_symmetric_key(alg="A128CTR", kid="A128CTR key")
788+
789+
# The sender side:
790+
r = Recipient.new(unprotected={"alg": "A128KW"}, sender_key=a128kw_key)
791+
sender = COSE.new(alg_auto_inclusion=True)
792+
encoded = sender.encode_and_encrypt(
793+
b"Hello world!",
794+
a128ctr_key,
795+
recipients=[r],
796+
)
797+
798+
# The recipient side:
799+
recipient = COSE.new()
800+
assert b"Hello world!" == recipient.decode(encoded, keys=[a128kw_key])
801+
802+
def test_recipients_a192ctr_aeskw(self, rsk1, rsk2):
803+
a192kw_key = COSEKey.from_symmetric_key(alg="A192KW")
804+
a192ctr_key = COSEKey.from_symmetric_key(alg="A192CTR", kid="A192CTR key")
805+
806+
# The sender side:
807+
r = Recipient.new(unprotected={"alg": "A192KW"}, sender_key=a192kw_key)
808+
sender = COSE.new(alg_auto_inclusion=True)
809+
encoded = sender.encode_and_encrypt(
810+
b"Hello world!",
811+
a192ctr_key,
812+
recipients=[r],
813+
)
814+
815+
# The recipient side:
816+
recipient = COSE.new()
817+
assert b"Hello world!" == recipient.decode(encoded, keys=[a192kw_key])
818+
819+
def test_recipients_a256_aeskw(self, rsk1, rsk2):
820+
a256kw_key = COSEKey.from_symmetric_key(alg="A256KW")
821+
a256ctr_key = COSEKey.from_symmetric_key(alg="A256CTR", kid="A256CTR key")
822+
823+
# The sender side:
824+
r = Recipient.new(unprotected={"alg": "A256KW"}, sender_key=a256kw_key)
825+
sender = COSE.new(alg_auto_inclusion=True)
826+
encoded = sender.encode_and_encrypt(
827+
b"Hello world!",
828+
a256ctr_key,
829+
recipients=[r],
830+
)
831+
832+
# The recipient side:
833+
recipient = COSE.new()
834+
assert b"Hello world!" == recipient.decode(encoded, keys=[a256kw_key])
835+
836+
def test_recipients_a128cbc_aeskw(self, rsk1, rsk2):
837+
a128kw_key = COSEKey.from_symmetric_key(alg="A128KW")
838+
a128cbc_key = COSEKey.from_symmetric_key(alg="A128CBC", kid="A128CBC key")
839+
840+
# The sender side:
841+
r = Recipient.new(unprotected={"alg": "A128KW"}, sender_key=a128kw_key)
842+
sender = COSE.new(alg_auto_inclusion=True)
843+
encoded = sender.encode_and_encrypt(
844+
b"Hello world!",
845+
a128cbc_key,
846+
recipients=[r],
847+
)
848+
849+
# The recipient side:
850+
recipient = COSE.new()
851+
assert b"Hello world!" == recipient.decode(encoded, keys=[a128kw_key])
852+
853+
def test_recipients_a192cbc_aeskw(self, rsk1, rsk2):
854+
a192kw_key = COSEKey.from_symmetric_key(alg="A192KW")
855+
a192cbc_key = COSEKey.from_symmetric_key(alg="A192CBC", kid="A192CBC key")
856+
857+
# The sender side:
858+
r = Recipient.new(unprotected={"alg": "A192KW"}, sender_key=a192kw_key)
859+
sender = COSE.new(alg_auto_inclusion=True)
860+
encoded = sender.encode_and_encrypt(
861+
b"Hello world!",
862+
a192cbc_key,
863+
recipients=[r],
864+
)
865+
866+
# The recipient side:
867+
recipient = COSE.new()
868+
assert b"Hello world!" == recipient.decode(encoded, keys=[a192kw_key])
869+
870+
def test_recipients_a256cbc_aeskw(self, rsk1, rsk2):
871+
a256kw_key = COSEKey.from_symmetric_key(alg="A256KW")
872+
a256cbc_key = COSEKey.from_symmetric_key(alg="A256CBC", kid="A256CBC key")
873+
874+
# The sender side:
875+
r = Recipient.new(unprotected={"alg": "A256KW"}, sender_key=a256kw_key)
876+
sender = COSE.new(alg_auto_inclusion=True)
877+
encoded = sender.encode_and_encrypt(
878+
b"Hello world!",
879+
a256cbc_key,
880+
recipients=[r],
881+
)
882+
883+
# The recipient side:
884+
recipient = COSE.new()
885+
assert b"Hello world!" == recipient.decode(encoded, keys=[a256kw_key])
886+
785887
def test_recipients_a128ctr_hpke(self, rsk1, rsk2):
786888
enc_key = COSEKey.from_symmetric_key(alg="A128CTR")
787889
rpk = COSEKey.from_jwk(

0 commit comments

Comments
 (0)