403Webshell
Server IP : 80.87.202.40  /  Your IP : 216.73.216.169
Web Server : Apache
System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64
User : bitrix ( 600)
PHP Version : 8.2.27
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : ON |  Perl : ON |  Python : OFF |  Sudo : ON |  Pkexec : ON
Directory :  /lib/python3.9/site-packages/passlib/tests/__pycache__/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /lib/python3.9/site-packages/passlib/tests/__pycache__/test_handlers_bcrypt.cpython-39.pyc
a

f�Wcms�@s.dZddlmZddlZe�e�ZddlZddlZddl	m
Z
ddlmZm
Z
ddlmZmZmZddlmZmZddlmZmZdd	lmZGd
d�de�Ze�d�Ze�d
�Ze�d�ZGdd�de�d��Ze�d�Z Gdd�de�Z!e!�d�Z"e!�d
�Z#e!�d�Z$Gdd�de!�d��Z%e!�d�Z&dS)z?passlib.tests.test_handlers - tests for passlib hash algorithms�)�with_statementN��hash)�IDENT_2�IDENT_2X)�
repeat_string�to_bytes�is_safe_crypt_input)�irange�PY3)�HandlerCase�	TEST_MODE)�UPASS_TABLEcs�eZdZdZejZdZdZddddddd	d
ddd
dddddddddd�dfddd�dfddd�dfddd�dfddddd e	d!fe	d"fgZ
ed#��rd$Zd%Z
e
�d&ed'fd&e
d'fd(ed)fd(e
d*fd+ed)fd+e
d,fd-ed)fd-e
d)fd.ed)fd.e
d)fg
�d/e	d0fgZd1d2gZgd3�Zgd4�Z�fd5d6�Z�fd7d8�Zd9d:�Zejd;Zd<d=�Zd>d?�Zd@dA�ZGdBdC�dCej�ZgdD�ZdEdF�ZdGdH�Z�ZS)I�_bcrypt_testzbase for BCrypt test casesT)zU*U*U*U*z<$2a$05$c92SVSfjeiCD6F2nAD6y0uBpJDjdRkt0EgeC4/31Rf2LUZbDRDE.O)zU*U***Uz<$2a$05$WY62Xk2TXZ7EvVDQ5fmjNu7b0GEzSzUXUh2cllxJwhtOeMtWV3Ujq)zU*U***U*z<$2a$05$Fa0iKV3E2SYVUlMknirWU.CFYGvJ67UwVKI1E2FP6XeLiZGcH3MJi)z*U*U*U*Uz<$2a$05$.WRrXibc1zPgIdRXYfv.4uu6TD1KWf0VnHzq/0imhUhuxSxCyeBs2)�z<$2a$05$Otz9agnajgrAe0.kFVF9V.tzaStZ2s1s4ZWi/LY4sw2k/MTVFj/IO)zU*Uz<$2a$05$CCCCCCCCCCCCCCCCCCCCC.E5YPO9kmyuRGyh0XouQYb4YMJKvyOeW)zU*U*z<$2a$05$CCCCCCCCCCCCCCCCCCCCC.VGOzA784oUp/Z0DY336zx7pLYAy0lwK)zU*U*Uz<$2a$05$XXXXXXXXXXXXXXXXXXXXXOAcXxm9kjPGEMsLznoKqmqw7tc8WCx4a)rz<$2a$05$CCCCCCCCCCCCCCCCCCCCC.7uG0VCzI2bS7j6ymqJi9CdcdxiRTWNy)zb0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789chars after 72 are ignoredz<$2a$05$abcdefghijklmnopqrstuu5s2v8.iXieOjg/.AySBTTZIIVFJeBui)��z<$2a$05$/OK.fbVrR/bpIqNJ5ianF.Sa7shbm4.OzKpvFnX1pQLmQW96oUlCq)s��345z<$2a$05$/OK.fbVrR/bpIqNJ5ianF.nRht2l/HRhr6zmCp9vYUvvsqynflf9e)s�abz<$2a$05$/OK.fbVrR/bpIqNJ5ianF.6IflQkJytoRVc1yuaNtHfiuq.FRlSIS)sk������������������������������������������������������������������������chars after 72 are ignored as usualz<$2a$05$/OK.fbVrR/bpIqNJ5ianF.swQOIzjOiJ9GHEPuhEkvqrUyvWhEMx6)sH�U�U�U�U�U�U�U�U�U�U�U�U�U�U�U�U�U�U�U�U�U�U�U�U�U�U�U�U�U�U�U�U�U�U�U�Uz<$2a$05$/OK.fbVrR/bpIqNJ5ianF.R9xrDjiycxMbQE2bp.vgqlYpW5wx2yy)sHU��U��U��U��U��U��U��U��U��U��U��U��U��U��U��U��U��U��U��U��U��U��U��U��z<$2a$05$/OK.fbVrR/bpIqNJ5ianF.9tQZzcJfm3uj2NvJ/n5xkhpqLrMpWCe)rz<$2y$05$/OK.fbVrR/bpIqNJ5ianF.Sa7shbm4.OzKpvFnX1pQLmQW96oUlCq)sёz<$2y$05$6bNw2HLQYeqHYyBfLMsv/OUcZd0LKP39b87nBw3.S2tVZSqiQX6euA01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789N�z<$2a$04$R1lJ2gkNaoPGdafE.H.16.1MKHPvmKwryeulRe225LKProWYwt9Oi��i)rz<$2a$06$DCq7YPn5Rq63x1Lad4cll.TV4S6ytwfsfvkgY8jIucDrjc8deX1s.)�az<$2a$10$k87L/MF28Q673VKh8/cPi.SUl7MU/rWuSiIDDFayrKk/1tBsSQu4u)�abcz<$2a$10$WvvTPHKwdBJ3uk0Z37EMR.hLA2W6N9AEBhEgrAOljy2Ae5MtaSIUi)Zabcdefghijklmnopqrstuvwxyzz<$2a$10$fVH8e28OQRj9tqiDXs1e1uxpsjN0c7II7YPKXua2NAKYvM6iQk7dq)z"~!@#$%^&*()      ~!@#$%^&*()PNBFRDz<$2a$10$LgfYWkbzEvQ4JakH7rOvHe0y8pHKF9OaFgwUZ2q7W2FFZmZzJYlfSz<$2a$05$Z17AXnnlpzddNUvnC6cZNOSwMA/8oNiKnHTHTwLlBijfucQQlHjaGz<$2b$05$Z17AXnnlpzddNUvnC6cZNOSwMA/8oNiKnHTHTwLlBijfucQQlHjaG�fullz$2$05$......................z$2a$05$......................rZJ2ihDv8vVf7QZ9BsaRrKyqs2tkn55YqrzXuQjdH.wPVNUZ/bOfstdW/FqB8QSjteZev6gDwpVye3oMCUpLY85aTpfBNHD0GaZEabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcz2kIdfSj/4/R/Q6n847VTvc68BXiRYZCZHabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcZIabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcxz$2a$04$uM6csdM8R9SXTex/gbTayez<$2a$04$uM6csdM8R9SXTex/gbTayezuvzFEufYGd2uB6of7qScLjQ4GwcD4Gz<$2f$12$EXRkfkdmXnagzds2SSitu.MW9.gAVqa9eLS1//RYtYCmB1eLHg.9qz<$2`$12$EXRkfkdmXnagzds2SSitu.MW9.gAVqa9eLS1//RYtYCmB1eLHg.9q)z<$2a$12$EXRkfkdmXn!gzds2SSitu.MW9.gAVqa9eLS1//RYtYCmB1eLHg.9qz<$2x$12$EXRkfkdmXnagzds2SSitu.MW9.gAVqa9eLS1//RYtYCmB1eLHg.9qz;$2a$6$DCq7YPn5Rq63x1Lad4cll.TV4S6ytwfsfvkgY8jIucDrjc8deX1s.))zfreedbsd|openbsd|netbsdT)�darwinF)ZlinuxN)ZsolarisNcsrtd�rT|jdkrTd}tj�|�}|r:|�tjj||�n|�tjj|�dtj|<tt	|��
�t�dd�dS)Nr�builtin�PASSLIB_BUILTIN_BCRYPT�true�ignore�3.*backend is vulnerable to the bsd wraparound bug.*)
r
�backend�os�environ�get�
addCleanup�__setitem__�__delitem__�superr�setUp�warnings�filterwarnings��self�keyZorig��	__class__��F/usr/lib/python3.9/site-packages/passlib/tests/test_handlers_bcrypt.pyr&�s
z_bcrypt_test.setUpcs*|jdkr|�dd�tt|��|�dS�Nr�rounds�)r�
setdefaultr%r�populate_settings�r*�kwdsr,r.r/r4�s
z_bcrypt_test.populate_settingscCsBddlm}m}m}ddlm}|�|�}|d|d�p:d�|�S)z4check if OS crypt is expected to support given identr)�bcryptr�IDENT_2Y)�
safe_crypt�testz04$5BJqKfqMQvV7nS.yUguNcur)�passlib.handlers.bcryptr7rr8�
passlib.utilsr9Zfrom_string�
startswith)r*rr7rr8r9�identr.r.r/�crypt_supports_variant�s
z#_bcrypt_test.crypt_supports_variant)�fuzz_verifier_bcrypt�fuzz_verifier_pybcrypt�fuzz_verifier_bcryptorcsxddlm�m�m�m}m�m}ddlm}m	�zddl
�WntyPYdS0|�r\dS�������fdd�}|S)Nr)r�IDENT_2A�IDENT_2Brr8�_detect_pybcrypt)�
to_native_strrcs��|�jj�}|���r*�|dd�}nN|���rT�|dd�}|rxt|d�}n$|���rx�jdkrx�|dd�}�|�}z��||�|kWSty�td||f��Yn0dS)r7r2N��Hz3.0.0z$bcrypt rejected hash: %r (secret=%r))�FuzzHashGenerator�password_encodingr=r�__version__�hashpw�
ValueError��secretr�rrCrDr8r7r*rr.r/�check_bcrypt�s

z7_bcrypt_test.fuzz_verifier_bcrypt.<locals>.check_bcrypt)r;rrCrDrr8rEr<rFrr7�ImportError)r*rrErFrQr.rPr/r@�s z!_bcrypt_test.fuzz_verifier_bcryptcsnddlm}m�m�m}m�m}ddlm�|�	dd�}|s@dSddlm
�|j��������fdd�}|S)	Nr)rrCrDrr8�_PyBcryptBackend�rF�pybcryptF)�	_pybcryptcs��|�jj�}t|�dkr&|dd�}|���f�rD�|dd�}zR�r���"��||�|kWd�WS1sv0Yn��||�|kWSWn ty�td|f��Yn0dS)rU��Nr2zpy-bcrypt rejected hash: %r)rIrJ�lenr=rLrMrN�rCrDr8Z
bcrypt_mod�lockr*rFr.r/�check_pybcrypts2z;_bcrypt_test.fuzz_verifier_pybcrypt.<locals>.check_pybcrypt)r;rrCrDrr8rSr<rFZ_load_backend_mixinrVZ
_calc_lock)r*rrrSZloadedr[r.rYr/rA�s z#_bcrypt_test.fuzz_verifier_pybcryptcsfddlm�m�m�m�ddlm�zddlm�Wnt	yHYdS0�������fdd�}|S)Nr)rrCr8rDrT)�Enginecsj�|�jj�}|���f�r.�|dd�}n(|���rV�|dd�}|rVt|d�}�d��||�|kS)�bcryptorr2NrGrHF)rIrJr=rZhash_keyrN�r\rrCrDr8r*rFr.r/�check_bcryptors

z;_bcrypt_test.fuzz_verifier_bcryptor.<locals>.check_bcryptor)
r;rrCr8rDr<rFZbcryptor.enginer\rR)r*r_r.r^r/rBs
z#_bcrypt_test.fuzz_verifier_bcryptorcs$eZdZ�fdd�Zdd�Z�ZS)z_bcrypt_test.FuzzHashGeneratorcs�ttj|���}|d}|d}|d}|�d�}|tkrB|d=n>|tkr�|r�tt|�t	t|���t|�kr�|�
�\|d<|d<|S)NrO�other�settingsr>)r%rrI�generater!rrrrrXZrandom_password_pair)r*ZoptsrOr`rar>r,r.r/rb+s
*z'_bcrypt_test.FuzzHashGenerator.generatecCs|�dddd�S�N�����Zrandintgauss�r*r.r.r/�
random_rounds>sz,_bcrypt_test.FuzzHashGenerator.random_rounds)�__name__�
__module__�__qualname__rbrj�
__classcell__r.r.r,r/rI)srI))r:z<$2a$04$oaQbBqq8JnSM1NHRPQGXORY4Vw3bdHKLIXTecPDRAcJ98cz1ilveOz<$2a$04$oaQbBqq8JnSM1NHRPQGXOOY4Vw3bdHKLIXTecPDRAcJ98cz1ilveO)r:�<$2a$04$yjDgE74RJkeqC0/1NheSScrvKeu9IbKDpcQf/Ox3qsrRS/Kw42qIS�<$2a$04$yjDgE74RJkeqC0/1NheSSOrvKeu9IbKDpcQf/Ox3qsrRS/Kw42qIS)r:z<$2a$04$yjDgE74RJkeqC0/1NheSSOrvKeu9IbKDpcQf/Ox3qsrRS/Kw42qIVrpc
	sT��d��j}d}�fdd�}td�D]}||���q(td�D]}||j|jd��d��qB��d	|g�� |jd
ddd
�}Wd�n1s�0Y��|d��j	}|D�]�\}}}	��|g��$��|�
||�|	�Wd�n1s�0Y��g��$��|�
||	�|	�Wd�n1�s60Y��|g��"��|�||��Wd�n1�sv0Y��g��"��|�||	��Wd�n1�s�0Y��|g��"��|�
|�|	�Wd�n1�s�0Y��g��"��|�
|	�|	�Wd�q�1�s20Yq���|�
d�d�dS)z2test passlib correctly handles bcrypt padding bitsrz.*incorrectly set padding bitscsB|�d�rt|�dks$Jd|f����|ddvd|f�dS)N)z$2a$z$2b$�zunexpectedly malformed hash: %rz.Oeuz'unused bits incorrectly set in hash: %r)r=rX�
assertTruerrir.r/�
check_paddingls��z:_bcrypt_test.test_90_bcrypt_padding.<locals>.check_paddingrfrG�r1Zbobzsalt too largez.....................A.rdT)�saltr1ZrelaxedNz<$2b$05$.....................................................z$md5$abc)Zrequire_TEST_MODE�handlerr
Z	genconfig�usingZ
min_roundsrZassertWarningList�assertEqual�known_incorrect_paddingZgenhashrr�verifyZnormhash)
r*r7Z	corr_descrs�irZsamples�pwdZbadZgoodr.rir/�test_90_bcrypt_padding^s4
.242224z#_bcrypt_test.test_90_bcrypt_paddingcCs:|jjdd�}d}d}|�|�|��|�|�|��dS)z$needs_update corrects bcrypt paddingr2rtrorpN)rvrwrrZneeds_updateZassertFalse)r*r7ZBAD1ZGOOD1r.r.r/�test_needs_update_w_padding�s
z(_bcrypt_test.test_needs_update_w_padding) rkrlrm�__doc__rr7rv�reduce_default_rounds�fuzz_salts_need_bcrypt_repairr�known_correct_hashesr
ZCONFIG_2ZCONFIG_A�extend�known_correct_configsZknown_unidentified_hashes�known_malformed_hashesZplatform_crypt_supportr&r4r?rZfuzz_verifiersr@rArBrIryr}r~rnr.r.r,r/rs�	
���W










����
	
 !:rr7rUr]c@s eZdZdd�ejD�ZdZdS)�bcrypt_os_crypt_testcCsg|]}t|d�r|�qS)r)r	)�.0�rowr.r.r/�
<listcomp>�s�zbcrypt_os_crypt_test.<listcomp>FN)rkrlrmrr��has_os_crypt_fallbackr.r.r.r/r��sr�Zos_cryptrcseZdZdZejZdZdZdZ	dde
dfe
�d�dfde
d	fed
d�dfed
d�d
dfed
d�ddfdde
dfe
�d�dfed
d�dfed
d�d
dfed
d�ddfgZ
ddgZgd�Z�fdd�Z�fdd�Zdd�Zd d!�ZGd"d#�d#ej�Zd$d%�Zd&d'�Z�ZS)(�_bcrypt_sha256_testz!base for BCrypt-SHA256 test casesTN)rzJ$bcrypt-sha256$2a,5$E/e/2AOhqM5W/KJTFQzLce$F6dYSxOdAEoJZO2eoHUZWZljW/e0TXO)�password�J$bcrypt-sha256$2a,5$5Hg1DKFqPE8C2aflZ5vVoe$12BjNE0p7axMg55.Y/mHsYiVuFBDQyuzJ$bcrypt-sha256$2a,5$.US1fQ4TQS.ZTz/uJ5Kyn.$QNdPDOTKKT5/sovNz1iWg26quOU4Pjezutf-8)r�zJ$bcrypt-sha256$2b,5$5Hg1DKFqPE8C2aflZ5vVoe$12BjNE0p7axMg55.Y/mHsYiVuFBDQyuzJ$bcrypt-sha256$2b,5$.US1fQ4TQS.ZTz/uJ5Kyn.$QNdPDOTKKT5/sovNz1iWg26quOU4PjeZabc123rHzJ$bcrypt-sha256$2b,5$X1g1nh3g0v4h6970O68cxe$r/hyEtqJ0teqPEmfTLoZ83ciAI1Q74.ZqwrzJ$bcrypt-sha256$2b,5$X1g1nh3g0v4h6970O68cxe$021KLEif6epjot5yoxk0m8I0929ohEaZxyzzJ$bcrypt-sha256$2b,5$X1g1nh3g0v4h6970O68cxe$7.1kgpHduMGEjvM3fX6e/QCvfn6OKja)rzR$bcrypt-sha256$v=2,t=2b,r=5$E/e/2AOhqM5W/KJTFQzLce$WFPIZKtDDTriqWwlmRFfHiOTeheAZWe)r��R$bcrypt-sha256$v=2,t=2b,r=5$5Hg1DKFqPE8C2aflZ5vVoe$wOK1VFFtS8IGTrGa7.h5fs0u84qyPbSzR$bcrypt-sha256$v=2,t=2b,r=5$.US1fQ4TQS.ZTz/uJ5Kyn.$pzzgp40k8reM1CuQb03PvE0IDPQSdV6zR$bcrypt-sha256$v=2,t=2b,r=5$X1g1nh3g0v4h6970O68cxe$zu1cloESVFIOsUIo7fCEgkdHaI9SSuezR$bcrypt-sha256$v=2,t=2b,r=5$X1g1nh3g0v4h6970O68cxe$CBF9csfEdW68xv3DwE6xSULXMtqEFP.zR$bcrypt-sha256$v=2,t=2b,r=5$X1g1nh3g0v4h6970O68cxe$zC/1UDUG2ofEXB6Onr2vvyFzfhEOS3S)z*$bcrypt-sha256$2a,5$5Hg1DKFqPE8C2aflZ5vVoer�r�)z2$bcrypt-sha256$v=2,t=2b,r=5$5Hg1DKFqPE8C2aflZ5vVoer�r�)
zJ$bcrypt-sha256$2a,5$5Hg1DKF!PE8C2aflZ5vVoe$12BjNE0p7axMg55.Y/mHsYiVuFBDQyuzJ$bcrypt-sha256$2c,5$5Hg1DKFqPE8C2aflZ5vVoe$12BjNE0p7axMg55.Y/mHsYiVuFBDQyuzJ$bcrypt-sha256$2x,5$5Hg1DKFqPE8C2aflZ5vVoe$12BjNE0p7axMg55.Y/mHsYiVuFBDQyuzK$bcrypt-sha256$2a,05$5Hg1DKFqPE8C2aflZ5vVoe$12BjNE0p7axMg55.Y/mHsYiVuFBDQyuz+$bcrypt-sha256$2a,5$5Hg1DKFqPE8C2aflZ5vVoe$zR$bcrypt-sha256$v=2,t=2b,r=5$5Hg1DKF!PE8C2aflZ5vVoe$12BjNE0p7axMg55.Y/mHsYiVuFBDQyuzR$bcrypt-sha256$v=1,t=2b,r=5$5Hg1DKFqPE8C2aflZ5vVoe$12BjNE0p7axMg55.Y/mHsYiVuFBDQyuzR$bcrypt-sha256$v=3,t=2b,r=5$5Hg1DKFqPE8C2aflZ5vVoe$12BjNE0p7axMg55.Y/mHsYiVuFBDQyuzR$bcrypt-sha256$v=2,t=2c,r=5$5Hg1DKFqPE8C2aflZ5vVoe$12BjNE0p7axMg55.Y/mHsYiVuFBDQyuzR$bcrypt-sha256$v=2,t=2a,r=5$5Hg1DKFqPE8C2aflZ5vVoe$12BjNE0p7axMg55.Y/mHsYiVuFBDQyuzR$bcrypt-sha256$v=2,t=2x,r=5$5Hg1DKFqPE8C2aflZ5vVoe$12BjNE0p7axMg55.Y/mHsYiVuFBDQyuzS$bcrypt-sha256$v=2,t=2b,r=05$5Hg1DKFqPE8C2aflZ5vVoe$12BjNE0p7axMg55.Y/mHsYiVuFBDQyuz3$bcrypt-sha256$v=2,t=2b,r=5$5Hg1DKFqPE8C2aflZ5vVoe$csrtd�rT|jdkrTd}tj�|�}|r:|�tjj||�n|�tjj|�dtj|<tt	|��
�t�dd�dS)NrrrZenabledrr)
r
rrr r!r"r#r$r%r�r&r'r(r)r,r.r/r&@s
z_bcrypt_sha256_test.setUpcs*|jdkr|�dd�tt|��|�dSr0)rr3r%r�r4r5r,r.r/r4Ms
z%_bcrypt_sha256_test.populate_settingscCs|�d��dS)Nzmultiple idents not supported)ZskipTestrir.r.r/�require_many_identsWsz'_bcrypt_sha256_test.require_many_identscCs&|j}|dd�|jt|ddd�dS)NT)�use_defaultsz$2y$)r>r�)rv�assertRaisesrM)r*rvr.r.r/�test_30_HasOneIdentZs
z'_bcrypt_sha256_test.test_30_HasOneIdentc@seZdZdd�Zdd�ZdS)z%_bcrypt_sha256_test.FuzzHashGeneratorcCs|�dddd�Srcrhrir.r.r/rjfsz3_bcrypt_sha256_test.FuzzHashGenerator.random_roundscCsdS)N�2br.rir.r.r/�random_identjsz2_bcrypt_sha256_test.FuzzHashGenerator.random_identN)rkrlrmrjr�r.r.r.r/rIdsrIcCsd|j}|�|jd�|jdd�}|�|jd�|jt|jdd�|jddd�}|jt|jdd�dS)N�rg)�versioni�Z2a)r�r>)r>)rvrxr�rwr�rM)r*rv�subclsr.r.r/�test_using_versionqsz&_bcrypt_sha256_test.test_using_versionc	Cs�ddlm}ddlm}ddlm}d}d}|d|�d��|�d��}||��d�}|�|d	�|d
|dd��	|�}|�|d
�|�
|�|d||��|jd
|dd��	|�}|�||�dS)z6
        test digest calc v2 matches bcrypt()
        r)r7)�compile_hmac)�	b64encodeZnyKYxTAvjmy6lMDYMl11Uur:Zsha256�asciiz,J5TlyIDm+IcSWmKiDJm+MeICndBkFVPn4kKdJW8f+xY=r��)r>rur1zM0wE0Ov/9LXoQFCe.jRHu3MSHPF54Taz$2b$12$N)
Zpasslib.hashr7Zpasslib.crypto.digestr�Zpasslib.utils.binaryr��encode�decoderxZ_calc_checksumrrrzrv)	r*r7r�r�rurOZtemp_digestZ
bcrypt_digest�resultr.r.r/�test_calc_digest_v2�sz'_bcrypt_sha256_test.test_calc_digest_v2)rkrlrmrrZ
bcrypt_sha256rvr�Zforbidden_charactersr�rr�rr�r�r�r&r4r�r�rrIr�r�rnr.r.r,r/r��sn������	������A�	4



r�c@seZdZedd��ZdZdS)�bcrypt_sha256_os_crypt_testcCst��S)N)r��_get_safe_crypt_handler_backend)�clsr.r.r/r��sz;bcrypt_sha256_os_crypt_test._get_safe_crypt_handler_backendFN)rkrlrm�classmethodr�r�r.r.r.r/r��s
r�)'rZ
__future__rZloggingZ	getLoggerrk�logrr'Zpasslibrr;rrr<rrr	Zpasslib.utils.compatr
rZpasslib.tests.utilsrr
Zpasslib.tests.test_handlersrrZcreate_backend_caseZbcrypt_bcrypt_testZbcrypt_pybcrypt_testZbcrypt_bcryptor_testr�Zbcrypt_builtin_testr�Zbcrypt_sha256_bcrypt_testZbcrypt_sha256_pybcrypt_testZbcrypt_sha256_bcryptor_testr�Zbcrypt_sha256_builtin_testr.r.r.r/�<module>s4


	
d




Youez - 2016 - github.com/yon3zu
LinuXploit