{ "info": { "author": "Julius Seporaitis", "author_email": "julius@seporaitis.net", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4" ], "description": "===============\npoor-smime-sign\n===============\n\n.. image:: https://img.shields.io/pypi/v/poor-smime-sign.svg\n :target: https://pypi.python.org/pypi/poor-smime-sign\n\n.. image:: https://img.shields.io/travis/seporaitis/poor-smime-sign.svg\n :target: https://travis-ci.org/seporaitis/poor-smime-sign\n\n\nA very poor tool to generate S/MIME signatures for arbitrary content & probably insecurely too.\n\nA quick example:\n\n.. code-block:: python\n\n >>> smime_sign(\n ... signer_cert_path=\"/path/to/files/signer.cert\",\n ... signer_key_path=\"/path/to/files/signer.pem\",\n ... recipient_cert_path=\"/path/to/files/recipient.cert\",\n ... content=\"test\",\n ... output_format=\"PEM\",\n ... )\n\nFeatures\n--------\n\n* Does S/MIME signatures.\n* Verifies S/MIME signatures.\n\n\nWhy?\n--------\n\nThis utility library has single purpose - provide support for making\nS/MIME signatures on Python2 **and 3**, which currently lacks any\nproper libraries for that purpose.\n\nThe main use case it is built for: at work our system has to generate\nApple Passbook Pass files, which include an S/MIME\nsignature. Currently it is done using ``M2Crypto.SMIME``. While that\nworks - we want to migrate to Python3, and unfortunately for us\n``M2Crypto`` is not fully supported. ``smime_sign`` is a poor man's\nsolution for this problem.\n\nInternally this does nothing more than call `openssl smime`_, so you\nmight want to see its docs too.\n\n.. _openssl smime: https://www.openssl.org/docs/manmaster/apps/smime.html\n\n\nWhy not?\n--------\n\n* This may be insecure.\n* This may be slow if you are signing large blobs of text.\n\n\nAPI\n===\n\n``smime_sign(signer_cert_path, signer_key_path, cert_path, recipient_cert_path, content, output_format)``\n---------------------------------------------------------------------------------------------------------\n\nGenerates and returns signature string for ``content`` in\n``output_format``.\n\nAll ``*_path`` arguments must be absolute\npaths.\n\n``content`` must be a string, not a path.\n\nExample to generate signature for Passbook manifest:\n\n.. code-block:: python\n\n >>> manifest_json = \"...\" # JSON string with `manifest.json` content\n >>> signature = smime_sign(\n ... signer_cert_path=\"/path/to/files/signer.cert\",\n ... signer_key_path=\"/path/to/files/signer.pem\",\n ... cert_path=\"/path/to/files/intermediate.cert\",\n ... recipient_cert_path=None,\n ... content=manifest_json,\n ... output_format=\"DER\",\n ... )\n\n``smime_verify(signer_cert_path, content_path, signature_path, signature_format)``\n----------------------------------------------------------------------------------\n\nVerifies a ``content_path`` file against a signature at ``signature_path``.\n\nNote: this function was added to help in the tests only.\n\n\nCredits\n---------\n\nTools used in rendering this package:\n\n* Cookiecutter_\n* `cookiecutter-pypackage`_\n\n.. _Cookiecutter: https://github.com/audreyr/cookiecutter\n.. _`cookiecutter-pypackage`: https://github.com/audreyr/cookiecutter-pypackage\n\n\n\n\nHistory\n-------\n\n2.0.3 (2016-09-13)\n------------------\n\n* Change the licence from ``AGPLv3`` to ``MIT``.\n\n2.0.2 (2016-01-07)\n------------------\n\n* Fix documentation rendering on PyPI\n\n2.0.1 (2016-01-07)\n------------------\n\n* Added support for passing intermediate certificates.\n* Made recipient certificate optional.\n* Argument structure for ``smime_sign`` has changed, therefore major version bump-up.\n\n\n1.0.0 (2015-11-27)\n------------------\n\n* First release on PyPI.", "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/seporaitis/poor-smime-sign", "keywords": "smime sign passbook", "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "poor-smime-sign", "package_url": "https://pypi.org/project/poor-smime-sign/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/poor-smime-sign/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/seporaitis/poor-smime-sign" }, "release_url": "https://pypi.org/project/poor-smime-sign/2.0.3/", "requires_dist": null, "requires_python": null, "summary": "A very poor tool to do S/MIME signatures on binary files. Probably insecurely.", "version": "2.0.3" }, "last_serial": 2369024, "releases": { "1.0.0": [], "1.0.1": [ { "comment_text": "", "digests": { "md5": "418f09a0fd15472abb85da4bdbe0dbaf", "sha256": "b305524345ec4e20a67f8ffe1d75b2bbc1582680a124dad560ff281d707e0543" }, "downloads": -1, "filename": "poor-smime-sign-1.0.1.tar.gz", "has_sig": false, "md5_digest": "418f09a0fd15472abb85da4bdbe0dbaf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12478, "upload_time": "2015-11-30T18:09:33", "url": "https://files.pythonhosted.org/packages/46/23/59a932835ac811327b1e32e0280f15ebcf4bb319cce54504a7b06b064eb7/poor-smime-sign-1.0.1.tar.gz" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "620bb98b2c55f84b3bd3be34ba04c13c", "sha256": "b0e271fefe2bb1a8cd577c3b8de2eb20355308056c8239707365cb1aec3ce5cc" }, "downloads": -1, "filename": "poor-smime-sign-2.0.0.tar.gz", "has_sig": false, "md5_digest": "620bb98b2c55f84b3bd3be34ba04c13c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12721, "upload_time": "2016-01-07T14:06:09", "url": "https://files.pythonhosted.org/packages/39/01/0e68e564d9f17f367b14f64959ed87ba8332930da62d80336ded902a2748/poor-smime-sign-2.0.0.tar.gz" } ], "2.0.1": [ { "comment_text": "", "digests": { "md5": "ae317103f9e045f94b64b5ce231ce4bd", "sha256": "1bebff9764bb244b24a706c707971b16c121096a159dd494be14104915ed3fa5" }, "downloads": -1, "filename": "poor-smime-sign-2.0.1.tar.gz", "has_sig": false, "md5_digest": "ae317103f9e045f94b64b5ce231ce4bd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12835, "upload_time": "2016-01-07T14:28:12", "url": "https://files.pythonhosted.org/packages/fd/fa/3adcf0c8f8aaf762b2d520254d97391b918b459718478c2fb2e43bafc894/poor-smime-sign-2.0.1.tar.gz" } ], "2.0.2": [ { "comment_text": "", "digests": { "md5": "677ec53fb55545ef18e086c83bf368bf", "sha256": "67cce3f8454277e7a1ffee7b0ff91cc6b4754474aba0bca1f0efae796d862dfc" }, "downloads": -1, "filename": "poor-smime-sign-2.0.2.tar.gz", "has_sig": false, "md5_digest": "677ec53fb55545ef18e086c83bf368bf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12802, "upload_time": "2016-01-07T14:38:24", "url": "https://files.pythonhosted.org/packages/33/f4/0213e0364b155df0185a8e426d3b1e72e305545295bcdcdac3dc229a7648/poor-smime-sign-2.0.2.tar.gz" } ], "2.0.3": [ { "comment_text": "", "digests": { "md5": "8ecd3685d44001a3564fb942f5d16a17", "sha256": "b3a560130855da804f70330978c3ecfe273f11d9a7cd0f22ec6fc4cfd62aacb0" }, "downloads": -1, "filename": "poor_smime_sign-2.0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8ecd3685d44001a3564fb942f5d16a17", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 6571, "upload_time": "2016-09-28T16:44:04", "url": "https://files.pythonhosted.org/packages/e6/8c/0279b57b6f2b7c4103cb21c2799b90dc3644393fca6f1fb5f94361432254/poor_smime_sign-2.0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "98f25f3e207463f6e00610572683090b", "sha256": "f5264f1e7e97929ef54f91357814acab831cde3dff34e822b583b2fc9bb37dc9" }, "downloads": -1, "filename": "poor-smime-sign-2.0.3.tar.gz", "has_sig": false, "md5_digest": "98f25f3e207463f6e00610572683090b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13041, "upload_time": "2016-09-28T16:20:43", "url": "https://files.pythonhosted.org/packages/4a/c6/798c10fa46dc4d01fc5cbc139a67b353683f9e5e211b48b4dd2eec7dd4a3/poor-smime-sign-2.0.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "8ecd3685d44001a3564fb942f5d16a17", "sha256": "b3a560130855da804f70330978c3ecfe273f11d9a7cd0f22ec6fc4cfd62aacb0" }, "downloads": -1, "filename": "poor_smime_sign-2.0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8ecd3685d44001a3564fb942f5d16a17", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 6571, "upload_time": "2016-09-28T16:44:04", "url": "https://files.pythonhosted.org/packages/e6/8c/0279b57b6f2b7c4103cb21c2799b90dc3644393fca6f1fb5f94361432254/poor_smime_sign-2.0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "98f25f3e207463f6e00610572683090b", "sha256": "f5264f1e7e97929ef54f91357814acab831cde3dff34e822b583b2fc9bb37dc9" }, "downloads": -1, "filename": "poor-smime-sign-2.0.3.tar.gz", "has_sig": false, "md5_digest": "98f25f3e207463f6e00610572683090b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13041, "upload_time": "2016-09-28T16:20:43", "url": "https://files.pythonhosted.org/packages/4a/c6/798c10fa46dc4d01fc5cbc139a67b353683f9e5e211b48b4dd2eec7dd4a3/poor-smime-sign-2.0.3.tar.gz" } ] }