ó
    gÉ
  ã                   ót   • S r SSKrSSKrSSKrSSKJr  SS\S\4S jjrSS\S\\\4   4S jjr	S	\S\4S
 jr
g)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                 óp   • SU s=::  a  S::  d  O  Sn[        U5      e[        R                  " S5      SU  nU$ )a  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.
é+   é€   z5Parameter `length` must verify `43 <= length <= 128`.é`   N)Ú
ValueErrorÚsecretsÚtoken_urlsafe)r   ÚmsgÚcode_verifiers      Ú-lib/python3.13/site-packages/pkce/__init__.pyÚgenerate_code_verifierr      s=   € ð$ Õ˜3ÕØEˆÜ˜‹oÐÜ×)Ò)¨"Ó-¨g¨vÐ6€MØÐó    Úcode_verifier_lengthc                 óv   • SU s=::  a  S::  d  O  SnUS-  n[        U5      e[        U 5      n[        U5      nX#4$ )aR  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   ,   sJ   € ð& Ð%Õ,¨Õ,Ø=ˆØÐ5Ñ5ˆÜ˜‹oÐÜ*Ð+?Ó@€MÜ'¨Ó6€NØÐ(Ð(r   r   c                 ó  • S[        U 5      s=::  a  S::  d  O  SnUS-  n[        U5      e[        R                  " U R	                  S5      5      R                  5       n[        R                  " U5      nUR                  S5      SS nU$ )ah  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ÐÜ^Š^˜M×0Ñ0°Ó9Ó:×AÑAÓC€FÜ×&Ò& vÓ.€GØ—^‘^ GÓ,¨S¨bÐ1€NØÐr   )r   )Ú__doc__r   r   r   Útypingr   ÚintÚstrr   r   r   © r   r   Ú<module>r)      sY   ðñ
ó Û Û Ý ñ 3ð °õ ñ2)¨Sð )¸5ÀÀcÀ¹?õ )ð8 cð ¨cõ r   