summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Gaynor <alex.gaynor@gmail.com>2019-05-19 22:21:43 -0400
committerPaul Kehrer <paul.l.kehrer@gmail.com>2019-05-19 22:21:43 -0400
commitf0455d2cd029ee12f338a1ed088d849e63d299f9 (patch)
tree9cc48f78c36f3f67789e5d4b8bb6542a4a1263ac
parentdc44dac7eff9b119cceff511a79eb81ea9b0a918 (diff)
downloadpyopenssl-git-f0455d2cd029ee12f338a1ed088d849e63d299f9.tar.gz
Delete examples/simple/ (#837)
* Delete README * Delete client.py * Delete server.py
-rw-r--r--examples/simple/README3
-rw-r--r--examples/simple/client.py62
-rw-r--r--examples/simple/server.py119
3 files changed, 0 insertions, 184 deletions
diff --git a/examples/simple/README b/examples/simple/README
deleted file mode 100644
index a072998..0000000
--- a/examples/simple/README
+++ /dev/null
@@ -1,3 +0,0 @@
-To use this example, first generate keys and certificates for both the
-client and the server. You can do this with the script in the directory
-above this one, mk_simple_certs.py.
diff --git a/examples/simple/client.py b/examples/simple/client.py
deleted file mode 100644
index 5662122..0000000
--- a/examples/simple/client.py
+++ /dev/null
@@ -1,62 +0,0 @@
-# -*- coding: latin-1 -*-
-#
-# Copyright (C) AB Strakt
-# Copyright (C) Jean-Paul Calderone
-# See LICENSE for details.
-
-"""
-Simple SSL client, using blocking I/O
-"""
-
-import os
-import socket
-import sys
-
-from OpenSSL import SSL, crypto
-
-
-def verify_cb(conn, cert, errnum, depth, ok):
- certsubject = crypto.X509Name(cert.get_subject())
- commonname = certsubject.commonName
- print('Got certificate: ' + commonname)
- return ok
-
-
-if len(sys.argv) < 3:
- print('Usage: python client.py HOST PORT')
- sys.exit(1)
-
-
-dir = os.path.dirname(sys.argv[0])
-if dir == '':
- dir = os.curdir
-
-
-# Initialize context
-ctx = SSL.Context(SSL.SSLv23_METHOD)
-ctx.set_options(SSL.OP_NO_SSLv2)
-ctx.set_options(SSL.OP_NO_SSLv3)
-ctx.set_verify(SSL.VERIFY_PEER, verify_cb) # Demand a certificate
-ctx.use_privatekey_file(os.path.join(dir, 'client.pkey'))
-ctx.use_certificate_file(os.path.join(dir, 'client.cert'))
-ctx.load_verify_locations(os.path.join(dir, 'CA.cert'))
-
-# Set up client
-sock = SSL.Connection(ctx, socket.socket(socket.AF_INET, socket.SOCK_STREAM))
-sock.connect((sys.argv[1], int(sys.argv[2])))
-
-while 1:
- line = sys.stdin.readline()
- if line == '':
- break
- try:
- sock.send(line)
- sys.stdout.write(sock.recv(1024).decode('utf-8'))
- sys.stdout.flush()
- except SSL.Error:
- print('Connection died unexpectedly')
- break
-
-
-sock.shutdown()
-sock.close()
diff --git a/examples/simple/server.py b/examples/simple/server.py
deleted file mode 100644
index d25feb1..0000000
--- a/examples/simple/server.py
+++ /dev/null
@@ -1,119 +0,0 @@
-# -*- coding: latin-1 -*-
-#
-# Copyright (C) AB Strakt
-# Copyright (C) Jean-Paul Calderone
-# See LICENSE for details.
-
-"""
-Simple echo server, using nonblocking I/O
-"""
-
-from __future__ import print_function
-
-import os
-import select
-import socket
-import sys
-
-from OpenSSL import SSL, crypto
-
-
-def verify_cb(conn, cert, errnum, depth, ok):
- certsubject = crypto.X509Name(cert.get_subject())
- commonname = certsubject.commonName
- print('Got certificate: ' + commonname)
- return ok
-
-
-if len(sys.argv) < 2:
- print('Usage: python server.py PORT')
- sys.exit(1)
-
-dir = os.path.dirname(sys.argv[0])
-if dir == '':
- dir = os.curdir
-
-# Initialize context
-ctx = SSL.Context(SSL.SSLv23_METHOD)
-ctx.set_options(SSL.OP_NO_SSLv2)
-ctx.set_options(SSL.OP_NO_SSLv3)
-ctx.set_verify(
- SSL.VERIFY_PEER | SSL.VERIFY_FAIL_IF_NO_PEER_CERT, verify_cb
-) # Demand a certificate
-ctx.use_privatekey_file(os.path.join(dir, 'server.pkey'))
-ctx.use_certificate_file(os.path.join(dir, 'server.cert'))
-ctx.load_verify_locations(os.path.join(dir, 'CA.cert'))
-
-# Set up server
-server = SSL.Connection(ctx, socket.socket(socket.AF_INET, socket.SOCK_STREAM))
-server.bind(('', int(sys.argv[1])))
-server.listen(3)
-server.setblocking(0)
-
-clients = {}
-writers = {}
-
-
-def dropClient(cli, errors=None):
- if errors:
- print('Client %s left unexpectedly:' % (clients[cli],))
- print(' ', errors)
- else:
- print('Client %s left politely' % (clients[cli],))
- del clients[cli]
- if cli in writers:
- del writers[cli]
- if not errors:
- cli.shutdown()
- cli.close()
-
-
-while 1:
- try:
- r, w, _ = select.select(
- [server] + list(clients.keys()), list(writers.keys()), []
- )
- except Exception:
- break
-
- for cli in r:
- if cli == server:
- cli, addr = server.accept()
- print('Connection from %s' % (addr,))
- clients[cli] = addr
-
- else:
- try:
- ret = cli.recv(1024).decode('utf-8')
- except (SSL.WantReadError,
- SSL.WantWriteError,
- SSL.WantX509LookupError):
- pass
- except SSL.ZeroReturnError:
- dropClient(cli)
- except SSL.Error as errors:
- dropClient(cli, errors)
- else:
- if cli not in writers:
- writers[cli] = ''
- writers[cli] = writers[cli] + ret
-
- for cli in w:
- try:
- ret = cli.send(writers[cli])
- except (SSL.WantReadError,
- SSL.WantWriteError,
- SSL.WantX509LookupError):
- pass
- except SSL.ZeroReturnError:
- dropClient(cli)
- except SSL.Error as errors:
- dropClient(cli, errors)
- else:
- writers[cli] = writers[cli][ret:]
- if writers[cli] == '':
- del writers[cli]
-
-for cli in clients.keys():
- cli.close()
-server.close()