Exemple #1
0
 def test_crypto_container_increments_sequence_number(self):
     client_seq_num = self.tls_ctx.crypto.session.key.client.seq_num
     server_seq_num = self.tls_ctx.crypto.session.key.server.seq_num
     tlsc.CryptoContainer(self.tls_ctx)
     client_seq_num += 1
     self.assertEqual(self.tls_ctx.crypto.session.key.client.seq_num, client_seq_num)
     self.assertEqual(self.tls_ctx.crypto.session.key.server.seq_num, server_seq_num)
     self.tls_ctx.client = False
     tlsc.CryptoContainer(self.tls_ctx)
     self.assertEqual(self.tls_ctx.crypto.session.key.client.seq_num, client_seq_num)
     self.assertEqual(self.tls_ctx.crypto.session.key.server.seq_num, server_seq_num + 1)
 def test_generated_mac_can_be_overiden(self):
     data = b"C" * 102
     self.tls_ctx.client = False
     crypto_container = tlsc.CryptoContainer(self.tls_ctx, data)
     initial_mac = crypto_container.mac
     crypto_container.hmac(data_len=1024)
     self.assertNotEqual(initial_mac, crypto_container.mac)
Exemple #3
0
 def test_tls_1_1_and_above_has_a_random_explicit_iv_with_block_cipher(self):
     data = b"C" * 102
     self._do_kex(tls.TLSVersion.TLS_1_1)
     crypto_container = tlsc.CryptoContainer(self.tls_ctx, data)
     self.assertNotEqual(crypto_container.explicit_iv, "")
     self.assertEqual(len(crypto_container.explicit_iv), AES.block_size)
     self.assertTrue(str(crypto_container).startswith(crypto_container.explicit_iv))
Exemple #4
0
 def test_crypto_container_returns_ciphertext(self):
     data = b"C" * 102
     self.tls_ctx.client = False
     crypto_container = tlsc.CryptoContainer(self.tls_ctx, data)
     cleartext = str(crypto_container)
     ciphertext = crypto_container.encrypt()
     self.assertEqual(cleartext, self.tls_ctx.crypto.server.dec.decrypt(ciphertext))
 def test_crypto_container_str_returns_cipher_payload(self):
     data = b"abcde"
     crypto_container = tlsc.CryptoContainer(self.tls_ctx, data)
     padding = crypto_container.padding
     self.assertEqual(
         "%s%s%s%s" %
         (data, crypto_container.mac, padding, chr(len(padding))),
         str(crypto_container))
 def test_tls_1_0_and_below_has_no_explicit_iv(self):
     data = b"C" * 102
     crypto_container = tlsc.CryptoContainer(self.tls_ctx, data)
     self.assertEqual(crypto_container.explicit_iv, "")
     self.assertTrue(str(crypto_container).startswith(data))
 def test_cipher_payload_is_block_size_aligned(self):
     data = b"A" * 1025
     crypto_container = tlsc.CryptoContainer(self.tls_ctx, data)
     self.assertTrue(len(crypto_container) % AES.block_size == 0)