Beispiel #1
0
    def test_unpack_signature_error(self):
        packed_msg = pack_msg(self.data, self.dest, self.source, self.pub_key,
                              self.priv_key)

        packed_msg.update(source='changed')

        with self.assertRaises(rsa.pkcs1.VerificationError):
            unpack_msg(packed_msg, self.pub_key, self.priv_key)
Beispiel #2
0
    def test_unpack_without_data_and_keys(self):
        packed_msg = pack_msg({}, self.dest, self.source, self.pub_key,
                              self.priv_key)
        self.assertIn('source', packed_msg)
        self.assertIn('destination', packed_msg)
        self.assertIn('key', packed_msg)
        self.assertIn('signature', packed_msg)
        self.assertIn('enveloped_data', packed_msg)

        with self.assertRaises(ValueError) as e:
            unpack_msg(packed_msg, symmetric_key=self.sym_key)

        unpacked_msg = unpack_msg(packed_msg,
                                  pub_key=self.pub_key,
                                  priv_key=self.priv_key,
                                  symmetric_key=self.sym_key)

        self.assertDictEqual({}, unpacked_msg)
Beispiel #3
0
    def test_unpack_without_data_and_without_keys(self):
        packed_msg = pack_msg({}, self.dest, self.source)
        self.assertIn('source', packed_msg)
        self.assertIn('destination', packed_msg)
        self.assertNotIn('key', packed_msg)
        self.assertNotIn('signature', packed_msg)
        self.assertIn('enveloped_data', packed_msg)

        unpacked_msg = unpack_msg(packed_msg)

        self.assertDictEqual({}, unpacked_msg)
Beispiel #4
0
    def test_unpack_with_symmetric_key_as_parameter_and_cipher_in_msg(
            self, mocked_generate_key):
        mocked_generate_key.return_value = self.sym_key
        packed_msg = pack_msg(self.data, self.dest, self.source, self.pub_key,
                              self.priv_key)
        self.assertIn('source', packed_msg)
        self.assertIn('destination', packed_msg)
        self.assertIn('key', packed_msg)
        self.assertIn('signature', packed_msg)
        self.assertIn('enveloped_data', packed_msg)

        with self.assertRaises(ValueError) as e:
            unpack_msg(packed_msg, symmetric_key=self.sym_key)

        unpacked_msg = unpack_msg(packed_msg,
                                  pub_key=self.pub_key,
                                  priv_key=self.priv_key,
                                  symmetric_key=self.sym_key)

        self.assertDictEqual(self.data, unpacked_msg)
Beispiel #5
0
    def test_pack_unpack_with_symmetric_key_force_key(self):
        packed_msg = pack_msg(self.data,
                              self.dest,
                              self.source,
                              self.pub_key,
                              self.priv_key,
                              symmetric_key=self.sym_key,
                              add_key=True)
        self.assertIn('source', packed_msg)
        self.assertIn('destination', packed_msg)
        self.assertIn('key', packed_msg)
        self.assertIn('signature', packed_msg)
        self.assertIn('enveloped_data', packed_msg)

        with self.assertRaises(ValueError) as e:
            unpacked_msg = unpack_msg(packed_msg, symmetric_key=self.sym_key)

        unpacked_msg = unpack_msg(packed_msg,
                                  pub_key=self.pub_key,
                                  priv_key=self.priv_key)

        self.assertDictEqual(self.data, unpacked_msg)
Beispiel #6
0
    def test_pack_unpack_msg_with_keys(self):
        packed_msg = pack_msg(self.data, self.dest, self.source, self.pub_key,
                              self.priv_key)

        self.assertIn('source', packed_msg)
        self.assertIn('destination', packed_msg)
        self.assertIn('key', packed_msg)
        self.assertIn('signature', packed_msg)
        self.assertIn('enveloped_data', packed_msg)

        unpacked_msg = unpack_msg(packed_msg, self.pub_key, self.priv_key)

        self.assertDictEqual(self.data, unpacked_msg)
Beispiel #7
0
    def test_pack_unpack_with_symmetric_key_encrypted(self):
        sym_key_encrypted = rsa.encrypt(self.sym_key, self.pub_key)
        packed_msg = pack_msg(self.data,
                              self.dest,
                              self.source,
                              self.pub_key,
                              self.priv_key,
                              cipher_key=sym_key_encrypted)
        self.assertIn('source', packed_msg)
        self.assertIn('destination', packed_msg)
        self.assertNotIn('key', packed_msg)
        self.assertIn('signature', packed_msg)
        self.assertIn('enveloped_data', packed_msg)

        with self.assertRaises(ValueError) as e:
            unpack_msg(packed_msg, symmetric_key=self.sym_key)

        unpacked_msg = unpack_msg(packed_msg,
                                  pub_key=self.pub_key,
                                  priv_key=self.priv_key,
                                  cipher_key=sym_key_encrypted)

        self.assertDictEqual(self.data, unpacked_msg)
Beispiel #8
0
    def test_pack_unpack_with_symmetric_key_no_rsa_keys(self):
        packed_msg = pack_msg(self.data,
                              self.dest,
                              self.source,
                              symmetric_key=self.sym_key)
        self.assertIn('source', packed_msg)
        self.assertIn('destination', packed_msg)
        self.assertNotIn('key', packed_msg)
        self.assertNotIn('signature', packed_msg)
        self.assertIn('enveloped_data', packed_msg)

        unpacked_msg = unpack_msg(packed_msg, symmetric_key=self.sym_key)

        self.assertDictEqual(self.data, unpacked_msg)
Beispiel #9
0
    def test_pack_unpack_msg_with_keys_change_dict_order(self):
        packed_msg = pack_msg(self.data, self.dest, self.source, self.pub_key,
                              self.priv_key)

        self.assertIn('source', packed_msg)
        self.assertIn('destination', packed_msg)
        self.assertIn('key', packed_msg)
        self.assertIn('signature', packed_msg)
        self.assertIn('enveloped_data', packed_msg)

        packed_msg = OrderedDict(packed_msg)
        ed = packed_msg.pop('enveloped_data')
        packed_msg['enveloped_data'] = ed
        unpacked_msg = unpack_msg(packed_msg, self.pub_key, self.priv_key)

        self.assertDictEqual(self.data, unpacked_msg)