HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //home/arjun/projects/env/lib/python3.10/site-packages/jwt/__pycache__/api_jwk.cpython-310.pyc
o

wed�@s�ddlmZddlZddlZddlmZddlmZmZm	Z	ddl
mZmZm
Z
mZddlmZGdd	�d	�ZGd
d�d�ZGdd
�d
�ZdS)�)�annotationsN)�Any�)�get_default_algorithms�
has_crypto�requires_cryptography)�InvalidKeyError�
PyJWKError�
PyJWKSetError�
PyJWTError)�JWKDictc@sbeZdZdddd	�Zedddd
��Zedddd��Zeddd��Zeddd��Z	eddd��Z
dS)�PyJWKN�jwk_datar�	algorithm�
str | None�return�NonecCsft�|_||_|j�dd�}|std|j����|s't|jt�r'|j�dd�}|s�|j�dd�}|dkrY|dks:|s=d}nM|dkrDd	}nF|d
krKd}n?|dkrRd
}n8td|����|dkr`d}n*|dkrgd}n#|dkr�|sutd|j����|dkr|d}ntd|����td|����ts�|tvr�t	|�d���|j�|�|_
|j
s�t	d|j����|j
�|j�|_dS)N�ktyzkty is not found: �alg�crv�ECzP-256�ES256zP-384�ES384zP-521�ES512�	secp256k1�ES256KzUnsupported crv: �RSA�RS256�oct�HS256�OKPzcrv is not found: �Ed25519�EdDSAzUnsupported kty: z) requires 'cryptography' to be installed.z%Unable to find an algorithm for key: )
r�_algorithms�	_jwk_data�getr�
isinstance�dictrrr	�	Algorithm�from_jwk�key)�selfrrrr�r,�D/home/arjun/projects/env/lib/python3.10/site-packages/jwt/api_jwk.py�__init__
sHzPyJWK.__init__�obj�'PyJWK'cCs
t||�S�N)r
)r/rr,r,r-�	from_dict>s
zPyJWK.from_dict�data�strcCst�|�}t�||�Sr1)�json�loadsr
r2)r3rr/r,r,r-�	from_jsonBs
zPyJWK.from_jsoncC�|j�dd�S)Nr�r$r%�r+r,r,r-�key_typeG�zPyJWK.key_typecCr8)N�kidr9r:r,r,r-�key_idKr<zPyJWK.key_idcCr8)N�user9r:r,r,r-�public_key_useOr<zPyJWK.public_key_user1)rrrrrr)r/rrrrr0)r3r4rrrr0)rr)�__name__�
__module__�__qualname__r.�staticmethodr2r7�propertyr;r>r@r,r,r,r-r
s1r
c@s<eZdZddd�Zedd
d��Zeddd��Zddd�ZdS)�PyJWKSet�keys�
list[JWKDict]rrc	Csng|_|s	td��t|t�std��|D]}z
|j�t|��Wqty)Yqwt|j�dkr5td��dS)Nz$The JWK Set did not contain any keyszInvalid JWK Set valuerzUThe JWK Set did not contain any usable keys. Perhaps 'cryptography' is not installed?)rGr
r&�list�appendr
r�len)r+rGr*r,r,r-r.Us 
���zPyJWKSet.__init__r/�dict[str, Any]�
'PyJWKSet'cCs|�dg�}t|�S)NrG)r%rF)r/rGr,r,r-r2jszPyJWKSet.from_dictr3r4cCst�|�}t�|�Sr1)r5r6rFr2)r3r/r,r,r-r7os

zPyJWKSet.from_jsonr=r0cCs,|jD]}|j|kr|Sqtd|����)Nzkeyset has no key for kid: )rGr>�KeyError)r+r=r*r,r,r-�__getitem__ts


�zPyJWKSet.__getitem__N)rGrHrr)r/rLrrM)r3r4rrM)r=r4rr0)rArBrCr.rDr2r7rOr,r,r,r-rFTs
rFc@s*eZdZddd�Zd
dd�Zdd	d
�ZdS)�PyJWTSetWithTimestamp�jwk_setrFcCs||_t��|_dSr1)rQ�time�	monotonic�	timestamp)r+rQr,r,r-r.|szPyJWTSetWithTimestamp.__init__rcC�|jSr1)rQr:r,r,r-�get_jwk_set��z!PyJWTSetWithTimestamp.get_jwk_set�floatcCrUr1)rTr:r,r,r-�
get_timestamp�rWz#PyJWTSetWithTimestamp.get_timestampN)rQrF)rrF)rrX)rArBrCr.rVrYr,r,r,r-rP{s

rP)�
__future__rr5rR�typingr�
algorithmsrrr�
exceptionsrr	r
r�typesrr
rFrPr,r,r,r-�<module>sH'