def getContext(self): """Creates a context. This will make contexts using ``SSLv23_METHOD``. This is because OpenSSL thought it would be a good idea to have ``TLSv1_METHOD`` mean "only use TLSv1.0" -- specifically, it disables TLSv1.2. Since we don't want to use SSLv2 and v3, we set OP_NO_SSLv2|OP_NO_SSLv3. Additionally, we set OP_SINGLE_DH_USE. """ ctx = Context(SSLv23_METHOD) ctx.use_certificate_file("cert.pem") ctx.use_privatekey_file("key.pem") ctx.load_tmp_dh("dhparam.pem") ctx.set_options(OP_SINGLE_DH_USE|OP_NO_SSLv2|OP_NO_SSLv3) ctx.set_verify(VERIFY_PEER, self._verify) return ctx
def main(): port = socket() port.bind(('', 0)) port.listen(5) client = socket() client.setblocking(False) client.connect_ex(port.getsockname()) client.setblocking(True) server = port.accept()[0] clientCtx = Context(TLSv1_METHOD) clientCtx.set_cipher_list('ALL:ADH') clientCtx.load_tmp_dh('dhparam.pem') sslClient = Connection(clientCtx, client) sslClient.set_connect_state() serverCtx = Context(TLSv1_METHOD) serverCtx.set_cipher_list('ALL:ADH') serverCtx.load_tmp_dh('dhparam.pem') sslServer = Connection(serverCtx, server) sslServer.set_accept_state() t1 = Thread(target=send, args=(sslClient,)) t2 = Thread(target=send, args=(sslServer,)) t3 = Thread(target=recv, args=(sslClient,)) t4 = Thread(target=recv, args=(sslServer,)) t1.start() t2.start() t3.start() t4.start() t1.join() t2.join() t3.join() t4.join()
def main(): port = socket() port.bind(("", 0)) port.listen(5) client = socket() client.setblocking(False) client.connect_ex(port.getsockname()) client.setblocking(True) server = port.accept()[0] clientCtx = Context(TLSv1_METHOD) clientCtx.set_cipher_list("ALL:ADH") clientCtx.load_tmp_dh("dhparam.pem") sslClient = Connection(clientCtx, client) sslClient.set_connect_state() serverCtx = Context(TLSv1_METHOD) serverCtx.set_cipher_list("ALL:ADH") serverCtx.load_tmp_dh("dhparam.pem") sslServer = Connection(serverCtx, server) sslServer.set_accept_state() t1 = Thread(target=send, args=(sslClient, )) t2 = Thread(target=send, args=(sslServer, )) t3 = Thread(target=recv, args=(sslClient, )) t4 = Thread(target=recv, args=(sslServer, )) t1.start() t2.start() t3.start() t4.start() t1.join() t2.join() t3.join() t4.join()