File: //home/arjun/projects/env/lib/python3.10/site-packages/jwt/__pycache__/algorithms.cpython-310.pyc
o
weht � @ s� d dl mZ d dlZd dlZd dlZd dlZd dlmZmZ d dl m
Z
mZmZm
Z
mZmZmZ ddlmZ ddlmZmZ ddlmZmZmZmZmZmZmZmZmZ ej d kr`d d
l m!Z! nd d
l"m!Z! zjd dl#m$Z$ d dl%m&Z& d d
l'm(Z( d dl)m*Z* d dl+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5 d dl6m7Z7m8Z8 d dl9m:Z:m;Z; d dl<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZD d dlEmFZFmGZGmHZHmIZImJZJmKZKmLZL dZMW n eNy� dZMY nw e
�re=e?B ZOe2e4B ZPe:e;B e7B e8B ZQeOePB eQB ZRe=e2B e:B e7B ZSe?e4B e;B e8B ZTh d�ZUd)dd�ZVG dd� de�ZWG dd� deW�ZXG dd � d eW�ZYeM�rKG d!d"� d"eW�ZZG d#d$� d$eW�Z[G d%d&� d&eZ�Z\G d'd(� d(eW�Z]dS dS )*� )�annotationsN)�ABC�abstractmethod)�
TYPE_CHECKING�Any�ClassVar�NoReturn�Union�cast�overload� ��InvalidKeyError)�HashlibHash�JWKDict) �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)� � )�Literal)�InvalidSignature)�default_backend)�hashes)�padding)
�ECDSA� SECP256K1� SECP256R1� SECP384R1� SECP521R1�
EllipticCurve�EllipticCurvePrivateKey�EllipticCurvePrivateNumbers�EllipticCurvePublicKey�EllipticCurvePublicNumbers)�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�ES256K�return�dict[str, Algorithm]c C s� t � ttj�ttj�ttj�d�} trG| �ttj�ttj�ttj�ttj�ttj�ttj�ttj�ttj�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)rF rG rH r>