File: //lib64/python3.6/asyncio/__pycache__/sslproto.cpython-36.opt-2.pyc
3
\e
@ s d dl Z d dlZyd dlZW n ek
r4 dZY nX ddlmZ ddlmZ ddlmZ ddlmZ ddl m
Z
dd Zd
d ZdZ
d
ZdZdZG dd deZG dd dejejZG dd dejZdS ) N )base_events)compat) protocols)
transports)loggerc C sj | rt dttdr*tj }|sfd|_n<tjtj}| jtjO _| jtj O _|j
tj|_|S )Nz(Server side SSL needs a valid SSLContextcreate_default_contextF)
ValueErrorhasattrsslr check_hostnameZ
SSLContextZPROTOCOL_SSLv23ZoptionsZOP_NO_SSLv2ZOP_NO_SSLv3Zset_default_verify_pathsZ
CERT_REQUIREDverify_mode)server_sideserver_hostname
sslcontext r (/usr/lib64/python3.6/asyncio/sslproto.py_create_transport_context s
r c C s
t tdS )N MemoryBIO)r
r r r r r _is_sslproto_available% s r Z UNWRAPPEDZDO_HANDSHAKEZWRAPPEDZSHUTDOWNc @ sz e Zd ZdZdddZedd Zedd Zed
d Zedd
Z dddZ
dddZdd ZdddZ
dddZdS ) _SSLPipe i Nc C sH || _ || _|| _t| _tj | _tj | _d | _ d| _
d | _d | _d S )NF)
_context_server_side_server_hostname
_UNWRAPPED_stater r _incoming _outgoing_sslobj
_need_ssldata
_handshake_cb_shutdown_cb)selfcontextr r r r r __init__D s
z_SSLPipe.__init__c C s | j S )N)r )r# r r r r$ Z s z_SSLPipe.contextc C s | j S )N)r )r# r r r
ssl_object_ s z_SSLPipe.ssl_objectc C s | j S )N)r )r# r r r need_ssldatag s z_SSLPipe.need_ssldatac C s
| j tkS )N)r _WRAPPED)r# r r r wrappedm s z_SSLPipe.wrappedc C sR | j tkrtd| jj| j| j| j| jd| _ t
| _ || _| jddd\}}|S )Nz"handshake in progress or completed)r r T)only_handshake)
r r RuntimeErrorr Zwrap_bior r r r r
_DO_HANDSHAKEr! feed_ssldata)r# callbackssldataappdatar r r do_handshakev s
z_SSLPipe.do_handshakec C sB | j tkrtd| j tkr$tdt| _ || _| jd\}}|S )Nzno security layer presentzshutdown in progressr* )r r r, _SHUTDOWNr"