HOME


Mini Shell 1.0
Redirecting to https://devs.lapieza.net/iniciar-sesion Redirecting to https://devs.lapieza.net/iniciar-sesion.
DIR: /proc/self/root/usr/lib/python3/dist-packages/jwt/__pycache__/
Upload File :
Current File : //proc/self/root/usr/lib/python3/dist-packages/jwt/__pycache__/api_jws.cpython-311.pyc
�

7�)c�)���ddlmZddlZddlZddlZddlmZmZddlm	Z	m
Z
mZmZddl
mZmZmZmZddlmZmZddlmZGd	�d
��Ze��ZejZejZejZejZejZejZejZdS)�)�annotationsN)�Any�Type�)�	Algorithm�get_default_algorithms�
has_crypto�requires_cryptography)�DecodeError�InvalidAlgorithmError�InvalidSignatureError�InvalidTokenError)�base64url_decode�base64url_encode)�RemovedInPyjwt3Warningc��eZdZdZd6d7d�Zed8d���Zd9d�Zd:d
�Zd;d�Z	d<d�Z
				d=d>d�Z				d?d@d(�Z				d?dAd)�Z
dBd,�ZdCd.�Z		dDdEd2�ZdFd3�ZdGd5�ZdS)H�PyJWS�JWTN�return�Nonec�6�t��|_|�t|��nt|j��|_t	|j�����D]}||jvr|j|=�|�i}i|����|�|_dS)N)r�_algorithms�set�_valid_algs�list�keys�_get_default_options�options)�self�
algorithmsr�keys    �-/usr/lib/python3/dist-packages/jwt/api_jws.py�__init__zPyJWS.__init__s���1�3�3���)�5�C�
�O�O�O�3�t�?O�;P�;P�	
��
��(�-�-�/�/�0�0�	*�	*�C��$�*�*�*��$�S�)���?��G�A�$�3�3�5�5�A��A������dict[str, bool]c�
�ddiS)N�verify_signatureT�r(r$r"rzPyJWS._get_default_options*s
��"�D�)�)r$�alg_id�str�alg_objrc���||jvrtd���t|t��st	d���||j|<|j�|��dS)zW
        Registers a new Algorithm for use when creating and verifying tokens.
        z Algorithm already has a handler.z!Object is not of type `Algorithm`N)r�
ValueError�
isinstancer�	TypeErrorr�add)rr)r+s   r"�register_algorithmzPyJWS.register_algorithm.sm���T�%�%�%��?�@�@�@��'�9�-�-�	A��?�@�@�@�#*���� �����V�$�$�$�$�$r$c�z�||jvrtd���|j|=|j�|��dS)z�
        Unregisters an Algorithm for use when creating and verifying tokens
        Throws KeyError if algorithm is not registered.
        zJThe specified algorithm could not be removed because it is not registered.N)r�KeyErrorr�remove)rr)s  r"�unregister_algorithmzPyJWS.unregister_algorithm;sS��
��)�)�)��1���
�

��V�$������'�'�'�'�'r$�	list[str]c�*�t|j��S)zM
        Returns a list of supported values for the 'alg' parameter.
        )rr)rs r"�get_algorithmszPyJWS.get_algorithmsIs���D�$�%�%�%r$�alg_namec��	|j|S#t$r9}ts|tvrt	d|�d���|�t	d��|�d}~wwxYw)z�
        For a given string name, return the matching Algorithm object.

        Example usage:

        >>> jws_obj.get_algorithm_by_name("RS256")
        zAlgorithm 'z9' could not be found. Do you have cryptography installed?�Algorithm not supportedN)rr3r	r
�NotImplementedError)rr9�es   r"�get_algorithm_by_namezPyJWS.get_algorithm_by_nameOs���	H��#�H�-�-���	H�	H�	H��
�(�.C�"C�"C�)�e�(�e�e�e�����&�&?�@�@�a�G�����	H���s��
A�4A
�
A�HS256F�payload�bytesr!�	algorithm�
str | None�headers�dict[str, Any] | None�json_encoder�Type[json.JSONEncoder] | None�is_payload_detached�boolc�d�g}|�|nd}|r:|�d��}	|	r|d}|�d��}
|
durd}|j|d�}|r*|�|��|�|��|ds|d=|rd|d<nd|vr|d=t	j|d|d�	�����}|�t|����|r|}
nt|��}
|�|
��d
�	|��}|�
|��}|�|��}|�||��}|�t|����|rd|d<d
�	|��}|�
d
��S)N�none�alg�b64FT)�typrLrN)�,�:)�
separators�cls�	sort_keys�.r$r�utf-8)�get�
header_typ�_validate_headers�update�json�dumps�encode�appendr�joinr>�prepare_key�sign�decode)rr@r!rBrDrFrH�segments�
algorithm_�headers_alg�headers_b64�header�json_header�msg_payload�
signing_inputr+�	signature�encoded_strings                  r"r\zPyJWS.encode`s�����(1�'<�)�)�&�
��	+�!�+�+�e�,�,�K��
,�$�U�^�
�!�+�+�e�,�,�K��e�#�#�&*�#�*.���!L�!L���	#��"�"�7�+�+�+��M�M�'�"�"�"��e�}�	��u�
��	�!�F�5�M�M�
�f�_�_��u�
��j��z�|�t�
�
�
�
�&�(�(�	�	���(��5�5�6�6�6��	4�!�K�K�*�7�3�3�K�����$�$�$��	�	�(�+�+�
��,�,�Z�8�8���!�!�#�&�&���L�L���4�4�	����(��3�3�4�4�4��	��H�Q�K����8�,�,���$�$�W�-�-�-r$��jwtr �list[str] | Noner�detached_payload�bytes | None�dict[str, Any]c��|r<tjdt|�������t��|�i}i|j�|�}|d}|r|st
d���|�|��\}	}
}}|�dd��durD|�t
d���|}	d�	|
�
dd	��d
|	g��}
|r|�|
||||��|	||d�S)Nzypassing additional kwargs to decode_complete() is deprecated and will be removed in pyjwt version 3. Unsupported kwargs: r'z\It is required that you pass in a value for the "algorithms" argument when calling decode().rMTFz�It is required that you pass in a value for the "detached_payload" argument to decode a message having the b64 header set to false.rTrr)r@rfrj)�warnings�warn�tuplerrrr�_loadrVr^�rsplit�_verify_signature)
rrmr!r rro�kwargs�merged_optionsr'r@rirfrjs
             r"�decode_completezPyJWS.decode_complete�sV���	��M�>�',�V�[�[�]�]�';�';�>�>�'�	
�
�
��?��G�4�D�L�4�G�4��)�*<�=���	�J�	��n���
�59�J�J�s�O�O�1����	��:�:�e�T�"�"�e�+�+��'�!�Z����'�G� �I�I�}�';�';�D�!�'D�'D�Q�'G��&Q�R�R�M��	V��"�"�=�&�)�S�*�U�U�U���"�
�
�	
r$c���|r<tjdt|�������t��|�|||||���}|dS)Nzppassing additional kwargs to decode() is deprecated and will be removed in pyjwt version 3. Unsupported kwargs: )ror@)rsrtrurrr{)rrmr!r rrory�decodeds        r"razPyJWS.decode�s|���	��M�>�',�V�[�[�]�]�';�';�>�>�'�	
�
�
��&�&���j�'�<L�'�
�
���y�!�!r$�str | bytes�dictc�f�|�|��d}|�|��|S)z�Returns back the JWT header parameters as a dict()

        Note: The signature is not verified so the header parameters
        should not be fully trusted until signature verification is complete
        �)rvrX)rrmrDs   r"�get_unverified_headerzPyJWS.get_unverified_header�s1���*�*�S�/�/�!�$�����w�'�'�'��r$� tuple[bytes, bytes, dict, bytes]c��t|t��r|�d��}t|t��st	dt�����	|�dd��\}}|�dd��\}}n"#t$r}t	d��|�d}~wwxYw	t|��}n.#ttjf$r}t	d��|�d}~wwxYw	tj
|��}n%#t$r}	t	d|	����|	�d}	~	wwxYwt|t��st	d���	t|��}
n.#ttjf$r}t	d	��|�d}~wwxYw	t|��}n.#ttjf$r}t	d
��|�d}~wwxYw|
|||fS)NrUz$Invalid token type. Token must be a rTrzNot enough segmentszInvalid header paddingzInvalid header string: z,Invalid header string: must be a json objectzInvalid payload paddingzInvalid crypto padding)r.r*r\rArrw�splitr-rr/�binascii�ErrorrZ�loadsr)rrmri�crypto_segment�header_segment�payload_segment�err�header_datarfr=r@rjs            r"rvzPyJWS._load�s0���c�3���	&��*�*�W�%�%�C��#�u�%�%�	N��L�U�L�L�M�M�M�	>�,/�J�J�t�Q�,?�,?�)�M�>�.;�.A�.A�$��.J�.J�+�N�O�O���	>�	>�	>��3�4�4�#�=�����	>����	A�*�>�:�:�K�K���8�>�*�	A�	A�	A��6�7�7�S�@�����	A����	D��Z��,�,�F�F���	D�	D�	D��;��;�;�<�<�!�C�����	D�����&�$�'�'�	N��L�M�M�M�	B�&��7�7�G�G���8�>�*�	B�	B�	B��7�8�8�c�A�����	B����	A�(��8�8�I�I���8�>�*�	A�	A�	A��6�7�7�S�@�����	A�������	�:�:sx�2B�
B*�B%�%B*�.B>�>C)�C$�$C)�-D�
D$�D�D$�E�F�2F�F�F�G�1G�Grirfrjc�F�|�d��}|r|�||vrtd���	|�|��}n"#t$r}td��|�d}~wwxYw|�|��}|�|||��st
d���dS)NrLz&The specified alg value is not allowedr;zSignature verification failed)rVrr>r<r_�verifyr
)	rrirfrjr!r rLr+r=s	         r"rxzPyJWS._verify_signatures����j�j������	R�z�-�#�Z�2G�2G�'�(P�Q�Q�Q�	J��0�0��5�5�G�G��"�	J�	J�	J�'�(A�B�B��I�����	J�����!�!�#�&�&���~�~�m�S�)�<�<�	I�'�(G�H�H�H�	I�	Is�A�
A#�A�A#c�H�d|vr|�|d��dSdS)N�kid)�
_validate_kid)rrDs  r"rXzPyJWS._validate_headers/s3���G������w�u�~�.�.�.�.�.��r$r�c�N�t|t��std���dS)Nz(Key ID header parameter must be a string)r.r*r)rr�s  r"r�zPyJWS._validate_kid3s0���#�s�#�#�	P�#�$N�O�O�O�	P�	Pr$)NN)rr)rr%)r)r*r+rrr)r)r*rr)rr6)r9r*rr)r?NNF)r@rAr!r*rBrCrDrErFrGrHrIrr*)rlNNN)rmr*r!r*r rnrrErorprrq)rmr*r!r*r rnrrErorprr*)rmr~rr)rmr~rr�)rlN)rirArfrrjrAr!r*r rnrr)rDrqrr)r�r*rr)�__name__�
__module__�__qualname__rWr#�staticmethodrr1r5r8r>r\r{rar�rvrxrXr�r(r$r"rrs��������J�
B�
B�
B�
B�
B��*�*�*��\�*�%�%�%�%�(�(�(�(�&�&�&�&�H�H�H�H�*!(�)-�6:�$)�C.�C.�C.�C.�C.�P�'+�)-�)-�
+
�+
�+
�+
�+
�`�'+�)-�)-�
"�"�"�"�"�*	�	�	�	�$;�$;�$;�$;�V�'+�
I�I�I�I�I�./�/�/�/�P�P�P�P�P�Pr$r)�
__future__rr�rZrs�typingrrr rrr	r
�
exceptionsrrr
r�utilsrrrr�_jws_global_objr\r{rar1r5r>r�r(r$r"�<module>r�sv��"�"�"�"�"�"���������������������������������������������6�5�5�5�5�5�5�5�,�,�,�,�,�,�]P�]P�]P�]P�]P�]P�]P�]P�@	�%�'�'��	�	��!�1��	�	��$�7��&�;��'�=��'�=���r$