{ "info": { "author": "Andrey Kislyuk", "author_email": "kislyuk@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Operating System :: MacOS :: MacOS X", "Operating System :: POSIX", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "requests-http-signature: A Requests auth module for HTTP Signature\n==================================================================\n**requests-http-signature** is a `Requests `_ `authentication plugin\n`_ (``requests.auth.AuthBase`` subclass) implementing\nthe `IETF HTTP Signatures draft RFC `_. It has no required\ndependencies outside the standard library. If you wish to use algorithms other than HMAC (namely, RSA and ECDSA algorithms\nspecified in the RFC), there is an optional dependency on `cryptography `_.\n\nInstallation\n------------\n::\n\n $ pip install requests-http-signature\n\nUsage\n-----\n\n.. code-block:: python\n\n import requests\n from requests_http_signature import HTTPSignatureAuth\n \n preshared_key_id = 'squirrel'\n preshared_secret = 'monorail_cat'\n url = 'http://example.com/path'\n \n requests.get(url, auth=HTTPSignatureAuth(key=preshared_secret, key_id=preshared_key_id))\n\nBy default, only the ``Date`` header is signed (as per the RFC) for body-less requests such as GET. The ``Date`` header\nis set if it is absent. In addition, for requests with bodies (such as POST), the ``Digest`` header is set to the SHA256\nof the request body and signed (an example of this appears in the RFC). To add other headers to the signature, pass an\narray of header names in the ``header`` keyword argument.\n\nIn addition to signing messages in the client, the class method ``HTTPSignatureAuth.verify()`` can be used to verify\nincoming requests:\n\n.. code-block:: python\n\n def key_resolver(key_id, algorithm):\n return 'monorail_cat'\n\n HTTPSignatureAuth.verify(request, key_resolver=key_resolver)\n\nAsymmetric key algorithms (RSA and ECDSA)\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nFor asymmetric key algorithms, you should supply the private key as the ``key`` parameter to the ``HTTPSignatureAuth()`` \nconstructor as bytes in the PEM format:\n\n.. code-block:: python\n\n with open('key.pem', 'rb') as fh:\n requests.get(url, auth=HTTPSignatureAuth(algorithm=\"rsa-sha256\", key=fh.read(), key_id=preshared_key_id))\n\nWhen verifying, the ``key_resolver()`` callback should provide the public key as bytes in the PEM format as well:\n\nLinks\n-----\n* `IETF HTTP Signatures draft `_\n* https://github.com/joyent/node-http-signature\n* `Project home page (GitHub) `_\n* `Documentation (Read the Docs) `_\n* `Package distribution (PyPI) `_\n* `Change log `_\n\nBugs\n~~~~\nPlease report bugs, issues, feature requests, etc. on `GitHub `_.\n\nLicense\n-------\nLicensed under the terms of the `Apache License, Version 2.0 `_.\n\n.. image:: https://travis-ci.org/kislyuk/requests-http-signature.png\n :target: https://travis-ci.org/kislyuk/requests-http-signature\n.. image:: https://codecov.io/github/kislyuk/requests-http-signature/coverage.svg?branch=master\n :target: https://codecov.io/github/kislyuk/requests-http-signature?branch=master\n.. image:: https://img.shields.io/pypi/v/requests-http-signature.svg\n :target: https://pypi.python.org/pypi/requests-http-signature\n.. image:: https://img.shields.io/pypi/l/requests-http-signature.svg\n :target: https://pypi.python.org/pypi/requests-http-signature\n.. image:: https://readthedocs.org/projects/requests-http-signature/badge/?version=latest\n :target: https://requests-http-signature.readthedocs.org/\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/kislyuk/requests-http-signature", "keywords": "", "license": "Apache Software License", "maintainer": "", "maintainer_email": "", "name": "requests-http-signature", "package_url": "https://pypi.org/project/requests-http-signature/", "platform": "MacOS X", "project_url": "https://pypi.org/project/requests-http-signature/", "project_urls": { "Homepage": "https://github.com/kislyuk/requests-http-signature" }, "release_url": "https://pypi.org/project/requests-http-signature/0.1.0/", "requires_dist": null, "requires_python": "", "summary": "A Requests auth module for HTTP Signature", "version": "0.1.0" }, "last_serial": 4455661, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "559da201cbe7a1ec0ff2e9d90c62538b", "sha256": "7700697c415f88b4e7cb8b5430ebc7b4b2f7eedd7b8500434a26d1f706f572d8" }, "downloads": -1, "filename": "requests_http_signature-0.0.1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "559da201cbe7a1ec0ff2e9d90c62538b", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 5590, "upload_time": "2017-08-22T19:07:30", "url": "https://files.pythonhosted.org/packages/c3/75/b98b8e161e5edb1f871ab39088f956ed28269bb51462ca67faf344100a85/requests_http_signature-0.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "833740a9f0fbebc4b7287a63e5aeb350", "sha256": "5d466ce29c3a8d2a4d802a74b8393a183ba0c6b072c2daa810b585611d8539be" }, "downloads": -1, "filename": "requests-http-signature-0.0.1.tar.gz", "has_sig": true, "md5_digest": "833740a9f0fbebc4b7287a63e5aeb350", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4569, "upload_time": "2017-08-22T19:07:28", "url": "https://files.pythonhosted.org/packages/ee/77/d866393a7dff41421f14fd3e7f7afe6b05d3a52f47e5b7ce15e5d1ee3491/requests-http-signature-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "b9c11816334d3e6149846f640f5ec271", "sha256": "56327eab9d2139918499d607edde5d0a0ac21322f5334b76b55ddd9feee2ac7e" }, "downloads": -1, "filename": "requests_http_signature-0.0.2-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "b9c11816334d3e6149846f640f5ec271", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 6462, "upload_time": "2017-08-22T21:50:24", "url": "https://files.pythonhosted.org/packages/1a/19/d6243ed640fd0c2e84b0d67c9184bd0e7cc31c3cc1b036470e008c2db11b/requests_http_signature-0.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a944010217fb54c192e876dd1b856d84", "sha256": "2bb0dafac543c9765c8273f22db5b8f6d8ddb013d3bccccf2383afc2674e57ef" }, "downloads": -1, "filename": "requests-http-signature-0.0.2.tar.gz", "has_sig": true, "md5_digest": "a944010217fb54c192e876dd1b856d84", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5084, "upload_time": "2017-08-22T21:50:22", "url": "https://files.pythonhosted.org/packages/ca/6d/13f6ed8a3888488528e2ce8bc4902420ae81ccb6e2d95f191ba8d6e8dfad/requests-http-signature-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "3480c1354ace51051988e9ec4f5f4c87", "sha256": "e8b0824c918b38d59d64c9e60a0be2d699854c429da8e435a99d7510e0b9c3f0" }, "downloads": -1, "filename": "requests_http_signature-0.0.3-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "3480c1354ace51051988e9ec4f5f4c87", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 7114, "upload_time": "2017-09-19T16:59:04", "url": "https://files.pythonhosted.org/packages/2a/11/ccb4da6099d9c452ccbc2c9b660a14234343c20a4ba86aa885e211188091/requests_http_signature-0.0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "86073faa8b0f276b96ad89608eded608", "sha256": "bf7ce03e48d33dc140ef736d297380d2c783ecfc973c11a51bfee5334d7aaad4" }, "downloads": -1, "filename": "requests-http-signature-0.0.3.tar.gz", "has_sig": true, "md5_digest": "86073faa8b0f276b96ad89608eded608", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6241, "upload_time": "2017-09-19T16:59:00", "url": "https://files.pythonhosted.org/packages/c6/99/1db0d30a5b42a9ef64c94d29697ea5a3a38533697b3cc0d374e3b3d33224/requests-http-signature-0.0.3.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "055d5de727d0522b8fdfc4cff486d059", "sha256": "f41debf21abaa8bb5ec6c367ddc6a5003d98ef4df21afb20f90f2195bd22c7d3" }, "downloads": -1, "filename": "requests_http_signature-0.1.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "055d5de727d0522b8fdfc4cff486d059", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 4791, "upload_time": "2018-11-06T02:52:38", "url": "https://files.pythonhosted.org/packages/45/c2/dd86e89f8f4fb6cc0028793f725bd536757b630c5734621f72b94b55ef53/requests_http_signature-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9b56feafca4d3b99bc993f3f36ad2277", "sha256": "0e39d928469e6f1411e3bffca74a280ac9375d4fa5bf03552974f0ba4ff4c37a" }, "downloads": -1, "filename": "requests-http-signature-0.1.0.tar.gz", "has_sig": true, "md5_digest": "9b56feafca4d3b99bc993f3f36ad2277", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6323, "upload_time": "2018-11-06T02:52:36", "url": "https://files.pythonhosted.org/packages/10/18/3744e7bc8b846dc7f4718ad189261f2eb47a70190a2f69a877f2ab51a77c/requests-http-signature-0.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "055d5de727d0522b8fdfc4cff486d059", "sha256": "f41debf21abaa8bb5ec6c367ddc6a5003d98ef4df21afb20f90f2195bd22c7d3" }, "downloads": -1, "filename": "requests_http_signature-0.1.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "055d5de727d0522b8fdfc4cff486d059", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 4791, "upload_time": "2018-11-06T02:52:38", "url": "https://files.pythonhosted.org/packages/45/c2/dd86e89f8f4fb6cc0028793f725bd536757b630c5734621f72b94b55ef53/requests_http_signature-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9b56feafca4d3b99bc993f3f36ad2277", "sha256": "0e39d928469e6f1411e3bffca74a280ac9375d4fa5bf03552974f0ba4ff4c37a" }, "downloads": -1, "filename": "requests-http-signature-0.1.0.tar.gz", "has_sig": true, "md5_digest": "9b56feafca4d3b99bc993f3f36ad2277", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6323, "upload_time": "2018-11-06T02:52:36", "url": "https://files.pythonhosted.org/packages/10/18/3744e7bc8b846dc7f4718ad189261f2eb47a70190a2f69a877f2ab51a77c/requests-http-signature-0.1.0.tar.gz" } ] }