Skip to main content

JOSE implementation in Python

Project description

A JOSE implementation in Python

PyPI Github Actions CI Status Coverage Status Docs Code style: black

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.3.0, python-jose implements three 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

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.4.0.tar.gz (92.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

python_jose-3.4.0-py2.py3-none-any.whl (34.6 kB view details)

Uploaded Python 2Python 3

File details

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

File metadata

  • Download URL: python-jose-3.4.0.tar.gz
  • Upload date:
  • Size: 92.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.12

File hashes

Hashes for python-jose-3.4.0.tar.gz
Algorithm Hash digest
SHA256 9a9a40f418ced8ecaf7e3b28d69887ceaa76adad3bcaa6dae0d9e596fec1d680
MD5 e0fd59822755840434a4139e57b2d698
BLAKE2b-256 8ea0c49687cf40cb6128ea4e0559855aff92cd5ebd1a60a31c08526818c0e51e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: python_jose-3.4.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 34.6 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.12

File hashes

Hashes for python_jose-3.4.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 9c9f616819652d109bd889ecd1e15e9a162b9b94d682534c9c2146092945b78f
MD5 59b80b8a3831c23ad74dc9beb09dee6c
BLAKE2b-256 63b02586ea6b6fd57a994ece0b56418cbe93fff0efb85e2c9eb6b0caf24a4e37

See more details on using hashes here.

Supported by

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