File: //home/arjun/projects/env/lib/python3.10/site-packages/jwt/__pycache__/api_jwk.cpython-310.pyc
o
wed � @ s� d dl mZ d dlZd dlZd dlmZ ddlmZmZm Z ddl
mZmZm
Z
mZ ddlmZ G dd � d �ZG d
d� d�ZG dd
� d
�ZdS )� )�annotationsN)�Any� )�get_default_algorithms�
has_crypto�requires_cryptography)�InvalidKeyError�
PyJWKError�
PyJWKSetError�
PyJWTError)�JWKDictc @ sb e Zd Zdddd �Zedddd
��Zedddd��Zeddd��Zeddd��Z eddd��Z
dS )�PyJWKN�jwk_datar � algorithm�
str | None�return�Nonec C sf t � | _|| _| j�dd �}|std| j� ���|s't| jt�r'| j�dd �}|s�| j�dd �}|dkrY|dks:|s=d}nM|dkrDd }nF|d
krKd}n?|dkrRd
}n8td|� ���|dkr`d}n*|dkrgd}n#|dkr�|sutd| j� ���|dkr|d}ntd|� ���td|� ���ts�|tv r�t |� d���| j�|�| _
| j
s�t d| j� ���| j
�| j�| _d S )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�dictr r r � Algorithm�from_jwk�key)�selfr r r r � r, �D/home/arjun/projects/env/lib/python3.10/site-packages/jwt/api_jwk.py�__init__
sH zPyJWK.__init__�obj�'PyJWK'c C s
t | |�S �N)r
)r/ r r, r, r- � from_dict>