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

Uploaded Source

Built Distribution

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

Uploaded Python 2Python 3

File details

Details for the file python_jose-3.5.0.tar.gz.

File metadata

  • Download URL: python_jose-3.5.0.tar.gz
  • Upload date:
  • Size: 92.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.3

File hashes

Hashes for python_jose-3.5.0.tar.gz
Algorithm Hash digest
SHA256 fb4eaa44dbeb1c26dcc69e4bd7ec54a1cb8dd64d3b4d81ef08d90ff453f2b01b
MD5 4f8165356c83c449be810aaa6aacde67
BLAKE2b-256 c6773a1c9039db7124eb039772b935f2244fbb73fc8ee65b9acf2375da1c07bf

See more details on using hashes here.

File details

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

File metadata

  • Download URL: python_jose-3.5.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.11.3

File hashes

Hashes for python_jose-3.5.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 abd1202f23d34dfad2c3d28cb8617b90acf34132c7afd60abd0b0b7d3cb55771
MD5 e654f34f7a8145d5a50d8473bb273049
BLAKE2b-256 d9c30bd11992072e6a1c513b16500a5d07f91a24017c5909b02c72c62d7ad024

See more details on using hashes here.

Supported by

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