Go to file
Andrey Kislyuk 59384e29b9 Add verify example 2017-08-22 13:06:21 -07:00
requests_http_signature Add verify example 2017-08-22 13:06:21 -07:00
test Begin requests-http-signature 2017-08-22 12:05:04 -07:00
.gitignore Begin requests-http-signature 2017-08-22 12:05:04 -07:00
.travis.yml Drop Python 3.3 2017-08-22 12:40:36 -07:00
Changes.rst v0.0.1 2017-08-22 12:07:16 -07:00
LICENSE Begin requests-http-signature 2017-08-22 12:05:04 -07:00
Makefile Fix coverage reporting 2017-08-22 12:44:21 -07:00
README.rst Add verify example 2017-08-22 13:06:21 -07:00
common.mk Begin requests-http-signature 2017-08-22 12:05:04 -07:00
setup.cfg Begin requests-http-signature 2017-08-22 12:05:04 -07:00
setup.py Machine readable cryptography dependency 2017-08-22 12:40:07 -07:00

README.rst

requests-http-signature: A Requests auth module for HTTP Signature
==================================================================

**requests-http-signature** is a `Requests <https://github.com/requests/requests>`_ `authentication plugin
<http://docs.python-requests.org/en/master/user/authentication/>`_ (``requests.auth.AuthBase`` subclass) implementing
the `IETF HTTP Signatures draft <https://tools.ietf.org/html/draft-cavage-http-signatures>`_. It has no required
dependencies outside the standard library. If you wish to use algorithms other than HMAC, there is an optional
dependency on `cryptography <https://pypi.python.org/pypi/cryptography>`_.

.. code-block:: python

  import requests
  from requests_http_signature import HTTPSignatureAuth
  preshared_secret = 'monorail_cat'
  url = 'http://httpbin.org/get'
  requests.get(url, auth=HTTPSignatureAuth(key=preshared_secret))

In addition to signing messages in the client, this module can be used to verify incoming requests:

.. code-block:: python

  def key_resolver(key_id, algorithm):
      return 'monorail_cat'

  HTTPSignatureAuth(key=preshared_secret).verify(request, key_resolver=key_resolver)

Installation
------------
::

    pip install requests-http-signature

Links
-----
* `IETF HTTP Signatures draft <https://tools.ietf.org/html/draft-cavage-http-signatures>`_
* `Project home page (GitHub) <https://github.com/kislyuk/requests-http-signature>`_
* `Documentation (Read the Docs) <https://requests-http-signature.readthedocs.io/en/latest/>`_
* `Package distribution (PyPI) <https://pypi.python.org/pypi/requests-http-signature>`_
* `Change log <https://github.com/kislyuk/requests-http-signature/blob/master/Changes.rst>`_

Bugs
~~~~
Please report bugs, issues, feature requests, etc. on `GitHub <https://github.com/kislyuk/requests-http-signature/issues>`_.

License
-------
Licensed under the terms of the `Apache License, Version 2.0 <http://www.apache.org/licenses/LICENSE-2.0>`_.

.. image:: https://travis-ci.org/kislyuk/requests-http-signature.png
        :target: https://travis-ci.org/kislyuk/requests-http-signature
.. image:: https://codecov.io/github/kislyuk/requests-http-signature/coverage.svg?branch=master
        :target: https://codecov.io/github/kislyuk/requests-http-signature?branch=master
.. image:: https://img.shields.io/pypi/v/requests-http-signature.svg
        :target: https://pypi.python.org/pypi/requests-http-signature
.. image:: https://img.shields.io/pypi/l/requests-http-signature.svg
        :target: https://pypi.python.org/pypi/requests-http-signature
.. image:: https://readthedocs.org/projects/requests-http-signature/badge/?version=latest
        :target: https://requests-http-signature.readthedocs.org/