summaryrefslogtreecommitdiff
path: root/examples/simple/client.py
diff options
context:
space:
mode:
Diffstat (limited to 'examples/simple/client.py')
-rw-r--r--examples/simple/client.py62
1 files changed, 0 insertions, 62 deletions
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()