__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

[email protected]: ~ $
�

XR_B7�
�t�SrSSKJrJr SSKr\R
"\5rSSKJ	r
 SSKJrJ
r
 SSKJrJrJr SSKJrJrJr SSKJr SSKJs Jr S	/r\"S
5r\"S5r\"S5r"S
S	\R>\R@\RB\RD\RF\RH5r	g)z/passlib.handlers.scrypt -- scrypt password hash�)�with_statement�absolute_importN)�scrypt)�h64�to_bytes)r�b64s_decode�b64s_encode)�u�
bascii_to_str�suppress_cause)�
classpropertyrz$scrypt$z$7$�$c�B^�\rSrSrSrSrSrSr\r	\\
4rSrSr
SrSrSrS	rSrS
r\SU4Sjj5r\S5r\S
5r\S5r\S5rSrSU4Sjjr\SSj5rU4Sjr\S5r\S5r \SSj5r!\SSj5r"Sr#U4Sjr$Sr%U=r&$)r�!a�This class implements an SCrypt-based password [#scrypt-home]_ hash, and follows the :ref:`password-hash-api`.

It supports a variable-length salt, a variable number of rounds,
as well as some custom tuning parameters unique to scrypt (see below).

The :meth:`~passlib.ifc.PasswordHash.using` method accepts the following optional keywords:

:type salt: str
:param salt:
    Optional salt string.
    If specified, the length must be between 0-1024 bytes.
    If not specified, one will be auto-generated (this is recommended).

:type salt_size: int
:param salt_size:
    Optional number of bytes to use when autogenerating new salts.
    Defaults to 16 bytes, but can be any value between 0 and 1024.

:type rounds: int
:param rounds:
    Optional number of rounds to use.
    Defaults to 16, but must be within ``range(1,32)``.

    .. warning::

        Unlike many hash algorithms, increasing the rounds value
        will increase both the time *and memory* required to hash a password.

:type block_size: int
:param block_size:
    Optional block size to pass to scrypt hash function (the ``r`` parameter).
    Useful for tuning scrypt to optimal performance for your CPU architecture.
    Defaults to 8.

:type parallelism: int
:param parallelism:
    Optional parallelism to pass to scrypt hash function (the ``p`` parameter).
    Defaults to 1.

:type relaxed: bool
:param relaxed:
    By default, providing an invalid value for one of the other
    keywords will result in a :exc:`ValueError`. If ``relaxed=True``,
    and the error can be corrected, a :exc:`~passlib.exc.PasslibHashWarning`
    will be issued instead. Correctable errors include ``rounds``
    that are too small or too large, and ``salt`` strings that are too long.

.. note::

    The underlying scrypt hash function has a number of limitations
    on it's parameter values, which forbids certain combinations of settings.
    The requirements are:

    * ``linear_rounds = 2**<some positive integer>``
    * ``linear_rounds < 2**(16 * block_size)``
    * ``block_size * parallelism <= 2**30-1``

.. todo::

    This class currently does not support configuring default values
    for ``block_size`` or ``parallelism`` via a :class:`~passlib.context.CryptContext`
    configuration.
)�ident�salt�	salt_size�rounds�
block_size�parallelism� �i���log2�c	�>�[[U]
"S0UD6nUbM[U[R
5(a[
U5nURXRS5S9Ul	[R"SUR-URUR5 U$![a%n[[S[!U5-55eSnAff=f)N�relaxed)rrz&scrypt: invalid settings combination: �)�superr�using�
isinstance�uh�native_string_types�int�_norm_block_size�getr�_scrypt�validate�default_roundsr�
ValueErrorr�str)�clsr�kwds�subcls�err�	__class__s     ��9/usr/lib/python3/dist-packages/passlib/handlers/scrypt.pyr!�scrypt.using�s�����v�s�)�1�D�1���!��*�b�&<�&<�=�=� ��_�
� &� 7� 7�
�H�H�U^�L_� 7� `�F��	b����Q�#�"4�"4�4�c�n�n�c�o�o�V��
���	b� ��,T�WZ�[^�W_�,_�!`�a�a��	b�s�'9B"�"
C�, C�Cc�0�U"S0URU5D6$)Nr)�parse)r-�hashs  r2�from_string�scrypt.from_string�s���%�S�Y�Y�t�_�%�%�c���URU5up#[USUR[5-S5nU(aU"U5$[R
R
U5e)Nz_parse_%s_string)�_parse_ident�getattr�strip�_UDOLLARr#�exc�InvalidHashError)r-r6r�suffix�funcs     r2r5�scrypt.parse�sS���(�(��.�
���s�.����X�1F�F��M�����<���&�&�)�)�#�.�.r9c��URS5n[U5S:XaUup4nO6[U5S:XaUup4SnO [RR	US5eURS5n[U5S:XaNUupgnURS5(deURS5(deURS5(deO [RR	US	5e[
[[USS5[USS5[USS5[URS
55U(a[URS
55S9$SS9$)Nr��zmalformed hash�,zln=zr=zp=zmalformed settings field�ascii�rrrrr�checksum)�split�lenr#r?�MalformedHashError�
startswith�dict�IDENT_SCRYPTr%r�encode)	r-rA�parts�paramsr�digest�nstr�bstr�pstrs	         r2�_parse_scrypt_string�scrypt._parse_scrypt_string�s>�����S�!���u�:��?�#(� �F�&�
��Z�1�_� �L�F��F��&�&�+�+�C�1A�B�B����S�!���u�:��?�$��D���?�?�5�)�)�)�)��?�?�4�(�(�(�(��?�?�4�(�(�(�(��&�&�+�+�C�1K�L�L����t�A�B�x�=��4���8�}��D���H�
��T�[�[��1�2�<B�[����w�!7�8�
�	�IM�
�	r9c
�"�URS5RS5n[U5S:XaUup4O4[U5S:XaUunSnO[RR5e[U5S:a [RRUS5e[
[[R"USS5[R"USS5[R"USS5USSU(a[R"U5S9$SS9$)	NrH�$rFr�zparams field too short�rI)rQrKrLr#r?rMrO�IDENT_7r�decode_int6�decode_int30�decode_bytes)r-rArRrSrTs     r2�_parse_7_string�scrypt._parse_7_string�s����
�
�g�&�,�,�T�2���u�:��?�"�N�F�F�
��Z�1�_��G�F��F��&�&�+�+�-�-��v�;����&�&�+�+�C�1I�J�J����?�?�6�"�1�:�.��'�'��q���4��(�(���"��6�����17�S�%�%�f�-�

�	
�>B�

�	
r9c
���URnU[:Xa`SURURUR[[
UR55[[
UR554-$U[:XdeURnURS5 [SRS[R "UR5[R""UR5[R""UR5URS[R$"UR5/55$![a [[S55ef=f)Nz$scrypt$ln=%d,r=%d,p=%d$%s$%srHz.scrypt $7$ hashes dont support non-ascii saltsr9s$7$r[)rrPrrrrr	rrJr^�decode�UnicodeDecodeErrorr�NotImplementedError�joinr�encode_int6�encode_int30�encode_bytes)�selfrrs   r2�	to_string�scrypt.to_strings"���
�
���L� �2�������� � ��k�$�)�)�4�5��k�$�-�-�8�9�6��
��G�#�#�#��9�9�D�
l����G�$�!�����������,�� � ����1�� � ��!1�!1�2��	�	��� � ����/�+�"��
��&�
l�$�%8�9i�%j�k�k�
l�s�E�E#c��>�[[U]
"S0UD6 Uc2[R"XR
URSS9(degUR
U5Ulg)Nr��paramr)r r�__init__r#�validate_default_valuerr&)rlrr.r1s   �r2rr�scrypt.__init__1s]���
�f�d�$�,�t�,����,�,�T�?�?�D�DY�DY�3?�A�
A�A�#�3�3�J�?�D�Or9c�0�[R"XSSUS9$)Nrr)�minrqr)r#�norm_integer)r-rrs   r2r&�scrypt._norm_block_size>s�����s�A�\�SZ�[�[r9c�j>�[[U]5nUR[:Xa[U5nU$�N)r r�_generate_saltrr^r	)rlrr1s  �r2r{�scrypt._generate_saltBs/����V�T�1�3���:�:�� ��t�$�D��r9c�"�[R$rz)r(�backend_values�r-s r2�backends�scrypt.backendsPs���%�%�%r9c�"�[R$rz)r(�backendrs r2�get_backend�scrypt.get_backendTs�����r9c�n�URUSS9 g![RRa gf=f)NT��dryrunF)�set_backendr#r?�MissingBackendError)r-�names  r2�has_backend�scrypt.has_backendXs6��	��O�O�D��O�.����v�v�)�)�	��	�s��4�4c�,�[R"XS9 g)Nr�)r(�_set_backend)r-r�r�s   r2r��scrypt.set_backend`s�����T�1r9c	��[USS9n[R"XRSUR-UR
URURS9$)N�secretrpr)�n�r�p�keylen)rr(rrrrr�
checksum_size)rlr�s  r2�_calc_checksum�scrypt._calc_checksumgsI���&��1���~�~�f�i�i�A����4D���� $� 0� 0��9K�9K�M�	Mr9c�t>�UR[U5R:wag[[U]"S0UD6$)zB
mark hash as needing update if rounds is outside desired bounds.
Tr)r�typer r�_calc_needs_update)rlr.r1s  �r2r��scrypt._calc_needs_updateps3���
�?�?�d�4�j�3�3�3���V�T�5�=��=�=r9)rrz)F)�any)r�F)'�__name__�
__module__�__qualname__�__firstlineno__�__doc__r��setting_kwdsr�rP�
default_identr^�ident_values�default_salt_size�
max_salt_sizer*�
min_rounds�
max_rounds�rounds_costrr�classmethodr!r7r5rXrbrmrrr&r{r
r�r�r�r�r�r��__static_attributes__�
__classcell__)r1s@r2rr!sI���>�N�D�X�L��M�
!�M� �'�*�L�
���M��N��J��J��K��K��J��
��
�&�&��&��/��/�&����Z�
��
�:�<@��\��\���&��&����������2��2�M�>�>r9)%r��
__future__rr�logging�	getLoggerr��log�passlib.cryptorr(�
passlib.utilsrr�passlib.utils.binaryrr	�passlib.utils.compatr
rr�passlib.utils.decorr
�passlib.utils.handlers�utils�handlersr#�__all__rPr^r>�ParallelismMixin�	HasRounds�
HasRawSalt�HasRawChecksum�
HasManyIdents�GenericHandlerrr9r2�<module>r�s���5�7��g�'�'��1��-�'�>�>�A�A�-�#�#�
�����}��
�E�(���S�6��
V>�R�
 �
 �"�,�,��
�
�r�?P�?P�RT�Rb�Rb�
�
�
�V>r9

Filemanager

Name Type Size Permission Actions
__init__.cpython-313.pyc File 250 B 0644
argon2.cpython-313.pyc File 29.75 KB 0644
bcrypt.cpython-313.pyc File 38.25 KB 0644
cisco.cpython-313.pyc File 12.55 KB 0644
des_crypt.cpython-313.pyc File 20.36 KB 0644
digests.cpython-313.pyc File 6.2 KB 0644
django.cpython-313.pyc File 20.54 KB 0644
fshp.cpython-313.pyc File 7.61 KB 0644
ldap_digests.cpython-313.pyc File 13.81 KB 0644
md5_crypt.cpython-313.pyc File 8.95 KB 0644
misc.cpython-313.pyc File 11.23 KB 0644
mssql.cpython-313.pyc File 9.08 KB 0644
mysql.cpython-313.pyc File 4.29 KB 0644
oracle.cpython-313.pyc File 6.42 KB 0644
pbkdf2.cpython-313.pyc File 17.2 KB 0644
phpass.cpython-313.pyc File 4.8 KB 0644
postgres.cpython-313.pyc File 2.03 KB 0644
roundup.cpython-313.pyc File 886 B 0644
scram.cpython-313.pyc File 14.6 KB 0644
scrypt.cpython-313.pyc File 12.57 KB 0644
sha1_crypt.cpython-313.pyc File 5.76 KB 0644
sha2_crypt.cpython-313.pyc File 15.02 KB 0644
sun_md5_crypt.cpython-313.pyc File 11.85 KB 0644
windows.cpython-313.pyc File 10.9 KB 0644
Filemanager