RSA helpers for PyJWT
Project description
Helpers for JWT tokens with RSA.
>>> from jwt_rsa.token import JWT
>>> from jwt_rsa.rsa import generate_rsa
>>>
>>> bits = 2048
>>>
>>> private_key, public_key = generate_rsa(bits)
>>>
>>> jwt = JWT(private_key, public_key)
>>>
>>> token = jwt.encode(foo='bar')
>>> result = jwt.decode(token)
>>> result
{'foo': 'bar', 'exp': 1525941819.638339, 'nbf': 1523349799.638342}
>>> # Expired token
>>> token = jwt.encode(foo='bar', expired=-1)
>>> jwt.decode(token)
Traceback (most recent call last):
...
jwt.exceptions.ExpiredSignatureError: Signature has expired
>>> # No verify token signature and expiration
>>> jwt.decode(token, verify=False)
{'foo': 'bar', 'exp': -1, 'nbf': 1523350046.935803}
Command line utilities
Module provides following utilities
jwt-rsa-keygen
Creates a new key pair:
$ jwt-rsa-keygen -h ±8 ?3 master
usage: jwt-rsa-keygen [-h] [-b BITS] [-P]
optional arguments:
-h, --help show this help message and exit
-b BITS, --bits BITS
-P, --pem
By default this utility return JSON-serialized key pair:
$ jwt-rsa-keygen ±8 ?3 master
{
"private": "MIIEvgIBADANBg......h3MBsSzx",
"public": "MIIBCgKCAQEAxUU......5niBEjAB"
}
Add parameter -P for return in PEM format:
$ jwt-rsa-keygen -P ±8 ?3 master
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDDeiI5V/O/Mbff
...
LGQgWf5ch0t1+Rh3tjIuuSc=
-----END PRIVATE KEY-----
-----BEGIN RSA PUBLIC KEY-----
MIIBCgKCAQEAw3oiOVfzvzG331nAL5hGHbblcCaV3pbfoCiFRgwpNPf7snIJtw97
...
3k2mMT1z6NFO6e6LMxg2zrqs3zgqwx5/9wIDAQAB
-----END RSA PUBLIC KEY-----
jwt-rsa-verify
Verify JSON serialized key pair:
$ jwt-rsa-keygen | jwt-rsa-verify ±8 ?3 master
INFO:root:Awaiting JSON on stdin...
INFO:root:Signing OK
INFO:root:Verifying OK
Or failed when key pair is invalid or doesn’t match:
$ jwt-rsa-keygen | sed 's/M/j/' | jwt-rsa-verify ±8 ?3 master
INFO:root:Awaiting JSON on stdin...
Traceback (most recent call last):
...
ValueError: Could not deserialize key data.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
pyjwt-rsa-0.3.0.tar.gz
(5.6 kB
view details)
Built Distribution
File details
Details for the file pyjwt-rsa-0.3.0.tar.gz
.
File metadata
- Download URL: pyjwt-rsa-0.3.0.tar.gz
- Upload date:
- Size: 5.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.18.4 setuptools/33.1.1 requests-toolbelt/0.8.0 tqdm/4.20.0 CPython/3.6.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 65c20cc72c9e6dfe400ba4ee448dd195c20f3e690e29dc99bd48cc17dd8166a9 |
|
MD5 | fb19d3cd347e3a8d09fe331c2e16bacd |
|
BLAKE2b-256 | 5e97e8ca92c3f2e0cbecde065e020baf856811302628f35ffec1776c9bcc1c0c |
File details
Details for the file pyjwt_rsa-0.3.0-py3-none-any.whl
.
File metadata
- Download URL: pyjwt_rsa-0.3.0-py3-none-any.whl
- Upload date:
- Size: 6.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.18.4 setuptools/33.1.1 requests-toolbelt/0.8.0 tqdm/4.20.0 CPython/3.6.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bcb9b4c4de2010d84a0627e0926b56048c0b4c9fcfaf1d5fce9ec97f210cca39 |
|
MD5 | 9b80d2f93be0049a2fa9800c4c8c41b6 |
|
BLAKE2b-256 | 6f201cf9832cf6407ec0f151ce0e5fb6867c59d37bfd7959e1499e22d1fa8fef |