def _alg_enc_test(self, alg, enc, receiver, jku, plaintext): print "============================================================" print " TEST for", alg, enc print "============================================================" #: Message message = Message( protected=Jwe(enc=enc, zip="DEF",), unprotected=Jwe(typ="text"), plaintext=_BE(plaintext) ) recipient = Recipient( header=Jwe(alg=alg, jku=jku), recipient=receiver ) message.add_recipient(recipient) texts = [ message.serialize_json(indent=2), message.serialize_compact(), ] for t in texts: print "--------------------------\n", t m = Message.from_token(t, sender=None, receiver=receiver) m.get_plaintext() self.assertEqual( len(message.recipients), len(m.recipients)) self.assertEqual(_BD(m.plaintext), plaintext) return message
def test_jwe_appendix2(self): ''' nose2 jose.tests.test_jwe.TestJwe.test_jwe_appendix2 ''' jwemsg = Message.from_token(JWE_A2.jwe_token, None, None) self.assertEqual(jwemsg.protected, JWE_A2.jwe_header_b64u) self.assertEqual(jwemsg.tag, JWE_A2.auth_tag_b64u) self.assertEqual(jwemsg.ciphertext, JWE_A2.ciphert_b64u) self.assertEqual(jwemsg.iv, JWE_A2.iv_b64u) self.assertEqual(len(jwemsg.recipients), 1) self.assertEqual(jwemsg.recipients[0].encrypted_key, JWE_A2.jwe_enc_key_b64u) self.assertEqual(jwemsg.recipients[0].header.alg, KeyEncEnum.RSA1_5) self.assertEqual(jwemsg.recipients[0].header.enc, EncEnum.A128CBC_HS256) jwk = Jwk(**JWE_A2.jwk_dict) print "Jwk", jwk.kty, jwk.length plaint = jwemsg.get_plaintext(jwk=jwk) self.assertEqual(jwemsg.plaintext, JWE_A2.plaint) self.assertEqual(jwemsg.cek, JWE_A2.cek) print plaint, jwemsg.to_json()
def test_multi(self): ''' nose2 jose.tests.test_jwe.TestJweMessage.test_multi ''' payload = "All you need is love." jku= "http://test.multi.com/jwkset", receiver = TestEntity( identifier="http://test.multi.com", jku=jku, ) fake = TestEntity( identifier="http://test.fake.com", jku=jku, ) enc = EncEnum.all()[0] for enc in EncEnum.all(): message = Message( protected=Jwe(enc=enc, zip="DEF",), unprotected=Jwe(typ="text"), plaintext=_BE(payload) ) for alg in KeyEncEnum.all(): if alg.single: continue recipient = Recipient( header=Jwe(alg=alg, jku=jku,), recipient=receiver ) message.add_recipient(recipient) json_message = message.serialize_json(indent=2) receivers = [fake, receiver] for me in receivers: message2 = Message.from_token( json_message, sender=None, receiver=me) self.assertEqual( len(message.recipients), len(message2.recipients)) try: print _BD(message2.plaintext), enc, me except: print traceback.format_exc()