Skip to main content

JOSE implementation in Python

Project description

A JOSE implementation in Python

Build Status Coverage Status Docs

Docs are available on ReadTheDocs.

The JavaScript Object Signing and Encryption (JOSE) technologies - JSON Web Signature (JWS), JSON Web Encryption (JWE), JSON Web Key (JWK), and JSON Web Algorithms (JWA) - collectively can be used to encrypt and/or sign content using a variety of algorithms. While the full set of permutations is extremely large, and might be daunting to some, it is expected that most applications will only use a small set of algorithms to meet their needs.

Installation

$ pip install python-jose[cryptography]

Cryptographic Backends

As of 3.1.0, python-jose implements four different cryptographic backends. The backend must be selected as an extra when installing python-jose. If you do not select a backend, the native-python backend will be installed.

Unless otherwise noted, all backends support all operations.

Due to complexities with setuptools, the native-python backend is always installed, even if you select a different backend on install. We recommend that you remove unnecessary dependencies in production.

  1. cryptography

    • This backend uses pyca/cryptography for all cryptographic operations. This is the recommended backend and is selected over all other backends if any others are present.

    • Installation: pip install python-jose[cryptography]

    • Unused dependencies:

      • rsa

      • ecdsa

      • pyasn1

  2. pycryptodome

    • This backend uses pycryptodome for all cryptographic operations.

    • Installation: pip install python-jose[pycryptodome]

    • Unused dependencies:

      • rsa

  3. native-python

    • This backend uses python-rsa and python-ecdsa for all cryptographic operations. This backend is always installed but any other backend will take precedence if one is installed.

    • Installation: pip install python-jose

  4. pycrypto

    • This backend uses pycrypto for all cryptographic operations.

    • Installation: pip install python-jose[pycrypto]

    • Unused dependencies:

      • rsa

Usage

>>> from jose import jwt
>>> token = jwt.encode({'key': 'value'}, 'secret', algorithm='HS256')
u'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXkiOiJ2YWx1ZSJ9.FG-8UppwHaFp1LgRYQQeS6EDQF7_6-bMFegNucHjmWg'

>>> jwt.decode(token, 'secret', algorithms=['HS256'])
{u'key': u'value'}

Thanks

This library was originally based heavily on the work of the folks over at PyJWT.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

python-jose-3.2.0.tar.gz (348.7 kB view details)

Uploaded Source

Built Distribution

python_jose-3.2.0-py2.py3-none-any.whl (26.7 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file python-jose-3.2.0.tar.gz.

File metadata

  • Download URL: python-jose-3.2.0.tar.gz
  • Upload date:
  • Size: 348.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.1

File hashes

Hashes for python-jose-3.2.0.tar.gz
Algorithm Hash digest
SHA256 4e4192402e100b5fb09de5a8ea6bcc39c36ad4526341c123d401e2561720335b
MD5 382a4da9ec39a3fb872fd1cf672b8a57
BLAKE2b-256 2609f60aa2a21dec4960fef468dea6ba7c2adb15d9662bb79ca349bec2feeb67

See more details on using hashes here.

File details

Details for the file python_jose-3.2.0-py2.py3-none-any.whl.

File metadata

  • Download URL: python_jose-3.2.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 26.7 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.1

File hashes

Hashes for python_jose-3.2.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 67d7dfff599df676b04a996520d9be90d6cdb7e6dd10b4c7cacc0c3e2e92f2be
MD5 1d3583203d42ab9df25f13081de001f3
BLAKE2b-256 2b55bc3e9a4013a50287ec30e653c85cd10f077f8bca73bcda869847bf18cf37

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page