o
    Cji                     @   s   d dl mZ d dlmZ d dlmZ zd dlmZ W n	 ey#   Y nw zd dlm	Z	 W n	 ey5   Y nw zd dlm
Z
 W n	 eyG   Y nw zd dlmZ W n	 eyY   Y nw zd dlmZ W n	 eyk   Y nw d	d
 Zdd ZdddZdS )    )Key)
ALGORITHMS)JWKErrorRSAKeyECKeyAESKeyDIRKey)HMACKeyc                 C   s   | t jv r
t j|  S | t jv rtS | t jv rddlm} |S | t jv r+ddlm} |S | t j	v r8ddlm
} |S | t jkrEddlm} |S d S )Nr   r   r   r	   r   )r   KEYSHMACr   RSAjose.backendsr   ECr   AESr
   DIRr   )	algorithmr   r   r
   r    r   _/var/www/html/Resume-Parser/resume-parser-inhouse/venv/lib/python3.10/site-packages/jose/jwk.pyget_key   s"   






r   c                 C   s,   t |ts	td|tj| < tj|  dS )Nz&Key class is not a subclass of jwk.KeyT)
issubclassr   	TypeErrorr   r   	SUPPORTEDadd)r   	key_classr   r   r   register_key7   s
   

r   Nc                 C   sD   |st | tr| dd}|stdt|}|std|| |S )zU
    Construct a Key object for the given algorithm with the given
    key_data.
    algNz#Unable to find an algorithm for key)
isinstancedictgetr   r   )key_datar   r   r   r   r   	construct?   s   
r$   )N)jose.backends.baser   jose.constantsr   jose.exceptionsr   r   r   ImportErrorr   r
   r   r   r   r   r$   r   r   r   r   <module>   s>    