HEX
Server: Apache
System: Linux scp1.abinfocom.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: confeduphaar (1010)
PHP: 8.1.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //lib/python3/dist-packages/twisted/cred/__pycache__/_digest.cpython-38.pyc
U


W[�@sZdZddlmZmZddlmZddlmZmZeeed�Z	d
dd�Z
d	d
�Zdd�ZdS)z^
Calculations for HTTP Digest authentication.

@see: U{http://www.faqs.org/rfcs/rfc2617.html}
�)�division�absolute_import)�hexlify)�md5�sha1)smd5�md5-sesssshaNc	Cs�|r|s|s|rtd��|dkrjt|�}|�|�|�d�|�|�|�d�|�|�t|���}n|}|dkr�t|�}|�|�|�d�|�|�|�d�|�|�t|���}|S)a:
    Compute H(A1) from RFC 2617.

    @param pszAlg: The name of the algorithm to use to calculate the digest.
        Currently supported are md5, md5-sess, and sha.
    @param pszUserName: The username
    @param pszRealm: The realm
    @param pszPassword: The password
    @param pszNonce: The nonce
    @param pszCNonce: The cnonce

    @param preHA1: If available this is a str containing a previously
       calculated H(A1) as a hex string.  If this is given then the values for
       pszUserName, pszRealm, and pszPassword must be L{None} and are ignored.
    zPpreHA1 is incompatible with the pszUserName, pszRealm, and pszPassword argumentsN�:r)�	TypeError�
algorithms�updater�digest)	ZpszAlgZpszUserNameZpszRealmZpszPassword�pszNonce�	pszCNonceZpreHA1�m�HA1�r�6/usr/lib/python3/dist-packages/twisted/cred/_digest.py�calcHA1$s(











rcCsPt|�}|�|�|�d�|�|�|dkrD|�d�|�|�t|���S)a�
    Compute H(A2) from RFC 2617.

    @param pszAlg: The name of the algorithm to use to calculate the digest.
        Currently supported are md5, md5-sess, and sha.
    @param pszMethod: The request method.
    @param pszDigestUri: The request URI.
    @param pszQop: The Quality-of-Protection value.
    @param pszHEntity: The hash of the entity body or L{None} if C{pszQop} is
        not C{'auth-int'}.
    @return: The hash of the A2 value for the calculation of the response
        digest.
    rsauth-int�r
rrr)�algoZ	pszMethodZpszDigestUri�pszQopZ
pszHEntityrrrr�calcHA2Ss





rc	Cs�t|�}|�|�|�d�|�|�|�d�|rv|rv|�|�|�d�|�|�|�d�|�|�|�d�|�|�t|���}|S)a�
    Compute the digest for the given parameters.

    @param HA1: The H(A1) value, as computed by L{calcHA1}.
    @param HA2: The H(A2) value, as computed by L{calcHA2}.
    @param pszNonce: The challenge nonce.
    @param pszNonceCount: The (client) nonce count value for this response.
    @param pszCNonce: The client nonce.
    @param pszQop: The Quality-of-Protection value.
    rr)	rZHA2rr
Z
pszNonceCountrrrZrespHashrrr�calcResponseks











r)N)
�__doc__Z
__future__rrZbinasciirZhashlibrrr
rrrrrrr�<module>s	��
/