Example #1
0
    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()
Example #2
0
    def test_message_dir(self):
        '''
        nose2 jose.tests.test_jwe.TestJweMessage.test_message_dir
        '''
        plaintext = "Everybody wants to rule the world."
        
        jku= "http://test.dir.com/jwkset",
        receiver =  TestEntity(
            identifier="http://test.dir.com", jku=jku, 
        )

        for alg in [
            KeyEncEnum.DIR,
        ]:
            for enc in EncEnum.all():
                self._alg_enc_test(alg, enc, receiver, jku, plaintext)
Example #3
0
    def test_message_aeskw(self):
        '''
        nose2 jose.tests.test_jwe.TestJweMessage.test_message_aeskw
        '''
        plaintext = "Everybody wants to rule the world."

        jku= "http://test.rsa.com/jwkset",
        receiver =  TestEntity(
            identifier="http://test.rsa.com",
            jku=jku, 
            jwkset=JwkSet()
        )

        for alg in [KeyEncEnum.A128KW, KeyEncEnum.A192KW, KeyEncEnum.A256KW]:
            for enc in EncEnum.all():
                self._alg_enc_test(alg, enc, receiver, jku, plaintext)
Example #4
0
File: gcm.py Project: hdknr/jose
    _enc = GCMA192


class GCMA256KW(GcmKeyEncryptor):
    _enc = GCMA192


if __name__ == '__main__':

    from jose.jwa.encs import KeyEncEnum, EncEnum

    encs = ['A128GCM', 'A192GCM', 'A256GCM']
    algs = ['A128GCMKW', 'A192GCMKW', 'A256GCMKW']

    for e in encs:
        enc = EncEnum.create(e).encryptor
        cek, iv = enc.create_key_iv()
        assert len(cek) == enc._KEY_LEN
        assert len(iv) == enc._IV_LEN
        print(enc.__name__)
        print("CEK =", base64.urlsafe_b64encode(cek))
        print("IV=", base64.urlsafe_b64encode(iv))

    import itertools
    from jose.jwk import Jwk
    from jose.jwe import Jwe
    jwk = Jwk.generate(kty="oct")
    for a, e in list(itertools.product(algs, encs)):
        jwe = Jwe(
            alg=KeyEncEnum.create(a),
            enc=EncEnum.create(e),
Example #5
0
File: jwe.py Project: hdknr/jose
 def from_json(cls, json_str, base=None):
     obj = BaseObject.from_json(json_str, cls)
     obj.enc = EncEnum.create(obj.enc)
     obj.zip = ZipEnum.create(obj.zip)
     return obj