JFIF$        dd7 

Viewing File: /usr/lib/python3.9/site-packages/acme/_internal/tests/__pycache__/crypto_util_test.cpython-39.pyc

a

}|�g,�@sfdZddlZddlZddlZddlZddlZddlZddlZddlm	Z	ddl
Z
ddlZddl
Z
ddlZddlmZddlmZddlmZmZddlmZddlmZGd	d
�d
e
j�ZGdd�de
j�ZGd
d�de
j�ZGdd�de
j�ZGdd�de
j�ZGdd�de
j�Z Gdd�de
j�Z!Gdd�de
j�Z"e#dk�rbe�$e�%ej&dd�e'g��dS)zTests for acme.crypto_util.�N)�List)�x509)�
serialization)�rsa�x25519)�errors)�	test_utilc@seZdZdd�ZdS)�
FormatTestcCs<ddlm}|j��tjjks"J�|j��tjjks8J�dS)Nr)�Format)�acme.crypto_utilr
ZDERZto_cryptography_encodingr�Encoding�PEM)�selfr
�r�I/usr/lib/python3.9/site-packages/acme/_internal/tests/crypto_util_test.py�test_to_cryptography_encodingsz(FormatTest.test_to_cryptography_encodingN)�__name__�
__module__�__qualname__rrrrrr	sr	c@sHeZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dS)�SSLSocketAndProbeSNITestz/Tests for acme.crypto_util.SSLSocket/probe_sni.cs�t�d�|_t�d�}d||jjfi�ddlm�G��fdd�dtj�}|dtj	�|_
|j
j��d	|_
tj|j
jd
�|_dS)Nzrsa2048_cert.pemzrsa2048_key.pem�foor��	SSLSocketcs eZdZ���fdd�Z�ZS)z3SSLSocketAndProbeSNITest.setUp.<locals>._TestServercs$t�j|i|���|j��|_dS�N)�super�__init__�socket)r�args�kwargs)r�	__class__�certsrrr*sz<SSLSocketAndProbeSNITest.setUp.<locals>._TestServer.__init__)rrrr�
__classcell__r�rr )rr�_TestServer)sr#)�r�)�target)rZload_comparable_cert�certZload_pyopenssl_private_key�wrappedrr�socketserverZ	TCPServerZBaseRequestHandler�serverrZgetsockname�port�	threading�ThreadZhandle_request�
server_thread)r�keyr#rr"r�setUp!s
�zSSLSocketAndProbeSNITest.setUpcCs"|j��r|j��|j��dSr)r.�is_alive�joinr*�server_close�rrrr�tearDown3s

z!SSLSocketAndProbeSNITest.tearDowncCs"ddlm}t�||d|jd��S)Nr)�	probe_sni�	127.0.0.1)�hostr+)rr6�jose�ComparableX509r+)r�namer6rrr�_probe9s�zSSLSocketAndProbeSNITest._probecCs|j��t�d�dS)Nr%)r.�start�time�sleepr4rrr�
_start_server>s
z&SSLSocketAndProbeSNITest._start_servercCs |��|j|�d�ksJ�dS)Nr)r@r'r<r4rrr�
test_probe_okBsz&SSLSocketAndProbeSNITest.test_probe_okcCsB|��t�tj��|�d�Wd�n1s40YdS)N�bar)r@�pytest�raisesr�Errorr<r4rrr�test_probe_not_recognized_nameFsz7SSLSocketAndProbeSNITest.test_probe_not_recognized_namec	Csr|j��t��}zNt�d�t�tj��|�	d�Wd�n1sJ0YWt�|�nt�|�0dS)Nr%rB)
r*r3rZgetdefaulttimeoutZsetdefaulttimeoutrCrDrrEr<)rZoriginal_timeoutrrr�test_probe_connection_errorKs

*z4SSLSocketAndProbeSNITest.test_probe_connection_errorN)rrr�__doc__r0r5r<r@rArFrGrrrrrsrc@seZdZdZdd�ZdS)�
SSLSocketTestz%Tests for acme.crypto_util.SSLSocket.cCs�ddlm}t�t��&|dddidd�d�}Wd�n1sB0Yt�t��|d�}Wd�n1st0YdS)NrrZsni)r/r'cSsdSrr)�_rrr�<lambda>]�zASSLSocketTest.test_ssl_socket_invalid_arguments.<locals>.<lambda>)Zcert_selection)rrrCrD�
ValueError)rrrJrrr�!test_ssl_socket_invalid_argumentsYs
�$z/SSLSocketTest.test_ssl_socket_invalid_argumentsN)rrrrHrNrrrrrIVsrIc@s<eZdZdZedd��Zdd�Zdd�Zdd	�Zd
d�Z	dS)
�PyOpenSSLCertOrReqAllNamesTestz;Test for acme.crypto_util._pyopenssl_cert_or_req_all_names.cCsddlm}|||��S)Nr)� _pyopenssl_cert_or_req_all_names)rrP)�cls�loaderr;rPrrr�_callesz$PyOpenSSLCertOrReqAllNamesTest._callcCs|�tj|�Sr�rSr�	load_cert�rr;rrr�
_call_certksz)PyOpenSSLCertOrReqAllNamesTest._call_certcCs|�d�dgksJ�dS)Nz
cert-nocn.derzno-common-name.badssl.com�rWr4rrr�test_cert_one_san_no_commonns�z:PyOpenSSLCertOrReqAllNamesTest.test_cert_one_san_no_commoncCs|�d�dgksJ�dS)N�cert.pem�example.comrXr4rrr�test_cert_no_sans_yes_commonrsz;PyOpenSSLCertOrReqAllNamesTest.test_cert_no_sans_yes_commoncCs|�d�ddgksJ�dS�N�cert-san.pemr[�www.example.comrXr4rrr�test_cert_two_sans_yes_commonus�z<PyOpenSSLCertOrReqAllNamesTest.test_cert_two_sans_yes_commonN)
rrrrH�classmethodrSrWrYr\r`rrrrrObs
rOc@s�eZdZdZedd��Zedd��Zdd�Zdd	�Zd
d�Z	dd
�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd�Zd S)!�PyOpenSSLCertOrReqSANTestz5Test for acme.crypto_util._pyopenssl_cert_or_req_san.cCsddlm}|||��S)Nr)�_pyopenssl_cert_or_req_san)rrc)rQrRr;rcrrrrS}szPyOpenSSLCertOrReqSANTest._callcsHdd�t�tdd�tdd�tdd��D���fd	d�td
t��d�D�S)z5Returns expected names from '{cert,csr}-idnsans.pem'.cSsg|]}t|��qSr)�chr��.0�irrr�
<listcomp>�rLz<PyOpenSSLCertOrReqSANTest._get_idn_names.<locals>.<listcomp>i�iiAi�i iwcs&g|]}d��||d��d�qS)r$�-z.invalid)r2re��charsrrrh�s�rri)�	itertools�chain�range�len)rQrrjr�_get_idn_names�s�
�z(PyOpenSSLCertOrReqSANTest._get_idn_namescCs|�tj|�SrrTrVrrrrW�sz$PyOpenSSLCertOrReqSANTest._call_certcCs|�tj|�Sr)rSrZload_csrrVrrr�	_call_csr�sz#PyOpenSSLCertOrReqSANTest._call_csrcCs|�d�gksJ�dS)NrZrXr4rrr�test_cert_no_sans�sz+PyOpenSSLCertOrReqSANTest.test_cert_no_sanscCs|�d�ddgksJ�dSr]rXr4rrr�test_cert_two_sans�s�z,PyOpenSSLCertOrReqSANTest.test_cert_two_sanscCs&|�d�dd�tdd�D�ks"J�dS)Nzcert-100sans.pemcSsg|]}d�|��qS�zexample{0}.com��formatrerrrrh�rLzDPyOpenSSLCertOrReqSANTest.test_cert_hundred_sans.<locals>.<listcomp>r%�e)rWrnr4rrr�test_cert_hundred_sans�s�z0PyOpenSSLCertOrReqSANTest.test_cert_hundred_sanscCs|�d�|��ksJ�dS)N�cert-idnsans.pem)rWrpr4rrr�test_cert_idn_sans�s�z,PyOpenSSLCertOrReqSANTest.test_cert_idn_sanscCs|�d�gksJ�dS)Nzcsr-nosans.pem�rqr4rrr�test_csr_no_sans�sz*PyOpenSSLCertOrReqSANTest.test_csr_no_sanscCs|�d�dgksJ�dS)Nzcsr.pemr[r{r4rrr�test_csr_one_san�sz*PyOpenSSLCertOrReqSANTest.test_csr_one_sancCs|�d�ddgksJ�dS)Nzcsr-san.pemr[r_r{r4rrr�test_csr_two_sans�s�z+PyOpenSSLCertOrReqSANTest.test_csr_two_sanscCs|�d�gd�ksJ�dS)Nz
csr-6sans.pem)r[zexample.orgzexample.netzexample.infozsubdomain.example.comzother.subdomain.example.comr{r4rrr�test_csr_six_sans�s�z+PyOpenSSLCertOrReqSANTest.test_csr_six_sanscCs&|�d�dd�tdd�D�ks"J�dS)Nzcsr-100sans.pemcSsg|]}d�|��qSrtrurerrrrh�rLzCPyOpenSSLCertOrReqSANTest.test_csr_hundred_sans.<locals>.<listcomp>r%rw)rqrnr4rrr�test_csr_hundred_sans�s�z/PyOpenSSLCertOrReqSANTest.test_csr_hundred_sanscCs|�d�|��ksJ�dS)Nzcsr-idnsans.pem)rqrpr4rrr�test_csr_idn_sans�s�z+PyOpenSSLCertOrReqSANTest.test_csr_idn_sanscCs|�d�ddgksJ�dS)Nzcritical-san.pemzchicago-cubs.venafi.examplezcubs.venafi.examplerXr4rrr�test_critical_san�s�z+PyOpenSSLCertOrReqSANTest.test_critical_sanN)rrrrHrarSrprWrqrrrsrxrzr|r}r~rr�r�r�rrrrrbzs$

rbc@s(eZdZdZdd�Zdd�Zdd�ZdS)	�
GenSsCertTestz6Test for gen_ss_cert (generation of self-signed cert).cCs.d|_g|_tj��|_|j�tjjd�dS)N��)�
cert_count�
serial_num�OpenSSL�cryptoZPKeyr/Zgenerate_keyZTYPE_RSAr4rrrr0�szGenSsCertTest.setUpcCsdddlm}t|j�D]0}||jdgdt�d�gd�}|j�|�	��qt
t|j��|jks`J�dS)Nr��gen_ss_certZdummyTz10.10.10.10)Z	force_san�ips)rr�rnr�r/�	ipaddress�
ip_addressr��appendZget_serial_numberro�set)rr�rJr'rrr�test_sn_collisions�s
�z GenSsCertTest.test_sn_collisionscCsZddlm}t�t��0||jt�d�gd�||j�Wd�n1sL0YdS)Nrr�z1.1.1.1)r�)rr�rCrD�AssertionErrorr/r�r�)rr�rrr�test_no_name�szGenSsCertTest.test_no_nameN)rrrrHr0r�r�rrrrr��s	r�c@sDeZdZdZedd��Zdd�Zdd�Zdd	�Zd
d�Z	dd
�Z
dS)�MakeCSRTestzTest for standalone functions.cOsJtjddd�}|�tjjtjjt���}ddl	m
}||g|�Ri|��S)Nir�)Zpublic_exponentZkey_sizer��make_csr)rZgenerate_private_key�
private_bytesrrr
�
PrivateFormat�PKCS8�NoEncryptionrr�)rQrr�privkey�privkey_pemr�rrr�_call_with_key�s�zMakeCSRTest._call_with_keycCsr|�ddg�}d|vsJ�d|vs&J�t�|�}t|j�dksBJ�t|j�tj�j�t�	d�t�	d�gksnJ�dS)N�	a.examplez	b.example�--BEGIN CERTIFICATE REQUEST--�--END CERTIFICATE REQUEST--r%)
r�r�load_pem_x509_csrro�
extensions�list�get_extension_for_class�SubjectAlternativeName�value�DNSName�rZcsr_pemZcsrrrr�
test_make_csr�s
���zMakeCSRTest.test_make_csrcCs�|�dgdt�d�t�d�g�}d|vs,J�d|vs8J�t�|�}t|j�dksTJ�t|j�tj	�j
�t�d�t�t�d��t�t�d��gks�J�dS)Nr�Fr7z::1r�r�r%)
r�r�r�rr�ror�r�r�r�r�r�Z	IPAddressr�rrr�test_make_csr_ip�s"�
���zMakeCSRTest.test_make_csr_ipcCsR|jdgdd�}t�|�}t|j�dks,J�t|j�tj�j�tj	j
gksNJ�dS)Nr�T)Zmust_staple�)r�rr�ror�r�r�Z
TLSFeaturer�ZTLSFeatureTypeZstatus_requestr�rrr�test_make_csr_must_staple	s
�z%MakeCSRTest.test_make_csr_must_staplecCs6t�t��|��Wd�n1s(0YdSr)rCrDrMr�r4rrr�test_make_csr_without_hostnamesz*MakeCSRTest.test_make_csr_without_hostnamecCsjtj��}|�tjjtjjt�	��}ddl
m}t�
t��||dg�Wd�n1s\0YdS)Nrr�r�)rZX25519PrivateKeyZgenerater�rrr
r�r�r�rr�rCrDrM)rr�r�r�rrr�test_make_csr_invalid_key_types
�z*MakeCSRTest.test_make_csr_invalid_key_typeN)rrrrHrar�r�r�r�r�r�rrrrr��s
	r�c@s,eZdZdZedd��Zdd�Zdd�ZdS)	�DumpPyopensslChainTestzTest for dump_pyopenssl_chain.cCsddlm}||�S)Nr)�dump_pyopenssl_chain)rr�)rQ�loadedr�rrrrS&szDumpPyopensslChainTest._callcCsBgd�}dd�|D�}tdd�|D��}t|�|��|ks>J�dS)N�rZr^rycSsg|]}t�|��qSr�rrU�rfr;rrrrh.rLzDDumpPyopensslChainTest.test_dump_pyopenssl_chain.<locals>.<listcomp>css$|]}ttj�tjj|��VqdSr)ror�r��dump_certificate�FILETYPE_PEM�rfr'rrr�	<genexpr>/s�zCDumpPyopensslChainTest.test_dump_pyopenssl_chain.<locals>.<genexpr>)�sumrorS)r�namesr��lengthrrr�test_dump_pyopenssl_chain,s�z0DumpPyopensslChainTest.test_dump_pyopenssl_chaincsfgd�}dd�|D�}tj��fdd�|D�}tjj�t�fdd�|D��}t|�|��|ksbJ�dS)Nr�cSsg|]}t�|��qSrr�r�rrrrh6rLzLDumpPyopensslChainTest.test_dump_pyopenssl_chain_wrapped.<locals>.<listcomp>csg|]}�|��qSrrr�)�	wrap_funcrrrh8rLc3s |]}t�tjj|��VqdSr)ror�r�r�r�)�	dump_funcrrr�:rLzKDumpPyopensslChainTest.test_dump_pyopenssl_chain_wrapped.<locals>.<genexpr>)r9r:r�r�r�r�rorS)rr�r�r(r�r)r�r�r�!test_dump_pyopenssl_chain_wrapped4sz8DumpPyopensslChainTest.test_dump_pyopenssl_chain_wrappedN)rrrrHrarSr�r�rrrrr�#s

r��__main__r%)(rHr�rlrr)�sysr,r>�typingrZunittestZjosepyr9r�rCZcryptographyrZcryptography.hazmat.primitivesrZ)cryptography.hazmat.primitives.asymmetricrrZacmerZacme._internal.testsrZTestCaser	rrIrOrbr�r�r�r�exit�main�argv�__file__rrrr�<module>s68DK

Back to Directory  nL+D550H?Mx ,D"v]qv;6*Zqn)ZP0!1 A "#a$2Qr D8 a Ri[f\mIykIw0cuFcRı?lO7к_f˓[C$殷WF<_W ԣsKcëIzyQy/_LKℂ;C",pFA:/]=H  ~,ls/9ć:[=/#f;)x{ٛEQ )~ =𘙲r*2~ a _V=' kumFD}KYYC)({ *g&f`툪ry`=^cJ.I](*`wq1dđ#̩͑0;H]u搂@:~וKL Nsh}OIR*8:2 !lDJVo(3=M(zȰ+i*NAr6KnSl)!JJӁ* %݉?|D}d5:eP0R;{$X'xF@.ÊB {,WJuQɲRI;9QE琯62fT.DUJ;*cP A\ILNj!J۱+O\͔]ޒS߼Jȧc%ANolՎprULZԛerE2=XDXgVQeӓk yP7U*omQIs,K`)6\G3t?pgjrmۛجwluGtfh9uyP0D;Uڽ"OXlif$)&|ML0Zrm1[HXPlPR0'G=i2N+0e2]]9VTPO׮7h(F*癈'=QVZDF,d߬~TX G[`le69CR(!S2!P <0x<!1AQ "Raq02Br#SCTb ?Ζ"]mH5WR7k.ۛ!}Q~+yԏz|@T20S~Kek *zFf^2X*(@8r?CIuI|֓>^ExLgNUY+{.RѪ τV׸YTD I62'8Y27'\TP.6d&˦@Vqi|8-OΕ]ʔ U=TL8=;6c| !qfF3aů&~$l}'NWUs$Uk^SV:U# 6w++s&r+nڐ{@29 gL u"TÙM=6(^"7r}=6YݾlCuhquympǦ GjhsǜNlɻ}o7#S6aw4!OSrD57%|?x>L |/nD6?/8w#[)L7+6〼T ATg!%5MmZ/c-{1_Je"|^$'O&ޱմTrb$w)R$& N1EtdU3Uȉ1pM"N*(DNyd96.(jQ)X 5cQɎMyW?Q*!R>6=7)Xj5`J]e8%t!+'!1Q5 !1 AQaqё#2"0BRb?Gt^## .llQT $v,,m㵜5ubV =sY+@d{N! dnO<.-B;_wJt6;QJd.Qc%p{ 1,sNDdFHI0ГoXшe黅XۢF:)[FGXƹ/w_cMeD,ʡcc.WDtA$j@:) -# u c1<@ۗ9F)KJ-hpP]_x[qBlbpʖw q"LFGdƶ*s+ډ_Zc"?%t[IP 6J]#=ɺVvvCGsGh1 >)6|ey?Lӣm,4GWUi`]uJVoVDG< SB6ϏQ@ TiUlyOU0kfV~~}SZ@*WUUi##; s/[=!7}"WN]'(L! ~y5g9T̅JkbM' +s:S +B)v@Mj e Cf jE 0Y\QnzG1д~Wo{T9?`Rmyhsy3!HAD]mc1~2LSu7xT;j$`}4->L#vzŏILS ֭T{rjGKC;bpU=-`BsK.SFw4Mq]ZdHS0)tLg