python (3.12.0)

(root)/
lib/
python3.12/
test/
__pycache__/
ssl_servers.cpython-312.opt-1.pyc

͑eo&ddlZddlZddlZddlZddlZddlZddlmZ	m
Z
mZddlm
Z
ddlmZej j#eZej(Zej j+edZGdde	ZGdd	e
ZGd
deZGdd
ej4ZdeedddZedk(rddlZej>dZ e jCdde"dde jCdddddde jCdd d!d"d#d$e jCd%d&e#d'd()e jCd*d+e#d,-e jCd.d/e#d'd0)e jIZ%e%jLe
_&e%jNreZ(neZ(ejRe(_*ejVejXjZZ.e.j_ee%j`re.jce%j`e%jdre.jge%jde%jhre.jke%jhed1e%jlfe(e.Z7e%jLre8d2jse%e7jud3yy)4N)
HTTPServerSimpleHTTPRequestHandlerBaseHTTPRequestHandler)support)
socket_helperzkeycert.pemceZdZdZdZdZy)HTTPSServerc@tj|||||_yN)_HTTPServer__init__context)selfserver_address
handler_classrs    D/BuggyBox/python/3.12.0/bootstrap/lib/python3.12/test/ssl_servers.pyr
zHTTPSServer.__init__sT>=Acjd|jjd|jd|jdS)N< :>)	__class____name__server_nameserver_portrs r__str__zHTTPSServer.__str__s+((!!!!#	$rc	|jj\}}|jj|d}||fS#t$r8}t
jr"tjjd|zd}~wwxYw)NT)server_sidezGot an error:
%s
)
socketacceptrwrap_socketOSErrorrverbosesysstderrwrite)rsockaddrsslconnes     rget_requestzHTTPSServer.get_request!sv	++-JD$ll..t.FG}	

  !6!:;		s:A	B	3A<<BN)r
__module____qualname__r
rr-rrr	r	s$
rr	c8eZdZdZeZejZdZ	dZ
y)RootedHTTPRequestHandlerz
TestHTTPS/1.0ctjj|d}tjjtjj
|}|jd}td|}|j}|D]f}tjj|\}}tjj|\}}tjj||}h|S)zTranslate a /-separated PATH to the local filename syntax.

        Components that mean special things to the local file system
        (e.g. drive or directory names) are ignored.  (XXX They should
        probably be diagnosed.)

        /N)urllibparseurlparseospathnormpathunquotesplitfilterroot
splitdrivejoin)rr:wordsworddriveheads      rtranslate_pathz'RootedHTTPRequestHandler.translate_path7s||$$T*1-ww 4 4T :;

3tU#yy	,D'',,T2KE4t,JD$77<<d+D	,rc	tjrytjj	d|j
j|j
j|jj|j||zfzyy)Nz server (%s:%d %s):
   [%s] %s
)rr%r&stdoutr(serverrrrequestcipherlog_date_time_stringrformatargss   rlog_messagez$RootedHTTPRequestHandler.log_messageKsj??JJ@"kk88"kk55"ll113"779$Tk	++
,rN)rr.r/server_versionherer?rLOOPBACK_TIMEOUTtimeoutrFrPr0rrr2r2-s#
%ND&&G(,rr2c(eZdZdZdZddZdZdZy)StatsRequestHandlerzSExample HTTP request handler which returns SSL statistics on GET
    requests.
    zStatsHTTPS/1.0c|jjj}|j}|j	|j|j
d}tj|}|jd}|jd|jdd|jdtt||j|r|jj!|yy)zServe a GET request.)
session_cacherKcompressionzutf-8zContent-typeztext/plain; charset=utf-8zContent-LengthN)rfileraw_sockr
session_statsrKrYpprintpformatencode
send_responsesend_headerstrlenend_headerswfiler()r	send_bodyr)rstatsbodys      rdo_GETzStatsRequestHandler.do_GET]szz~~##,,$224kkm++-
~~e${{7#3)DE)3s4y>:JJT"rc(|jdy)zServe a HEAD request.F)rhN)rkrs rdo_HEADzStatsRequestHandler.do_HEADose$rcTtjrtj||g|yyr)rr%rlog_requestrMs   rrozStatsRequestHandler.log_requestss#??"..tVCdCrN)T)rr.r/__doc__rQrkrmror0rrrVrVVs&N#$%DrrVc2eZdZedfdZdZddZdZdZy)HTTPSServerThreadNcd|_t|df|xst||_|jj|_tjj|d|_	y)NrT)
flagr	r2rIrport	threadingThreadr
daemon)rrhostrs    rr
zHTTPSServerThread.__init__zsU	!4)"/"K3K")+KK++	!!$'rcPd|jjd|jdS)Nrrr)rrrIrs rrzHTTPSServerThread.__str__s NN33T[[AArcP||_tjj|yr)rtrvrwstart)rrts  rr|zHTTPSServerThread.starts	t$rc|jr|jj	|jjd|jj	y#|jj	wxYw)Ng?)rtsetrI
serve_foreverserver_closers rrunzHTTPSServerThread.runsN99IIMMO	'KK%%d+KK$$&DKK$$&sAA:c8|jjyr)rIshutdownrs rstopzHTTPSServerThread.stopsrr)	rr.r/HOSTr
rr|rrr0rrrrrrxs!%)B%'rrr)rcertfileryrc8|-tjtjj}|j	|t|||t
j}j||jfd}|j|S)Nctjrtjj	djtjrtjj	dj
y)Nzstopping HTTPS server
zjoining HTTPS thread
)rr%r&rHr(rrA)rIsrcleanupz"make_https_server.<locals>.cleanupsI??JJ67
??JJ56
r)sslcreate_default_contextPurposeCLIENT_AUTHload_cert_chainrrrvEventr|wait
addCleanup)caserrryrrtrrIs       @rmake_https_serverrsw,,S[[-D-DEH%
wm
<F??D
LLIIK	OOGMr__main__zERun a test HTTPS server. By default, the current directory is served.)descriptionz-pz--portiQz(port to listen on (default: %(default)s))typedefaulthelpz-qz--quietr%Tstore_falsezbe less verbose)destractionrz-sz--statsuse_stats_handlerF
store_truezalways return stats pagez--curve-name
curve_namestorez&curve name for EC-based Diffie-Hellman)rrrrz	--cipherscipherszallowed cipher list)rrrz--dhdh_filez!PEM file containing DH parametersz'Listening on https://localhost:{0.port}g?);r9r&rr_rvurllib.parser6http.serverrrrrtestrtest.supportrr:dirname__file__rRrrACERTFILEr	r2rVrwrrrrargparseArgumentParserparseradd_argumentintrd
parse_argsrOr%rrgetcwdr?rrrrrrset_ecdh_curverload_dh_paramsrset_ciphersrurIprintrNrr0rr<module>rs	


66&	wwx 
77<<m,+0&,7&,RD0DD	((<(,ht*z
$X
$
$CDFhS$GI
ii,3DF
i.A5+2LN
\&EG)#24
YS@BDllGO+
0
&RYY[
(c(()@)@AGH%t/||t||,||DLL)
"dii-
AF||
7>>tDE
Mr