D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
usr
/
lib
/
python3.6
/
site-packages
/
jwt
/
contrib
/
algorithms
/
__pycache__
/
Filename :
py_ecdsa.cpython-36.pyc
back
Copy
3 �k�Z� � @ s@ d dl Z d dlZd dlmZ d dlmZmZ G dd� de�ZdS )� N)� Algorithm)�string_types� text_typec @ sB e Zd ZdZejZejZej Z dd� Zdd� Zdd� Z dd � Zd S )�ECAlgorithmz� Performs signing and verification operations using ECDSA and the specified hash function This class requires the ecdsa package to be installed. This is based off of the implementation in PyJWT 0.3.2 c C s || _ d S )N)�hash_alg)�selfr � r �/usr/lib/python3.6/py_ecdsa.py�__init__ s zECAlgorithm.__init__c C s~ t |tj�st |tj�r|S t |t�rrt |t�r:|jd�}ytjj|�}W qz tjj k rn tjj|�}Y qzX nt d��|S )Nzutf-8zExpecting a PEM-formatted key.)� isinstance�ecdsaZ SigningKeyZVerifyingKeyr r �encodeZfrom_pemZderZ UnexpectedDER� TypeError)r �keyr r r �prepare_key s zECAlgorithm.prepare_keyc C s |j || jtjjd�S )N)�hashfuncZ sigencode)�signr r �utilZsigencode_string)r �msgr r r r r 3 s zECAlgorithm.signc C s2 y|j ||| jtjjd�S tk r, dS X d S )N)r Z sigdecodeF)�verifyr r r Zsigdecode_string�AssertionError)r r r Zsigr r r r 7 s zECAlgorithm.verifyN)�__name__� __module__�__qualname__�__doc__�hashlibZsha256ZSHA256Zsha384ZSHA384Zsha512ZSHA512r r r r r r r r r s r )r r Zjwt.algorithmsr Z jwt.compatr r r r r r r �<module> s