� H�gt7����dZddlZeje��ZddlZddlmZdgZd�Z ddl m Z m Z m Z e e ��Gd�de����ZGd�d e��ZdS) z1passlib.ifc - abstract interfaces used by Passlib�N)�deprecated_method� PasswordHashc����fd�}|S)z5class decorator that re-creates class using metaclassc����t|��ur|S�|j|j|j�����S�N)�type�__name__� __bases__�__dict__�copy)�cls�metas ��[/home/asafur/pinokio/api/open-webui.git/app/env/lib/python3.11/site-packages/passlib/ifc.py�builderz(recreate_with_metaclass.<locals>.builders?��� �4��9�9� � ��J��t�C�L�#�-���1B�1B�1D�1D�E�E�E��)rrs` r�recreate_with_metaclassrs(���F�F�F�F�F� �Nr)�ABCMeta�abstractmethod�abstractpropertyc��eZdZdZdZdZdZdZee d�����Z e ddd� ��ed �����Z ee d �����Z ee dd �����Zedd ���Zee d�����Ze dd���ed�����Ze dd���ed�����ZdZdS)rz�This 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. FNTc � �td���)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)r �secret�setting_and_context_kwdss r�hashzPasswordHash.hashrs��6"�"C�D�D�Drz1.7z2.0z.hash())� deprecated�removed� replacementc��|j|i|��S)a 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�encryptzPasswordHash.encrypt�s���s�x��&��&�&�&rc � �td���)z.verify secret against hash, returns True/Falserr)r rr� context_kwdss r�verifyzPasswordHash.verify����"�"C�D�D�Drc � �td���)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. rr)r �relaxedr%s r�usingzPasswordHash.using�s��&"�"C�D�D�Drc��dS)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 Fr)r rrs r� needs_updatezPasswordHash.needs_update�s ��(�urc� �td���)z8check if hash belongs to this scheme, returns True/Falserr�r rs r�identifyzPasswordHash.identify�r*r)rr c �n�|jrtd���|jdi|���d��S)a� 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(rr-r)r � setting_kwdss r� genconfigzPasswordHash.genconfig�sE��$ � � I�%�&G�H�H� H��s�y�(�(�<�(�(�-�-�b�1�1�1rc � �td���)a1 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. rr)r r�config�contexts r�genhashzPasswordHash.genhash�s��"�"C�D�D�Dr)Fr)r � __module__� __qualname__�__doc__� is_disabled� truncate_size�truncate_error�truncate_verify_reject� classmethodrrrr&r)r-r/r2r6r:rrrrrr%s���������(�K��M��N� "��6��E�E��^��[�E�6��%��I�N�N�N�� '� '��[�O�N� '���E�E��^��[�E���E�E�E��^��[�E�,�����[��0��E�E��^��[�E���%��7�7�7��2�2��[�8�7�2�(��%��7�7�7�� E� E��[�8�7� E�@�J�J�Jrc�D�eZdZdZdZedd���Zed���ZdS)� DisabledHashzR extended disabled-hash methods; only need be present if .disabled = True TNc�,�|�d��S)z� return string representing a 'disabled' hash; optionally including previously enabled hash (this is up to the individual scheme). r4r#r1s r�disablezDisabledHash.disableKs���x�x��|�|�rc� �td���)z� given a disabled-hash string, extract previously-enabled hash if one is present, otherwise raises ValueError zcannot restore original hash)� ValueErrorr1s r�enablezDisabledHash.enableUs���7�8�8�8rr)r r;r<r=r>rBrFrIrrrrDrDDs^���������K������[���9�9��[�9�9�9rrD)r=�logging� getLoggerr �log�sys�passlib.utils.decorr�__all__r�abcrrr�objectrrDrrr�<module>rRs���7�7� ����'�g�'��1�1�� � � � �2�1�1�1�1�1�� �����:�9�9�9�9�9�9�9�9�9����!�!�q�q�q�q�q�6�q�q�"�!�q�|9�9�9�9�9�<�9�9�9�9�9r
Memory