�
&�)c�\ � � � d dl Z d dlZd dlZddlmZ ddlmZmZmZm Z m
Z
mZmZm
Z
mZ d dlZd dlmZ d dlmZ d dlmZmZ d dlmZmZ d d lmZmZ d d
lmZmZ d dl m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z( d dl)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0 d
Z1n
# e2$ r dZ1Y nw xY wh d�Z3d� Z4 G d� d� � Z5 G d� de5� � Z6 G d� de5� � Z7e1r: G d� de5� � Z8 G d� de5� � Z9 G d� de8� � Z: G d� de5� � Z;dS dS )� N� ��InvalidKeyError) �base64url_decode�base64url_encode�der_to_raw_signature�force_bytes�from_base64url_uint�
is_pem_format�
is_ssh_key�raw_to_der_signature�to_base64url_uint)�InvalidSignature)�hashes)�ec�padding)�EllipticCurvePrivateKey�EllipticCurvePublicKey)�Ed448PrivateKey�Ed448PublicKey)�Ed25519PrivateKey�Ed25519PublicKey)�
RSAPrivateKey�RSAPrivateNumbers�RSAPublicKey�RSAPublicNumbers�rsa_crt_dmp1�rsa_crt_dmq1�rsa_crt_iqmp�rsa_recover_prime_factors)�Encoding�NoEncryption�
PrivateFormat�PublicFormat�load_pem_private_key�load_pem_public_key�load_ssh_public_keyTF> �ES256�ES384�ES512�ES521�EdDSA�PS256�PS384�PS512�RS256�RS384�RS512�ES256Kc � � t � � t t j � � t t j � � t t j � � d�} t
�r+| � t t j � � t t j � � t t j � � t t j � � t t j � � t t j � � t t j � � t t j � � t t j � � t t j � � t t j � � t � � d�� � | S )zE
Returns the algorithms that are implemented by the library.
)�none�HS256�HS384�HS512)r0 r1 r2 r( r3 r) r+ r* r- r. r/ r, )�
NoneAlgorithm�
HMACAlgorithm�SHA256�SHA384�SHA512�
has_crypto�update�RSAAlgorithm�ECAlgorithm�RSAPSSAlgorithm�OKPAlgorithm)�default_algorithmss �0/usr/lib/python3/dist-packages/jwt/algorithms.py�get_default_algorithmsrF K s � �
����}�3�4�4��}�3�4�4��}�3�4�4� � �� �
��!�!�%�l�&9�:�:�%�l�&9�:�:�%�l�&9�:�:�$�[�%7�8�8�%�k�&8�9�9�$�[�%7�8�8�$�[�%7�8�8�$��&�� � )��)?�@�@�(��)?�@�@�(��)?�@�@�%���
�
�
�
�
�& |