Ϫf_VdZddlmZddlmZddlmZeeGddZy)zg Implementation of RFC2617: HTTP Digest Authentication @see: U{http://www.faqs.org/rfcs/rfc2617.html} ) implementer) credentials)ICredentialFactoryc&eZdZdZdZdZdZdZy)DigestCredentialFactoryzp Wrapper for L{digest.DigestCredentialFactory} that implements the L{ICredentialFactory} interface. sdigestc:tj|||_y)zN Create the digest credential factory that this object wraps. N)rrdigest)self algorithmauthenticationRealms :/usr/lib/python3/dist-packages/twisted/web/_auth/digest.py__init__z DigestCredentialFactory.__init__s"99 *  ch|jj|jjS)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 getChallengegetClientAddresshost)r requests r rz$DigestCredentialFactory.getChallenge#s({{''(@(@(B(G(GHHrc|jj||j|jjS)z Create a L{twisted.cred.credentials.DigestedCredentials} object from the given response and request. @see: L{ICredentialFactory.decode} )r decodemethodrr)r responsers r rzDigestCredentialFactory.decode/s5{{!! gnng&>&>&@&E&E  rN)__name__ __module__ __qualname____doc__schemerrrrr rrs F  I  rrN)rzope.interfacer twisted.credrtwisted.web.iwebrrrrr r"s4 '$/  % % !% r