Edit File: pycrypto.cpython-37.opt-1.pyc
B �b�[� � @ s` d dl Zd dlZd dlZd dlmZ d dlmZ d dlm Z d dl mZmZ G dd� de �Z dS )� N)�RSA)� PKCS1_v1_5)� Algorithm)�string_types� text_typec @ sH e Zd ZdZejjZejjZejjZdd� Z dd� Z dd� Zdd � Zd S )�RSAAlgorithmz� Performs signing and verification operations using RSASSA-PKCS-v1_5 and the specified hash function. This class requires PyCrypto 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 �P/opt/alt/python37/lib/python3.7/site-packages/jwt/contrib/algorithms/pycrypto.py�__init__ s zRSAAlgorithm.__init__c C sF t |tj�r|S t |t�r:t |t�r.|�d�}t�|�}ntd��|S )Nzutf-8z&Expecting a PEM- or RSA-formatted key.)� isinstancer Z_RSAobjr r �encodeZ importKey� TypeError)r �keyr r r �prepare_key s zRSAAlgorithm.prepare_keyc C s t �|��| j�|��S )N)r �new�signr )r �msgr r r r r * s zRSAAlgorithm.signc C s t �|��| j�|�|�S )N)r r �verifyr )r r r �sigr r r r - s zRSAAlgorithm.verifyN) �__name__� __module__�__qualname__�__doc__�CryptoZHashZSHA256ZSHA384ZSHA512r r r r r r r r r s r )ZCrypto.Hash.SHA256r ZCrypto.Hash.SHA384ZCrypto.Hash.SHA512ZCrypto.PublicKeyr ZCrypto.Signaturer Zjwt.algorithmsr Z jwt.compatr r r r r r r �<module> s