%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /snap/core20/current/usr/lib/python3/dist-packages/jwt/__pycache__/
Upload File :
Create Path :
Current File : //snap/core20/current/usr/lib/python3/dist-packages/jwt/__pycache__/algorithms.cpython-38.pyc

U

D�bX3�@s�ddlZddlZddlZddlmZmZddlmZddlm	Z	m
Z
mZmZm
Z
mZmZmZmZmZz�ddlmZddlmZmZmZddlmZmZmZmZmZmZm Z m!Z!dd	l"m#Z#m$Z$dd
l%m&Z&m'Z'ddl(m)Z)ddl*m+Z+d
Z,Wne-k
�rdZ,YnXe.ddddddddddg
�Z/dd�Z0Gdd�de1�Z2Gdd�de2�Z3Gdd �d e2�Z4e,�r�Gd!d"�d"e2�Z5Gd#d$�d$e2�Z6Gd%d&�d&e5�Z7dS)'�N�)�constant_time_compare�string_types��InvalidKeyError)
�base64url_decode�base64url_encode�der_to_raw_signature�force_bytes�
force_unicode�from_base64url_uint�raw_to_der_signature�to_base64url_uint�
is_pem_format�
is_ssh_key)�hashes)�load_pem_private_key�load_pem_public_key�load_ssh_public_key)�
RSAPrivateKey�RSAPublicKey�RSAPrivateNumbers�RSAPublicNumbers�rsa_recover_prime_factors�rsa_crt_dmp1�rsa_crt_dmq1�rsa_crt_iqmp)�EllipticCurvePrivateKey�EllipticCurvePublicKey)�ec�padding)�default_backend)�InvalidSignatureTF�RS256�RS384�RS512�ES256�ES384�ES521�ES512�PS256�PS384�PS512c
Cs�t�ttj�ttj�ttj�d�}tr�|�ttj�ttj�ttj�ttj�ttj�ttj�ttj�t	t	j�t	t	j�t	t	j�d�
�|S)zE
    Returns the algorithms that are implemented by the library.
    )ZnoneZHS256ZHS384ZHS512)
r#r$r%r&r'r(r)r*r+r,)
�
NoneAlgorithm�
HMACAlgorithm�SHA256�SHA384�SHA512�
has_crypto�update�RSAAlgorithm�ECAlgorithm�RSAPSSAlgorithm)Zdefault_algorithms�r7�0/usr/lib/python3/dist-packages/jwt/algorithms.py�get_default_algorithms's&��
r9c@s@eZdZdZdd�Zdd�Zdd�Zedd	��Zed
d��Z	dS)
�	AlgorithmzH
    The interface for an algorithm used to sign and verify tokens.
    cCst�dS)z�
        Performs necessary validation and conversions on the key and returns
        the key value in the proper format for sign() and verify().
        N��NotImplementedError��self�keyr7r7r8�prepare_keyGszAlgorithm.prepare_keycCst�dS)zn
        Returns a digital signature for the specified message
        using the specified key value.
        Nr;�r>�msgr?r7r7r8�signNszAlgorithm.signcCst�dS)zz
        Verifies that the specified digital signature is valid
        for the specified message and key values.
        Nr;�r>rBr?�sigr7r7r8�verifyUszAlgorithm.verifycCst�dS)z7
        Serializes a given RSA key into a JWK
        Nr;��key_objr7r7r8�to_jwk\szAlgorithm.to_jwkcCst�dS)zb
        Deserializes a given RSA key from JWK back into a PublicKey or PrivateKey object
        Nr;)�jwkr7r7r8�from_jwkcszAlgorithm.from_jwkN)
�__name__�
__module__�__qualname__�__doc__r@rCrF�staticmethodrIrKr7r7r7r8r:Cs
r:c@s(eZdZdZdd�Zdd�Zdd�ZdS)	r-zZ
    Placeholder for use when no signing or verification
    operations are required.
    cCs |dkrd}|dk	rtd��|S)N�z*When alg = "none", key value must be None.rr=r7r7r8r@ps
zNoneAlgorithm.prepare_keycCsdS)N�r7rAr7r7r8rCyszNoneAlgorithm.signcCsdS)NFr7rDr7r7r8rF|szNoneAlgorithm.verifyN)rLrMrNrOr@rCrFr7r7r7r8r-ks	r-c@sZeZdZdZejZejZej	Z
dd�Zdd�Ze
dd��Ze
dd	��Zd
d�Zdd
�ZdS)r.zf
    Performs signing and verification operations using HMAC
    and the specified hash function.
    cCs
||_dS�N��hash_alg�r>rUr7r7r8�__init__�szHMACAlgorithm.__init__cCs$t|�}t|�st|�r td��|S)NzdThe specified key is an asymmetric key or x509 certificate and should not be used as an HMAC secret.)r
rrrr=r7r7r8r@�s�zHMACAlgorithm.prepare_keycCst�ttt|���dd��S)N�oct)�k�kty)�json�dumpsrrr
rGr7r7r8rI�s�zHMACAlgorithm.to_jwkcCs,t�|�}|�d�dkr td��t|d�S)NrZrXzNot an HMAC keyrY)r[�loads�getrr)rJ�objr7r7r8rK�s
zHMACAlgorithm.from_jwkcCst�|||j���SrS)�hmac�newrUZdigestrAr7r7r8rC�szHMACAlgorithm.signcCst||�||��SrS)rrCrDr7r7r8rF�szHMACAlgorithm.verifyN)rLrMrNrO�hashlibZsha256r/Zsha384r0Zsha512r1rWr@rPrIrKrCrFr7r7r7r8r.�s


r.c@sZeZdZdZejZejZejZdd�Zdd�Z	e
dd��Ze
dd	��Zd
d�Z
dd
�ZdS)r4z~
        Performs signing and verification operations using
        RSASSA-PKCS-v1_5 and the specified hash function.
        cCs
||_dSrSrTrVr7r7r8rW�szRSAAlgorithm.__init__cCs�t|t�st|t�r|St|t�r~t|�}z.|�d�rFt|t�d�}nt|dt�d�}Wq�t	k
rzt
|t�d�}Yq�Xntd��|S)Nsssh-rsa��backend�Zpasswordrd�Expecting a PEM-formatted key.)�
isinstancerrrr
�
startswithrr!r�
ValueErrorr�	TypeErrorr=r7r7r8r@�s
�

zRSAAlgorithm.prepare_keycCs�d}t|dd�r�|��}ddgtt|jj��tt|jj��tt|j��tt|j��tt|j	��tt|j
��tt|j��tt|j��d�
}nBt|dd�r�|��}ddgtt|j��tt|j��d�}nt
d��t�|�S)N�private_numbers�RSArC)
rZ�key_ops�n�e�d�p�q�dp�dq�qirF)rZrmrnro�Not a public or private key)�getattrrkrr�public_numbersrnrorprqrr�dmp1�dmq1�iqmprr[r\)rHr_�numbersr7r7r8rI�s.�
�zRSAAlgorithm.to_jwkc		s�zt�|��Wntk
r*td��YnX��d�dkrBtd��d�k�rhd�k�rhd�k�rhd�krptd	��d
ddd
dg}�fdd�|D�}t|�}|r�t|�s�td��tt�d�t�d��}|�rt	t�d�t�d
�t�d�t�d�t�d
�t�d�|d�}nHt�d�}t
|j||j�\}}t	|||t
||�t||�t||�|d�}|�t��Sd�k�r�d�k�r�tt�d�t�d��}|�t��Std��dS)NzKey is not valid JSONrZrlzNot an RSA keyrprornZothz5Unsupported RSA private key: > 2 primes not supportedrqrrrsrtrucsg|]}|�k�qSr7r7)�.0Zprop�r_r7r8�
<listcomp>sz)RSAAlgorithm.from_jwk.<locals>.<listcomp>z@RSA key must include all parameters if any are present besides d)rprqrrryrzr{rxrv)r[r]rirr^�any�allrrrrrnrorrrZprivate_keyr!Z
public_key)	rJZother_propsZprops_foundZany_props_foundrxr|rprqrrr7r~r8rK�sf

�





�
��


�zRSAAlgorithm.from_jwkcCs|�|t��|���SrS)rCr �PKCS1v15rUrAr7r7r8rC2szRSAAlgorithm.signcCs:z|�||t��|���WdStk
r4YdSXdS)NTF)rFr r�rUr"rDr7r7r8rF5s
zRSAAlgorithm.verifyN)rLrMrNrOrr/r0r1rWr@rPrIrKrCrFr7r7r7r8r4�s
#
>r4c@sBeZdZdZejZejZejZdd�Zdd�Z	dd�Z
dd	�Zd
S)r5zr
        Performs signing and verification operations using
        ECDSA and the specified hash function
        cCs
||_dSrSrTrVr7r7r8rWEszECAlgorithm.__init__cCs�t|t�st|t�r|St|t�r~t|�}z,|�d�rFt|t�d�}nt|t�d�}Wq�t	k
rzt
|dt�d�}Yq�Xntd��|S)Nsecdsa-sha2-rcrerf)rgrrrr
rhrr!rrirrjr=r7r7r8r@Hs
�

zECAlgorithm.prepare_keycCs"|�|t�|����}t||j�SrS)rCr�ECDSArUr	�curve)r>rBr?�der_sigr7r7r8rC`szECAlgorithm.signcCsbzt||j�}Wntk
r&YdSXz|�||t�|����WdStk
r\YdSXdS)NFT)r
r�rirFrr�rUr")r>rBr?rEr�r7r7r8rFeszECAlgorithm.verifyN)rLrMrNrOrr/r0r1rWr@rCrFr7r7r7r8r5<sr5c@s eZdZdZdd�Zdd�ZdS)r6zA
        Performs a signature using RSASSA-PSS with MGF1
        cCs*|�|tjt�|���|jjd�|���S)N�ZmgfZsalt_length)rCr �PSS�MGF1rU�digest_sizerAr7r7r8rCvs��zRSAPSSAlgorithm.signc	CsNz2|�||tjt�|���|jjd�|���WdStk
rHYdSXdS)Nr�TF)rFr r�r�rUr�r"rDr7r7r8rF�s��	zRSAPSSAlgorithm.verifyN)rLrMrNrOrCrFr7r7r7r8r6qs
r6)8rbr`r[�compatrr�
exceptionsrZutilsrrr	r
rrr
rrrZcryptography.hazmat.primitivesrZ,cryptography.hazmat.primitives.serializationrrrZ-cryptography.hazmat.primitives.asymmetric.rsarrrrrrrrZ,cryptography.hazmat.primitives.asymmetric.ecrrZ)cryptography.hazmat.primitives.asymmetricrr Zcryptography.hazmat.backendsr!Zcryptography.exceptionsr"r2�ImportError�setZrequires_cryptographyr9�objectr:r-r.r4r5r6r7r7r7r8�<module>s@0(
�(-5

Zerion Mini Shell 1.0