{ "info": { "author": "Johan Charpentier", "author_email": "jcharpentier@bearstech.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Web Environment", "Framework :: Django", "Intended Audience :: Developers", "Programming Language :: Python", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "django-signature\n================\n\nApplication to generate x509 certificates and sign models with PKCS#7 standard\n\nhttp://bitbucket.org/bearstech/django-signature/\n\nBeta : not really for production use\n\nFeatures :\n----------\n\n - PKI :\n\n + Generate (or load) RSA keys and store them in Django models\n + Generate x509 certificates and store them in Django models\n + Load x509 certificat and find relations with other Certificates and Keys\n + Generate (or load) x509 Requests and store them in Django models\n + Generate self-signed x509 for root CA\n + Verify certificate chain (with CRLs)\n + Sign Certificate Requests\n\n - Digital signature\n\n + Sign/verify text with PKCS#7 standard\n + Sign/verify simple modelswith PKCS#7 standard\n + Support FileField (with sha512 digest)\n\n - Good test coverage\n\nTodo :\n------\n\n - Sign complex models\n - Generate indexes with OpenSSL.generate_index()\n - Improve configuration\n - Cert load with renew\n - ... and much more\n\nExamples :\n----------\n\nThere is an simple PKI example::\n\n from signature.models import Key, Certificate, CertificateRequest\n from datetime import datetime\n\n ca_pwd = \"R00tz\"\n c_pwd = \"1234\"\n\n # CA and Client keys\n ca_key = Key.generate(ca_pwd)\n c_key = Key.generate(c_pwd)\n\n # CA Cert\n ca_cert = Certificate()\n ca_cert.CN = \"Admin\"\n ca_cert.C = \"FR\"\n ca_cert.key = ca_key\n ca_cert.days = 150\n ca_cert.is_ca = True\n ca_cert.generate_x509_root(ca_pwd)\n ca_cert.save()\n\n # Client's request\n rqst = CertificateRequest()\n rqst.CN = \"World Company\"\n rqst.C = \"FR\"\n rqst.key = c_key\n rqst.sign_request(c_pwd)\n rqst.save()\n\n # Sign client's request and return certificate\n # (you can give to Client's certificate CA capabilities with ca=True)\n c_cert = ca_cert.sign_request(rqst, 150, ca_pwd, ca=False)\n\n # Verify created certificate :\n c_cert.check()\n \n # Revoke certificate :\n c_cert.revoke(c_cert, ca_pwd)\n\n # Import a Key / Certificate:\n imported = Key.new_from_pem(pem_str, passphrase=\"gigowatt\", user=None)\n imported = Certificate.new_from_pem(pem_str)\n\nFor more examples, see SignaturePKITestCase into tests/test_project/apps/testapp/tests.py\n\nThere is an simple signature example::\n\n # Sign Text\n text = \"This is a data\"\n data_signed = c_cert.sign_text(text, c_pwd)\n result = c_cert.verify_smime(data_signed)\n\n # Sign Model (get text)\n auth1 = Author(name=\"Raymond E. Feist\", title=\"MR\")\n data_signed = c_cert.sign_model(auth1, c_pwd)\n result = c_cert.verify_smime(data_signed)\n\n # Sign Model (get Signature)\n auth1 = Author(name=\"Raymond E. Feist\", title=\"MR\")\n signed = c_cert.make_signature(auth1, self.c_pwd)\n signed.check_pkcs7(signed)\n\nFor more examples, see SignatureTestCase into tests/test_project/apps/testapp/tests.py\n\nTests :\n-------\n\n - cd tests\n - python bootstrap.py\n - ./bin/buildout.py -v\n - ./bin/test-1.2 or ./bin/test-1.1\n\nRequirements :\n--------------\n\n - M2Crypto : http://chandlerproject.org/Projects/MeTooCrypto\n - Django >= 1.1\n - Openssl", "description_content_type": null, "docs_url": null, "download_url": "http://bitbucket.org/bearstech/django-signature/downloads", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/bearstech/django-signature", "keywords": "django models crypto openssl pki", "license": "GPL v3", "maintainer": null, "maintainer_email": null, "name": "django-signature", "package_url": "https://pypi.org/project/django-signature/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/django-signature/", "project_urls": { "Download": "http://bitbucket.org/bearstech/django-signature/downloads", "Homepage": "http://github.com/bearstech/django-signature" }, "release_url": "https://pypi.org/project/django-signature/0.3.1/", "requires_dist": null, "requires_python": null, "summary": "Django application to generate and sign Models.", "version": "0.3.1" }, "last_serial": 790617, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "224d434e10666901934119d252a26101", "sha256": "0c0333c285e7283b753b50b2df027d2759a8b3f358a14f2500e44fe4e0cb222d" }, "downloads": -1, "filename": "django-signature-0.1.tar.gz", "has_sig": false, "md5_digest": "224d434e10666901934119d252a26101", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14847, "upload_time": "2010-11-11T14:09:13", "url": "https://files.pythonhosted.org/packages/0b/af/ca5e10c36436b7c1d486e24a492a9af07a16da86d7e3ecf85970921c352b/django-signature-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "cca8156b55073f7190414f38acad4c78", "sha256": "f18e208859676781b9fe19e03f241b540de09adbb177b3001f19eea9169d1374" }, "downloads": -1, "filename": "django-signature-0.2.tar.gz", "has_sig": false, "md5_digest": "cca8156b55073f7190414f38acad4c78", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 47928, "upload_time": "2011-05-05T22:43:51", "url": "https://files.pythonhosted.org/packages/aa/b3/7dc51cca18f9084704f18a0539fea7cc401d4b7597f1e52ebc33e65f5dd5/django-signature-0.2.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "bc6f79e0c4863be3b5dc5e9c3fb6f66b", "sha256": "2726650c621c648f39f436200c25f41b4dbfcc4e5b9ac29938e58235de4a2842" }, "downloads": -1, "filename": "django-signature-0.2.1.tar.gz", "has_sig": false, "md5_digest": "bc6f79e0c4863be3b5dc5e9c3fb6f66b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14784, "upload_time": "2011-08-30T14:17:57", "url": "https://files.pythonhosted.org/packages/b4/62/12c2a805fc7e8b1e69188229f4fe35e6be9bfaf07bad67ed6e5274ed64ea/django-signature-0.2.1.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "04ffa694282f153aab465e35290f00dd", "sha256": "50db6255285abf18144d3a3771da5f92c6ac9d3bb4da7effd3c3e6f47d26490d" }, "downloads": -1, "filename": "django-signature-0.3.tar.gz", "has_sig": false, "md5_digest": "04ffa694282f153aab465e35290f00dd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 46305, "upload_time": "2011-08-30T14:35:49", "url": "https://files.pythonhosted.org/packages/f3/8c/60af2341a111ed08c124b645471ddeaf7d11c9be5b3495e6c187cb3c72c0/django-signature-0.3.tar.gz" } ], "0.3.1": [ { "comment_text": "built for Linux-3.0.0-1-amd64-x86_64-with-glibc2.3.2", "digests": { "md5": "c57ffabfec2c3b5d3789e3fad5a3346a", "sha256": "ea0ef57af784b7157d9775c4f77b7dfc01e55aa2ce9bb40b58dcf47772f63b59" }, "downloads": -1, "filename": "django-signature-0.3.1.linux-x86_64.tar.gz", "has_sig": false, "md5_digest": "c57ffabfec2c3b5d3789e3fad5a3346a", "packagetype": "bdist_dumb", "python_version": "any", "requires_python": null, "size": 37749, "upload_time": "2011-08-30T15:18:04", "url": "https://files.pythonhosted.org/packages/ab/29/436caa6ba6d7e674371fa115c20e29e835e9859027a0cb6380221e0ef4b9/django-signature-0.3.1.linux-x86_64.tar.gz" }, { "comment_text": "", "digests": { "md5": "371ddbeb9e9a21b4e80a1403216408fd", "sha256": "61229c924fc824ecd50dd4877bdc342e6c7cc74c45d1e2815bfcc89ef8fb6ca4" }, "downloads": -1, "filename": "django-signature-0.3.1.tar.gz", "has_sig": false, "md5_digest": "371ddbeb9e9a21b4e80a1403216408fd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 46366, "upload_time": "2011-08-30T15:18:02", "url": "https://files.pythonhosted.org/packages/2e/09/b06457f8a659afcfcdf6b2c75aa378d6d8f5a62daa0312a4cf5818bb023a/django-signature-0.3.1.tar.gz" } ] }, "urls": [ { "comment_text": "built for Linux-3.0.0-1-amd64-x86_64-with-glibc2.3.2", "digests": { "md5": "c57ffabfec2c3b5d3789e3fad5a3346a", "sha256": "ea0ef57af784b7157d9775c4f77b7dfc01e55aa2ce9bb40b58dcf47772f63b59" }, "downloads": -1, "filename": "django-signature-0.3.1.linux-x86_64.tar.gz", "has_sig": false, "md5_digest": "c57ffabfec2c3b5d3789e3fad5a3346a", "packagetype": "bdist_dumb", "python_version": "any", "requires_python": null, "size": 37749, "upload_time": "2011-08-30T15:18:04", "url": "https://files.pythonhosted.org/packages/ab/29/436caa6ba6d7e674371fa115c20e29e835e9859027a0cb6380221e0ef4b9/django-signature-0.3.1.linux-x86_64.tar.gz" }, { "comment_text": "", "digests": { "md5": "371ddbeb9e9a21b4e80a1403216408fd", "sha256": "61229c924fc824ecd50dd4877bdc342e6c7cc74c45d1e2815bfcc89ef8fb6ca4" }, "downloads": -1, "filename": "django-signature-0.3.1.tar.gz", "has_sig": false, "md5_digest": "371ddbeb9e9a21b4e80a1403216408fd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 46366, "upload_time": "2011-08-30T15:18:02", "url": "https://files.pythonhosted.org/packages/2e/09/b06457f8a659afcfcdf6b2c75aa378d6d8f5a62daa0312a4cf5818bb023a/django-signature-0.3.1.tar.gz" } ] }