JFIF$        dd7 

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

a

}|�g}H�@sNdZddlZddlmZddlmZddlZddlZddlmZddlZddlm	Z	ddl
mZddl
mZdd	l
mZdd
lmZddlmZddlmZddlZddlZdd
lmZddlmZdZGdd�dej�ZGdd�dej�Z ej!d"dd��Z"dd�Z#dZ$dZ%dZ&dZ'dZ(dZ)dZ*e+d k�rJe�,e�-ej.d!d�e/g��dS)#zTests for ocsp.py�N)�datetime)�	timedelta)�mock)�x509)�InvalidSignature)�UnsupportedAlgorithm)�default_backend)�hashes)�CryptographyDeprecationWarning��ocsp)�errors)�utilz;Missing = in header key=value
ocsp: Use -help for summary.
c@s�eZdZdZdd�Ze�d�e�d�e�d�dd����Ze�d	�e�d
�e�d�dd
����Zdd�Z	e�d�e�d�dd���Z
dS)�OCSPTestOpenSSLz5
    OCSP revocation tests using OpenSSL binary.
    c	Cs~ddlm}t�d��T}t�d��*}t|_d|_|jdd�|_Wd�n1sR0YWd�n1sp0YdS)Nrr�certbot.ocsp.subprocess.run�certbot.util.exe_existsT�Zenforce_openssl_binary_usage)	�certbotrr�patch�out�stderr�return_value�RevocationChecker�checker)�selfr�mock_run�mock_exists�r�E/usr/lib/python3.9/site-packages/certbot/_internal/tests/ocsp_test.py�setUp"szOCSPTestOpenSSL.setUpzcertbot.ocsp.logger.inforrcCs�t|j_d|_ddlm}|jdd�}|jdks4J�|�d�dgksHJ�t�d�d	|j_|jdd�}|�d�d
dgks|J�|j	dus�J�d|_d|_|jdd�}|jdks�J�|jdks�J�|j	dus�J�dS)NTrrr��xzHost=x�
�ZHostF)
rrrrrr�
call_countZ	host_args�	partition�broken)rrr�mock_logrrrrr�	test_init*s zOCSPTestOpenSSL.test_init�#certbot.ocsp._determine_ocsp_server�!certbot.ocsp.crypto_util.notAfterzcertbot.util.run_scriptcCst�tj�}t��}d|_d|_|tdd�|_	d|j
_d|_	|j
�|�dusRJ�d|j
_t
tdd��|_	|j
�|�dus�J�|jd	ks�J�d
|_	|j
�|�dus�J�t�d�|_|j
�|�dus�J�|jdks�J�||_	d|_	|j}|j
�|�dus�J�|j|k�sJ�dS)Nr!�yr#�ZhoursT)�r-Fr r)zhttp://x.cozx.coz#Unable to load certificate launcher)r�now�pytz�UTCr�	MagicMock�	cert_path�
chain_pathrrrr&�ocsp_revoked�tuple�
openssl_happyr$r
ZSubprocessError�side_effect)rrZmock_na�mock_determiner.�cert_objZcount_beforerrr�test_ocsp_revokedBs,z!OCSPTestOpenSSL.test_ocsp_revokedcCs0t�d�}ddlm}|�|�}d|ks,J�dS)N�ocsp_certificate.pemrr)zhttp://ocsp.test4.buypass.comzocsp.test4.buypass.com)�	test_util�vector_pathrrZ_determine_ocsp_server)rr2r�resultrrr�test_determine_ocsp_serverbs

z*OCSPTestOpenSSL.test_determine_ocsp_serverzcertbot.ocsp.loggercCs(t|_ddlm}|jt�dus$J�|jt�dus6J�|jjdksFJ�|jjdksVJ�d|j_|jt	�duspJ�|jjdks�J�|jjdks�J�|jt
�dus�J�|jjdks�J�|jt�dus�J�|jjdks�J�d|j_|jt
�dus�J�|jjdks�J�|jt�du�sJ�|jjdk�s$J�dS)NrrFr r#T)�openssl_confusedrrrZ_translate_ocsp_queryr6�debugr$Zwarning�openssl_unknown�openssl_expired_ocsp�openssl_broken�info�openssl_revoked�openssl_expired_ocsp_revoked)rrr'rrrr�test_translate_ocspis&z#OCSPTestOpenSSL.test_translate_ocspN)�__name__�
__module__�__qualname__�__doc__rrrr(r:r?rHrrrrrsrc@s\eZdZdZdd�Ze�d�e�d�dd���Zdd	�Zd
d�Z	dd
�Z
dd�Zdd�ZdS)�OSCPTestCryptographyz;
    OCSP revokation tests using Cryptography >= 2.4.0
    cCs�ddlm}|��|_t�d�|_t�d�|_t�	�|_
|j|j
_|j|j
_t�t
j�}tjd|tdd�d�|_|j��|�|jj�dS)	Nrrr;�ocsp_issuer_certificate.pemr*r#r,)r)rrrrr<r=r2r3rr1r9rr.r/r0rrZ
mock_notAfter�startZ
addCleanup�stop)rrr.rrrr�s



�
zOSCPTestCryptography.setUpr)z%certbot.ocsp._check_ocsp_cryptographycCs,d|_|j�|j�|�|j|jdd�dS)N)�http://example.com�example.comrQ�
)rrr4r9Zassert_called_once_withr2r3)r�
mock_checkr8rrr� test_ensure_cryptography_toggled�sz5OSCPTestCryptography.test_ensure_cryptography_toggledcCsLttjjtjj��|j�|j�}Wd�n1s60Y|sHJ�dS)N)	�
_ocsp_mock�ocsp_lib�OCSPCertStatus�REVOKED�OCSPResponseStatus�
SUCCESSFULrr4r9)r�revokedrrr�test_revoke�s,z OSCPTestCryptography.test_revokecCst�t�d�t��}ttjjtj	j
��p}|j|dj_
d|dj_|j�|j�tj�|���j}d|dj_
||dj_|j�|j�Wd�n1s�0Y|djdks�J�|djddd��|����ks�J�|djddd��|����k�sJ�dS)NrN�
mock_responserTr#rr �r�load_pem_x509_certificater<�load_vectorrrVrWrXrYrZr[�subjectr�responder_nameZresponder_key_hashrr4r9ZSubjectKeyIdentifierZfrom_public_keyZ
public_keyZdigestr$Zcall_args_listZpublic_numbers)r�issuer�mocks�key_hashrrr�test_responder_is_issuer�s*��,
�
�z-OSCPTestCryptography.test_responder_is_issuercCs~t�t�d�t��}t�t�d�t��}ttjjtj	j
��p}|j|dj_
d|dj_|j�|j�tj�|���j}d|dj_
||dj_|j�|j�Wd�n1s�0Y|djdks�J�|djddd��|����ks�J�|djddd��|����k�s"J�|djddd��|����k�sNJ�|djd	dd��|����k�szJ�dS)
NrN�ocsp_responder_certificate.pemr^rT�rr r#�r_)rrd�	responderrerfrrr�%test_responder_is_authorized_delegate�s<���,
�
�

�

�z:OSCPTestCryptography.test_responder_is_authorized_delegatec
Csttjjtjjdd��|j�|j�}Wd�n1s:0Y|dusPJ�ttjjtjj	��|j�|j�}Wd�n1s�0Y|dus�J�ttjjtjj��|j�|j�}Wd�n1s�0Y|dus�J�ttjj
tjj��Ztjdt
�dt
jj�d��|j�|j�}Wd�n1�s<0YWd�n1�s\0Y|du�stJ�ttjj
tjjtd�d��|j�|j�}Wd�n1�s�0Y|du�s�J�ttjj
tjjtd�d��|j�|j�}Wd�n1�s0Y|du�s$J�ttjj
tjjtd�d��|j�|j�}Wd�n1�sd0Y|du�s|J�ttjj
tjj��*}g|d	j_|j�|j�}Wd�n1�s�0Y|du�s�J�ttjj
tjj��J}|d	jjd
}tjd|jd�|d	jjd
<|j�|j�}Wd�n1�s<0Y|du�sTJ�ttjj
tjj���t�d
��`}d|_tjdt
�dt
jj�d��|j�|j�}Wd�n1�s�0YWd�n1�s�0YWd�n1�s�0Y|du�sJ�dS)Ni�)�http_status_codeFz4cryptography.x509.Extensions.get_extension_for_classz	Not found�r7Zfoo)�check_signature_side_effectr^rZfake)rdrbr))zhttps://example.comrR)rVrWrXZUNKNOWNrZr[rr4r9ZUNAUTHORIZEDrYrrrZExtensionNotFoundZAuthorityInformationAccessOIDZOCSPrr�AssertionErrorr�certificates�Mockrb)rr\re�certZmock_serverrrr�test_revoke_resiliency�sz�,,,��N�.�.�.�.��.��nz+OSCPTestCryptography.test_revoke_resiliencycs�ttjjtjj��R}|djj��fdd�}tj	|d�}|t
|dj�_|j�|j
�}Wd�n1sj0Y|dus�J�dS)Nr^csd}t�|t��S)NugProperties that return a naïve datetime object have been deprecated. Please switch to this_update_utc.)�warnings�warnr
)�msg��valuerr�
warn_first&szAOSCPTestCryptography.test_this_update_warning.<locals>.warn_firstrnF)rVrWrXZGOODrZr[r�this_updaterZPropertyMock�typerr4r9)rrerzZ
property_mockr\rrxr�test_this_update_warning!s�,z-OSCPTestCryptography.test_this_update_warningN)
rIrJrKrLrrrrUr]rgrlrtr}rrrrrM�sGrM��c
cs�t�d���}t||�|_t�d��`}tj|d�|_t�d��(}|rH||_|||d�VWd�n1sj0YWd�n1s�0YWd�n1s�0YdS)Nz(certbot.ocsp.ocsp.load_der_ocsp_responsezcertbot.ocsp.requests.post)Zstatus_codez.certbot.ocsp.crypto_util.verify_signed_payload)r^�	mock_postrT)rr�_construct_mock_ocsp_responserrrr7)�certificate_status�response_statusrmror^rrTrrrrV5s�
�rVcCs�t�t�d�t��}t�t�d�t��}t�t�d�t��}t��}|�||t�	��}|�
�}tj|||j
|j|j|j|gt�	�t�tj�jdd�tdd�t�tj�jdd�tdd�tjjjd�S)Nr;rNrh)Ztzinfor )Zdays)r�r��
serial_number�issuer_key_hash�issuer_name_hashrcrqZhash_algorithmZnext_updater{Zsignature_algorithm_oid)rr`r<rarrWZOCSPRequestBuilderZadd_certificater	ZSHA1Zbuildrrrr�r�r�rbrr.r/r0�replacerZoidZSignatureAlgorithmOIDZ
RSA_WITH_SHA1)r�r�rsrdrkZbuilderZrequestrrrr�Hs2����r�)r-z�
/etc/letsencrypt/live/example.org/cert.pem: good
	This Update: Dec 17 00:00:00 2016 GMT
	Next Update: Dec 24 00:00:00 2016 GMT
z�
Response Verify Failure
139903674214048:error:27069065:OCSP routines:OCSP_basic_verify:certificate verify error:ocsp_vfy.c:138:Verify error:unable to get local issuer certificate
)�blah.pemz^
blah.pem: good
	This Update: Dec 20 18:00:00 2016 GMT
	Next Update: Dec 27 18:00:00 2016 GMT
�Response verify OK)r�z�
blah.pem: revoked
	This Update: Dec 20 01:00:00 2016 GMT
	Next Update: Dec 27 01:00:00 2016 GMT
	Revocation Time: Dec 20 01:46:34 2016 GMT
r�)r�za
blah.pem: unknown
	This Update: Dec 20 18:00:00 2016 GMT
	Next Update: Dec 27 18:00:00 2016 GMT
r�)r-Z	tentaclesr�)r�z�
blah.pem: WARNING: Status times invalid.
140659132298912:error:2707307D:OCSP routines:OCSP_check_validity:status expired:ocsp_cl.c:372:
good
	This Update: Apr  6 00:00:00 2016 GMT
	Next Update: Apr 13 00:00:00 2016 GMT
r�)r�z�
blah.pem: WARNING: Status times invalid.
140659132298912:error:2707307D:OCSP routines:OCSP_check_validity:status expired:ocsp_cl.c:372:
revoked
	This Update: Apr  6 00:00:00 2016 GMT
	Next Update: Apr 13 00:00:00 2016 GMT
r��__main__r )r~N)0rL�
contextlibrr�sysZunittestrruZcryptographyrZcryptography.exceptionsrrZcryptography.hazmat.backendsrZcryptography.hazmat.primitivesr	Zcryptography.utilsr
Zcryptography.x509rrWZpytestr/rr
Z
certbot.testsrr<rZTestCaserrM�contextmanagerrVr�r@r6rFrBrDrCrGrI�exit�main�argv�__file__rrrr�<module>sFe4�
	


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