D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
usr
/
lib
/
python3.6
/
site-packages
/
jwt
/
contrib
/
algorithms
/
Filename :
py_ecdsa.py
back
Copy
# Note: This file is named py_ecdsa.py because import behavior in Python 2 # would cause ecdsa.py to squash the ecdsa library that it depends upon. import hashlib import ecdsa from jwt.algorithms import Algorithm from jwt.compat import string_types, text_type class ECAlgorithm(Algorithm): """ 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 """ SHA256 = hashlib.sha256 SHA384 = hashlib.sha384 SHA512 = hashlib.sha512 def __init__(self, hash_alg): self.hash_alg = hash_alg def prepare_key(self, key): if isinstance(key, ecdsa.SigningKey) or \ isinstance(key, ecdsa.VerifyingKey): return key if isinstance(key, string_types): if isinstance(key, text_type): key = key.encode('utf-8') # Attempt to load key. We don't know if it's # a Signing Key or a Verifying Key, so we try # the Verifying Key first. try: key = ecdsa.VerifyingKey.from_pem(key) except ecdsa.der.UnexpectedDER: key = ecdsa.SigningKey.from_pem(key) else: raise TypeError('Expecting a PEM-formatted key.') return key def sign(self, msg, key): return key.sign(msg, hashfunc=self.hash_alg, sigencode=ecdsa.util.sigencode_string) def verify(self, msg, key, sig): try: return key.verify(sig, msg, hashfunc=self.hash_alg, sigdecode=ecdsa.util.sigdecode_string) except AssertionError: return False
Name
Size
Last Modified
Owner
Permissions
Actions
__pycache__
Dir
July 28 2023 2:56:41
root
0755
__init__.py
0
KB
March 18 2018 1:37:23
root
0644
py_ecdsa.py
1.729
KB
March 18 2018 1:37:23
root
0644
pycrypto.py
1.22
KB
March 18 2018 1:37:23
root
0644
2017 © D7net | D704T team