{ "info": { "author": "Adam T. Lindsay", "author_email": "a.lindsay+github@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Environment :: Web Environment", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Topic :: Internet :: WWW/HTTP", "Topic :: Internet :: WWW/HTTP :: Site Management", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "Python http-signature\n=====================\n\nSign http requests with secure signatures.\n\nRequirements\n------------\n\n* PyCrypto\n\nOptional:\n\n* ssh or paramiko >= 1.8.0 (for ssh-agent integration)\n* requests\n\nUsage\n-----\n\nfor simple raw signing::\n\n import http_signature\n \n sig_maker = http_signature.Signer(secret='test.pem', algorithm='rsa-sha256')\n sig_maker.sign('hello world!')\n\nfor use with requests::\n\n import json\n import requests\n from http_signature.requests_auth import HTTPSignatureAuth\n \n auth = HTTPSignatureAuth(key_id='Test', secret='test.pem')\n z = requests.get('https://api.joyentcloud.com/my/packages/Small+1GB', \n auth=auth, headers={'X-Api-Version': '~6.5'})\n\nClass initialization parameters\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n::\n\n http_signature.Signer(secret='', algorithm='rsa-sha256', allow_agent=False)\n\n``secret``, in the case of an rsa signature, is a path to a private RSA pem file. In the case of an hmac, it is a secret password. \n``algorithm`` is one of the six allowed signatures: ``rsa-sha1``, ``rsa-sha256``, ``rsa-sha512``, ``hmac-sha1``, ``hmac-sha256``, \n``hmac-sha512``.\n``allow_agent`` uses the ``ssh`` package to find an ``ssh-agent`` instance running, and uses that to sign all requests. Note that if so, this overrides manual selection of the signing algorithm to ``rsa-sha1``.\n\n::\n\n http_signature.requests_auth.HTTPSignatureAuth(key_id='', secret='', algorithm='rsa-sha256', headers=None, allow_agent=False)\n\n``key_id`` is the label by which the server system knows your RSA signature or password. \n``headers`` is the list of HTTP headers that are concatenated and used as signing objects. By default it is the specification's minimum, the ``Date`` HTTP header. \n``secret``, ``algorithm``, and ``allow_agent`` are as above.\n\nLicense\n-------\n\nMIT\n\n\nChanges\n-------\n\n0.1.4 (2012-10-03)\n~~~~~~~~~~~~~~~~~~\n\n* Account for ssh now being re-merged into paramiko: either package is acceptable (but paramiko should ideally be >= 1.8.0)\n\n0.1.3 (2012-10-02)\n~~~~~~~~~~~~~~~~~~\n\n* Stop enabling `allow_agent` by default\n* Stop requiring `ssh` package by default -- it is imported only when `allow_agent=True`\n* Changed logic around ssh-agent: if one key is available, don't bother with any other authentication method\n* Changed logic around key file usage: if decryption fails, prompt for password\n* Bug fix: ssh-agent resulted in a nonsensical error if it found no correct keys (thanks, petervolpe)\n* Introduce versioneer.py", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/atl/py-http-signature", "keywords": "http,cryptography,web,joyent", "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "http_signature", "package_url": "https://pypi.org/project/http_signature/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/http_signature/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/atl/py-http-signature" }, "release_url": "https://pypi.org/project/http_signature/0.1.4/", "requires_dist": null, "requires_python": null, "summary": "Simple secure signing for HTTP requests using http-signature", "version": "0.1.4" }, "last_serial": 793069, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "b03ef22b20f4a068d5227189d2338086", "sha256": "adac3d566d6ce1ce193ec2b62f40c50f8e0749401f7b36be536b3e3bf919de2b" }, "downloads": -1, "filename": "http_signature-0.1.0.tar.gz", "has_sig": false, "md5_digest": "b03ef22b20f4a068d5227189d2338086", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3371, "upload_time": "2012-04-18T17:56:29", "url": "https://files.pythonhosted.org/packages/9c/57/cc75707bd86a6867df1934976be057d12888521b3d398e7ef0f52182e28f/http_signature-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "7aeb690573c6f3af27ffab6217557ec4", "sha256": "ff8a1f1a4330db4dc9e2762f7cbfea33ef1fe91b2fed0543d9f1f3094dc2d825" }, "downloads": -1, "filename": "http_signature-0.1.1.tar.gz", "has_sig": false, "md5_digest": "7aeb690573c6f3af27ffab6217557ec4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3866, "upload_time": "2012-04-30T16:55:51", "url": "https://files.pythonhosted.org/packages/7b/6e/1e611d471f199472446848095f4b0cda4022cc185e0b56821bfa20fb511f/http_signature-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "8a07a47e6de505739be9df110e8b18a2", "sha256": "bb0f399d84c76ae4a7c65596716c3a4f92a86651833f8c641edffda284c2141e" }, "downloads": -1, "filename": "http_signature-0.1.2.tar.gz", "has_sig": false, "md5_digest": "8a07a47e6de505739be9df110e8b18a2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3877, "upload_time": "2012-04-30T17:36:07", "url": "https://files.pythonhosted.org/packages/17/df/0e0189140fb9124fd36e07426721375e4f4599ee707f783971ce40587dc2/http_signature-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "27a8512b9b8325fd668aea20ea13418a", "sha256": "9b65d57e97b417103ef3e63d0530d7ed9ed91f8818025bb096dea812101aa9a7" }, "downloads": -1, "filename": "http_signature-0.1.3.tar.gz", "has_sig": false, "md5_digest": "27a8512b9b8325fd668aea20ea13418a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9666, "upload_time": "2012-10-02T20:40:22", "url": "https://files.pythonhosted.org/packages/1d/cb/ca09d1bd9f88043b822d82ae8d7fa002f481c4ee38e926d0cd4068f8000a/http_signature-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "015061846254bd5d8c5dbc2913985153", "sha256": "14acc192ef20459d5e11b4e800dd3a4542f6bd2ab191bf5717c696bf30936c62" }, "downloads": -1, "filename": "http_signature-0.1.4.tar.gz", "has_sig": false, "md5_digest": "015061846254bd5d8c5dbc2913985153", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9782, "upload_time": "2012-10-03T15:48:19", "url": "https://files.pythonhosted.org/packages/a0/51/ebab9707f1e133585fd230d5a20f1e7025de284b3f387e51a29d39c9b444/http_signature-0.1.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "015061846254bd5d8c5dbc2913985153", "sha256": "14acc192ef20459d5e11b4e800dd3a4542f6bd2ab191bf5717c696bf30936c62" }, "downloads": -1, "filename": "http_signature-0.1.4.tar.gz", "has_sig": false, "md5_digest": "015061846254bd5d8c5dbc2913985153", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9782, "upload_time": "2012-10-03T15:48:19", "url": "https://files.pythonhosted.org/packages/a0/51/ebab9707f1e133585fd230d5a20f1e7025de284b3f387e51a29d39c9b444/http_signature-0.1.4.tar.gz" } ] }