/
snap
/
core20
/
2866
/
usr
/
lib
/
python3
/
dist-packages
/
jwt
/
contrib
/
algorithms
/
/snap/core20/2866/usr/lib/python3/dist-packages/jwt/contrib/algorithms
mkdir
upload
Name
Size
Mode
Actions
__pycache__/
-
0755
rm
pycrypto.py
1249
0644
edit
dl
rm
py_ecdsa.py
1771
0644
edit
dl
rm
__init__.py
0
0644
edit
dl
rm
Edit:
/snap/core20/2866/usr/lib/python3/dist-packages/jwt/contrib/algorithms/py_ecdsa.py
(1771B)
# 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
Save
cmd:
run