1# very basic test of ssl module, just to test the methods exist 2 3try: 4 import uio as io 5 import ussl as ssl 6except ImportError: 7 print("SKIP") 8 raise SystemExit 9 10# create in client mode 11try: 12 ss = ssl.wrap_socket(io.BytesIO(), server_hostname="test.example.com") 13except OSError as er: 14 print("wrap_socket:", repr(er)) 15 16# create in server mode (can use this object for further tests) 17socket = io.BytesIO() 18ss = ssl.wrap_socket(socket, server_side=1) 19 20# print 21print(repr(ss)[:12]) 22 23# setblocking() propagates call to the underlying stream object, and 24# io.BytesIO doesn't have setblocking() (in CPython too). 25# try: 26# ss.setblocking(False) 27# except NotImplementedError: 28# print('setblocking: NotImplementedError') 29# ss.setblocking(True) 30 31# write 32print(ss.write(b"aaaa")) 33 34# read (underlying socket has no data) 35print(ss.read(8)) 36 37# read (underlying socket has data, but it's bad data) 38socket.write(b"aaaaaaaaaaaaaaaa") 39socket.seek(0) 40try: 41 ss.read(8) 42except OSError as er: 43 print("read:", repr(er)) 44 45# close 46ss.close() 47# close 2nd time 48ss.close() 49 50# read on closed socket 51try: 52 ss.read(10) 53except OSError as er: 54 print("read:", repr(er)) 55 56# write on closed socket 57try: 58 ss.write(b"aaaa") 59except OSError as er: 60 print("write:", repr(er)) 61