File: //lib/python3/dist-packages/twisted/web/_auth/__pycache__/digest.cpython-310.pyc
o
�b_ � @ sB d Z ddlmZ ddlmZ ddlmZ ee�G dd� d��ZdS )zg
Implementation of RFC2617: HTTP Digest Authentication
@see: U{http://www.faqs.org/rfcs/rfc2617.html}
� )�implementer)�credentials)�ICredentialFactoryc @ s, e Zd ZdZdZdd� Zdd� Zdd� Zd S )
�DigestCredentialFactoryzp
Wrapper for L{digest.DigestCredentialFactory} that implements the
L{ICredentialFactory} interface.
s digestc C s t �||�| _dS )zN
Create the digest credential factory that this object wraps.
N)r r �digest)�self� algorithm�authenticationRealm� r
�:/usr/lib/python3/dist-packages/twisted/web/_auth/digest.py�__init__ s
�z DigestCredentialFactory.__init__c C s | j �|�� j�S )aA
Generate the challenge for use in the WWW-Authenticate header
@param request: The L{IRequest} to with access was denied and for the
response to which this challenge is being generated.
@return: The L{dict} that can be used to generate a WWW-Authenticate
header.
)r �getChallenge�getClientAddress�host)r �requestr
r
r r
# s
z$DigestCredentialFactory.getChallengec C s | j �||j|�� j�S )z�
Create a L{twisted.cred.credentials.DigestedCredentials} object
from the given response and request.
@see: L{ICredentialFactory.decode}
)r �decode�methodr r )r �responser r
r
r r / s �zDigestCredentialFactory.decodeN)�__name__�
__module__�__qualname__�__doc__�schemer r
r r
r
r
r r s r N)r �zope.interfacer �twisted.credr �twisted.web.iwebr r r
r
r
r �<module> s