§
    ë9ÁdÉ
  ã                   ór   — d Z ddlZddlZddlZddlmZ ddedefd„Zddedeeef         fd	„Z	d
edefd„Z
dS )a+  Simple module to generate PKCE code verifier and code challenge.

Examples
--------
>>> import pkce
>>> code_verifier, code_challenge = pkce.generate_pkce_pair()

>>> import pkce
>>> code_verifier = pkce.generate_code_verifier(length=128)
>>> code_challenge = pkce.get_code_challenge(code_verifier)
é    N)ÚTupleé€   ÚlengthÚreturnc                 ó~   — d| cxk    rdk    sn d}t          |¦  «        ‚t          j        d¦  «        d| …         }|S )aE  Return a random PKCE-compliant code verifier.

    Parameters
    ----------
    length : int
        Code verifier length. Must verify `43 <= length <= 128`.

    Returns
    -------
    code_verifier : str
        Code verifier.

    Raises
    ------
    ValueError
        When `43 <= length <= 128` is not verified.
    é+   r   z5Parameter `length` must verify `43 <= length <= 128`.é`   N)Ú
ValueErrorÚsecretsÚtoken_urlsafe)r   ÚmsgÚcode_verifiers      ú-lib/python3.11/site-packages/pkce/__init__.pyÚgenerate_code_verifierr      sS   € ð$ ÐÐÒÐ˜3ÒÐÐÐØEˆÝ˜‰oŒoÐÝÔ)¨"Ñ-Ô-¨g¨v¨gÔ6€MØÐó    Úcode_verifier_lengthc                 ó   — d| cxk    rdk    sn d}|dz  }t          |¦  «        ‚t          | ¦  «        }t          |¦  «        }||fS )aŠ  Return random PKCE-compliant code verifier and code challenge.

    Parameters
    ----------
    code_verifier_length : int
        Code verifier length. Must verify
        `43 <= code_verifier_length <= 128`.

    Returns
    -------
    code_verifier : str
    code_challenge : str

    Raises
    ------
    ValueError
        When `43 <= code_verifier_length <= 128` is not verified.
    r   r   z-Parameter `code_verifier_length` must verify z$`43 <= code_verifier_length <= 128`.)r
   r   Úget_code_challenge)r   r   r   Úcode_challenges       r   Úgenerate_pkce_pairr   ,   sf   € ð& Ð%Ð,Ð,Ò,Ð,¨Ò,Ð,Ð,Ð,Ø=ˆØÐ5Ñ5ˆÝ˜‰oŒoÐÝ*Ð+?Ñ@Ô@€MÝ'¨Ñ6Ô6€NØ˜.Ð(Ð(r   r   c                 ó>  — dt          | ¦  «        cxk    rdk    sn d}|dz  }t          |¦  «        ‚t          j        |                      d¦  «        ¦  «                             ¦   «         }t          j        |¦  «        }|                     d¦  «        dd…         }|S )aœ  Return the PKCE-compliant code challenge for a given verifier.

    Parameters
    ----------
    code_verifier : str
        Code verifier. Must verify `43 <= len(code_verifier) <= 128`.

    Returns
    -------
    code_challenge : str
        Code challenge that corresponds to the input code verifier.

    Raises
    ------
    ValueError
        When `43 <= len(code_verifier) <= 128` is not verified.
    r   r   z&Parameter `code_verifier` must verify z"`43 <= len(code_verifier) <= 128`.ÚasciiNéÿÿÿÿ)	Úlenr
   ÚhashlibÚsha256ÚencodeÚdigestÚbase64Úurlsafe_b64encodeÚdecode)r   r   ÚhashedÚencodedr   s        r   r   r   H   s    € ð$ •]Ñ#Ô#Ð*Ð*Ò*Ð* sÒ*Ð*Ð*Ð*Ø6ˆØÐ3Ñ3ˆÝ˜‰oŒoÐÝŒ^˜M×0Ò0°Ñ9Ô9Ñ:Ô:×AÒAÑCÔC€FÝÔ& vÑ.Ô.€GØ—^’^ GÑ,Ô,¨S¨b¨SÔ1€NØÐr   )r   )Ú__doc__r   r   r   Útypingr   ÚintÚstrr   r   r   © r   r   ú<module>r)      sÀ   ðð
ð 
ð €€€Ø €€€Ø €€€Ø Ð Ð Ð Ð Ð ðð  3ð °ð ð ð ð ð2)ð )¨Sð )¸5ÀÀcÀ¼?ð )ð )ð )ð )ð8 cð ¨cð ð ð ð ð ð r   