summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_ssl.py
diff options
context:
space:
mode:
authorAntoine Pitrou <solipsis@pitrou.net>2011-12-20 09:13:40 (GMT)
committerAntoine Pitrou <solipsis@pitrou.net>2011-12-20 09:13:40 (GMT)
commit8abdb8abd856f0dbbb3120428f0bf1d282007c32 (patch)
tree051c7264f4bfc195f49136483c263808d4ef7e4b /Lib/test/test_ssl.py
parent3563b18c19c37902ecbc6ab28c92b3674a3eed32 (diff)
downloadcpython-8abdb8abd856f0dbbb3120428f0bf1d282007c32.zip
cpython-8abdb8abd856f0dbbb3120428f0bf1d282007c32.tar.gz
cpython-8abdb8abd856f0dbbb3120428f0bf1d282007c32.tar.bz2
Issue #13634: Add support for querying and disabling SSL compression.
Diffstat (limited to 'Lib/test/test_ssl.py')
-rw-r--r--Lib/test/test_ssl.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/Lib/test/test_ssl.py b/Lib/test/test_ssl.py
index 505550f..76fb3e7 100644
--- a/Lib/test/test_ssl.py
+++ b/Lib/test/test_ssl.py
@@ -100,6 +100,8 @@ class BasicSocketTests(unittest.TestCase):
ssl.CERT_REQUIRED
ssl.OP_CIPHER_SERVER_PREFERENCE
ssl.OP_SINGLE_ECDH_USE
+ if ssl.OPENSSL_VERSION_INFO >= (1, 0):
+ ssl.OP_NO_COMPRESSION
self.assertIn(ssl.HAS_SNI, {True, False})
def test_random(self):
@@ -1185,7 +1187,12 @@ else:
if connectionchatty:
if support.verbose:
sys.stdout.write(" client: closing connection.\n")
+ stats = {
+ 'compression': s.compression(),
+ 'cipher': s.cipher(),
+ }
s.close()
+ return stats
finally:
server.stop()
server.join()
@@ -1814,6 +1821,25 @@ else:
server.stop()
server.join()
+ def test_compression(self):
+ context = ssl.SSLContext(ssl.PROTOCOL_TLSv1)
+ context.load_cert_chain(CERTFILE)
+ stats = server_params_test(context, context,
+ chatty=True, connectionchatty=True)
+ if support.verbose:
+ sys.stdout.write(" got compression: {!r}\n".format(stats['compression']))
+ self.assertIn(stats['compression'], { None, 'ZLIB', 'RLE' })
+
+ @unittest.skipUnless(hasattr(ssl, 'OP_NO_COMPRESSION'),
+ "ssl.OP_NO_COMPRESSION needed for this test")
+ def test_compression_disabled(self):
+ context = ssl.SSLContext(ssl.PROTOCOL_TLSv1)
+ context.load_cert_chain(CERTFILE)
+ stats = server_params_test(context, context,
+ chatty=True, connectionchatty=True)
+ self.assertIs(stats['compression'], None)
+
+
def test_main(verbose=False):
if support.verbose:
plats = {