Metadata-Version: 2.0
Name: python-jose
Version: 2.0.0
Summary: JOSE implementation in Python
Home-page: http://github.com/mpdavis/python-jose
Author: Michael Davis
Author-email: mike.philip.davis@gmail.com
License: MIT
Keywords: jose jws jwe jwt json web token security signing
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Natural Language :: English
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Utilities
Requires-Dist: six (<2.0)
Requires-Dist: ecdsa (<1.0)
Requires-Dist: future (<1.0)
Requires-Dist: pycryptodome (<3.4.0,>=3.3.1)
Provides-Extra: cryptography
Requires-Dist: cryptography; extra == 'cryptography'
Provides-Extra: pycrypto
Requires-Dist: pycrypto (>=2.6.0,<2.7.0); extra == 'pycrypto'
Provides-Extra: pycryptodome
Requires-Dist: pycryptodome (<3.4.0,>=3.3.1); extra == 'pycryptodome'

python-jose
===========

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.


Principles
----------

This is a JOSE implementation that is fully compatible with Google App Engine
which requires the use of the PyCrypto library.


Installation
------------

::

    $ pip install python-jose


Custom Backends
---------------

As of 2.0.0, python-jose uses pycryptodome by default for RSA signing and verification. If
necessary, other RSA backends are supported. Both pycrpyto and crytography are options.

In order to use a custom backend, install python-jose with the appropriate extra.

::

    $ pip install python-jose[pycrypto]
    $ pip install python-jose[crytography]


Usage
-----

.. code-block:: python

    >>> 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_.

.. |Build Status| image:: https://travis-ci.org/mpdavis/python-jose.svg?branch=master
   :target: https://travis-ci.org/mpdavis/python-jose
.. |Coverage Status| image:: http://codecov.io/github/mpdavis/python-jose/coverage.svg?branch=master
   :target: http://codecov.io/github/mpdavis/python-jose?branch=master
.. |Docs| image:: https://readthedocs.org/projects/python-jose/badge/
   :target: https://python-jose.readthedocs.org/en/latest/
.. _ReadTheDocs: https://python-jose.readthedocs.org/en/latest/
.. _PyJWT: https://github.com/jpadilla/pyjwt


