o 0iCk @ s d dl Z d dlZzd dlZW n ey dZY nw ddlmZ ddlmZ ddlmZ ddlm Z dd Z d Zd ZdZ dZG d d deZG dd dejejZG dd dejZdS ) N ) constants) protocols) transports)loggerc C s" | rt dt }|sd|_|S )Nz(Server side SSL needs a valid SSLContextF) ValueErrorsslZcreate_default_contextZcheck_hostname)server_sideserver_hostname sslcontext r 7/opt/alt/python310/lib64/python3.10/asyncio/sslproto.py_create_transport_context s r Z UNWRAPPEDZDO_HANDSHAKEZWRAPPEDZSHUTDOWNc @ s| e Zd Z dZdddZedd Zedd Zed d Zedd Z dd dZ dddZdd ZdddZ dddZdS )_SSLPipei Nc C sJ || _ || _|| _t| _t | _t | _d | _ d| _ d | _d | _d S NF) _context_server_side_server_hostname _UNWRAPPED_stater Z MemoryBIO _incoming _outgoing_sslobj _need_ssldata _handshake_cb_shutdown_cb)selfcontextr r r r r __init__7 s z_SSLPipe.__init__c C | j S N)r r r r r r M s z_SSLPipe.contextc C r r )r r! r r r ssl_objectR s z_SSLPipe.ssl_objectc C r r )r r! r r r need_ssldataZ s z_SSLPipe.need_ssldatac C s | j tkS r )r _WRAPPEDr! r r r wrapped` s z_SSLPipe.wrappedc C sT | j tkr td| 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_ssldatar callbackssldataappdatar r r do_handshakei s z_SSLPipe.do_handshakec C sD | j tkr td| j tkrtdt| _ || _| d\}}|S )Nzno security layer presentzshutdown in progressr&