コード例 #1
0
ファイル: test_jwe.py プロジェクト: hdknr/jose
    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
コード例 #2
0
ファイル: test_jwe.py プロジェクト: hdknr/jose
    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()
コード例 #3
0
ファイル: test_jwe.py プロジェクト: hdknr/jose
    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()