# SPDX-License-Identifier: GPL-2.0-only # This file is part of Scapy # See https://scapy.net/ for more information # Copyright (C) Gabriel Potter """ Create a duplicate of the OpenSSL config to be able to use TLS < 1.2 This returns the path to this new config file. """ import os import re import subprocess import tempfile # Get OpenSSL config file OPENSSL_DIR = re.search( b"OPENSSLDIR: \"(.*)\"", subprocess.Popen( ["openssl", "version", "-d"], stdout=subprocess.PIPE ).communicate()[0] ).group(1).decode() OPENSSL_CONFIG = os.path.join(OPENSSL_DIR, 'openssl.cnf') # https://www.openssl.org/docs/manmaster/man5/config.html DATA = b""" openssl_conf = openssl_init [openssl_init] ssl_conf = ssl_configuration [ssl_configuration] system_default = tls_system_default [tls_system_default] MinProtocol = TLSv1 CipherString = DEFAULT:@SECLEVEL=0 Options = UnsafeLegacyRenegotiation """.strip() # Copy and edit with tempfile.NamedTemporaryFile(suffix=".cnf", delete=False) as fd: fd.write(DATA) print(fd.name)