+
    THi.                    `    ^ RI Ht ^ RIHtHt ^ RIHt R.t ! R R]4      t ! R R]4      t	R# )	    )annotations)ABCabstractmethod)deprecated_methodPasswordHashc                  :   ] tR t^t$ RtRtRtR]R&   RtRt	]
]R 4       4       t]! RR	R
R7      ]
R 4       4       t]
]R 4       4       t]
]RR l4       4       t]
RR l4       t]
]R 4       4       t]! RR	R7      ]
R 4       4       t]! RR	R7      ]
R 4       4       tRtRtR# )r   zThis class describes an abstract interface which all password hashes
in Passlib adhere to. Under Python 2.6 and up, this is an actual
Abstract Base Class built using the :mod:`!abc` module.

See the Passlib docs for full documentation.
FNz
int | Nonetruncate_sizeTc                    \        R4      h)a  
Hash secret, returning result.
Should handle generating salt, etc, and should return string
containing identifier, salt & other configuration, as well as digest.

:param \\*\\*settings_kwds:

    Pass in settings to customize configuration of resulting hash.

    .. deprecated:: 1.7

        Starting with Passlib 1.7, callers should no longer pass settings keywords
        (e.g. ``rounds`` or ``salt`` directly to :meth:`!hash`); should use
        ``.using(**settings).hash(secret)`` construction instead.

        Support will be removed in Passlib 2.0.

:param \\*\\*context_kwds:

    Specific algorithms may require context-specific information (such as the user login).
must be implemented by subclassNotImplementedError)clssecretsetting_and_context_kwdss   &&,-/usr/lib/python3/dist-packages/passlib/ifc.pyhashPasswordHash.hashR   s    < ""CDD    z1.7z2.0z.hash())
deprecatedremovedreplacementc                &    V P                   ! V/ VB # )z
Legacy alias for :meth:`hash`.

.. deprecated:: 1.7
    This method was renamed to :meth:`!hash` in version 1.7.
    This alias will be removed in version 2.0, and should only
    be used for compatibility with Passlib 1.3 - 1.6.
r   )r   argskwdss   &*,r   encryptPasswordHash.encryptr   s     xx&&&r   c                    \        R4      h)z.verify secret against hash, returns True/Falser   r   )r   r   r   context_kwdss   &&&,r   verifyPasswordHash.verify   s     ""CDDr   c                    \        R4      h)a  
Return another hasher object (typically a subclass of the current one),
which integrates the configuration options specified by ``kwds``.
This should *always* return a new object, even if no configuration options are changed.

.. todo::

    document which options are accepted.

:returns:
    typically returns a subclass for most hasher implementations.

.. todo::

    add this method to main documentation.
r   r   )r   relaxedr   s   &&,r   usingPasswordHash.using   s    & ""CDDr   c                    R# )a  
check if hash's configuration is outside desired bounds,
or contains some other internal option which requires
updating the password hash.

:param hash:
    hash string to examine

:param secret:
    optional secret known to have verified against the provided hash.
    (this is used by some hashes to detect legacy algorithm mistakes).

:return:
    whether secret needs re-hashing.

.. versionadded:: 1.7
F )r   r   r   s   &&&r   needs_updatePasswordHash.needs_update   s    ( r   c                    \        R4      h)z8check if hash belongs to this scheme, returns True/Falser   r   r   r   s   &&r   identifyPasswordHash.identify   s     ""CDDr   )r   r   c                ~    V P                   '       d   \        R4      hV P                  ! R/ VB P                  R4      # )am  
compile settings into a configuration string for genhash()

.. deprecated:: 1.7

    As of 1.7, this method is deprecated, and slated for complete removal in Passlib 2.0.

    For all known real-world uses, hashing a constant string
    should provide equivalent functionality.

    This deprecation may be reversed if a use-case presents itself in the mean time.
r    r'   )r   r   r$   r   )r   setting_kwdss   &,r   	genconfigPasswordHash.genconfig   s9    $ %&GHHyy(<(--b11r   c                    \        R4      h)a	  
generated hash for secret, using settings from config/hash string

.. deprecated:: 1.7

    As of 1.7, this method is deprecated, and slated for complete removal in Passlib 2.0.

    This deprecation may be reversed if a use-case presents itself in the mean time.
r   r   )r   r   configcontexts   &&&,r   genhashPasswordHash.genhash   s     ""CDDr   r'   )FN)__name__
__module____qualname____firstlineno____doc__is_disabledr	   __annotations__truncate_errortruncate_verify_rejectclassmethodr   r   r   r   r    r$   r(   r,   r1   r6   r   __static_attributes__r'   r   r   r   r      s*   " K !%M:$ N ". E  E< %IN	'  O	' E  E E  E&  * E  E %72  82( %7E  8E: Jr   c                  B    ] tR tRtRtRt]RR l4       t]R 4       tRt	R# )	DisabledHashi  zJ
extended disabled-hash methods; only need be present if .disabled = True
TNc                $    V P                  R4      # )z
return string representing a 'disabled' hash;
optionally including previously enabled hash
(this is up to the individual scheme).
r/   r   r+   s   &&r   disableDisabledHash.disable!  s     xx|r   c                    \        R4      h)zn
given a disabled-hash string,
extract previously-enabled hash if one is present,
otherwise raises ValueError
zcannot restore original hash)
ValueErrorr+   s   &&r   enableDisabledHash.enable+  s     788r   r'   r8   )
r9   r:   r;   r<   r=   r>   rB   rG   rK   rC   r'   r   r   rE   rE     s4     K  9 9r   rE   N)

__future__r   abcr   r   passlib.utils.decorr   __all__r   rE   r'   r   r   <module>rQ      s5    " # 1 
c3 cZ9< 9r   