{ "info": { "author": "Ralf Schlatterbeck", "author_email": "rsc@runtux.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Internet :: WWW/HTTP :: HTTP Servers", "Topic :: Internet :: WWW/HTTP :: Site Management", "Topic :: Security :: Cryptography", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "pyspkac: Routines for supporting netscape / html5 SPKAC\n=======================================================\n\n:Author: Ralf Schlatterbeck \n\nThis library supports the format of browser-generated SPKAC certificate\nrequests.\n\nThe HTML `keygen`_ tag which previously was supported by most\nMozilla-based browsers is now in the HTML-5 standard. The keygen tag is\nused in a HTML form element and displays a key generation widget to the\nuser. When submitted, the browser locally generates a public key pair,\nlocally stores the private key, and submits the public key to the web\nserver in the `SPKAC`_ format.\n\n.. _`keygen`: http://www.w3.org/TR/html5/forms.html#the-keygen-element\n.. _`SPKAC`: https://en.wikipedia.org/wiki/Spkac\n\nWhen generating a form with a keygen element, the web server can include\na challenge string in the form. This challenge string is returned in the\nSPKAC generated by the browser. It is signed together with the public\nkey by the private key retained by the browser.\n\nThis package is intended for server-side support of SPKAC. It uses a\nsubmitted SPKAC and checks for correct challenge string and that the\npublic key and challenge are properly signed by the browser. It supports\na method for generating a certificate from the data in the SPKAC and\nadditional data supplied by the web application.\n\nThe generated certificate can then typically be used for client\nauthentication to a web application and is therefore called a client\ncertificate. The web browser (or other client-side application) supplies\nthe certificate in the SSL handshake and proves it is in the posession\nof the necessary private key.\n\nWhen building certificates it is also a good idea to have a certificate\nrevocation list (CRL). The package provides routines to generate a\nrevocation list from scratch using a list of certificate serial numbers\nand revocation dates.\n\nInstallation\n------------\n\nInstall using the standard python setup.py mechanism, e.g.::\n\n python setup.py install --prefix=/usr/local\n\nYou need `pyasn1`_ and `M2Crypto`_ installed for this package to work.\n\n.. _`pyasn1`: http://pyasn1.sourceforge.net/\n.. _`M2Crypto`: http://chandlerproject.org/Projects/MeTooCrypto\n\nExamples\n--------\n\nFor a usage example see the doctests in `spkac.py`_ and `crl.py`\n\n.. _`spkac.py`: https://github.com/FFM/pyspkac/blob/master/pyspkac/spkac.py\n.. _`crl.py`: https://github.com/FFM/pyspkac/blob/master/pyspkac/crl.py\n\nNotes for Building\n------------------\n\nWhen doing a release the following commands should be issued::\n\n python setup.py clean --all\n python setup.py sdist --manifest-only\n git status\n python setup.py sdist --quiet\n git status\n python setup.py register\n python setup.py sdist upload --sign\n\nThe interleaved ``git status`` commands work around a bug in older git\nversions that, when ``git describe`` with ``--dirty`` option is used,\nwill erroneously detect *dirty* status when the directory is stat-dirty.\nSince ``setup.py sdist`` will create symlinks this will make the\ndirectory stat-dirty.\n\nThe --manifest-only will re-create the ``MANIFEST`` file even if neither\n``setup.py`` nor ``MANIFEST.in`` have changed.\n\nChanges\n-------\n\nVersion 0.7: Bug fixes\n\nFix github issues\n\n- Fix Github issue 2 problems with version number format, we now use a\n numeric value but leave the tag format as before (starting with 'V-').\n- Merge pull request for Opera Workaround in Github issue 3\n\n\nVersion 0.6: Bug fix\n\nRelease now contains missing files from 0.5.\n\n- Add *Notes for Building* section and document release procedure to\n avoid missing files in the future\n- Remove relative ``import`` statements\n- Add version import to ``__init__.py``\n\nVersion 0.5: Major feature enhancements\n\nImplement Certificate Revocation Lists (CRL)\n\n- Implementation of CRL (with MD5 hash, this probably needs to be fixed\n later on, don't know yet if there is a format with a stronger hash)\n- factor pem_object\n- Fix timezone of default valid_from for generated certificate: We used\n a timezone correction on a timestamp which is already UTC.\n\nVersion 0.4: Bug fix\n\nFix incompatibility with newer versions of pyasn1.\n\n- BitString serialisation in pyasn1 changed method names, the old\n inofficial serialisation method with '_' is now official without the\n '_'.\n\nVersion 0.3: Bug fix\n\nImport of version.py failed if dependecies were missing. This prevented\na ``pip install`` from succeeding in case of missing dependencies.\n\n- Guard import in __init__.py to not fail for missing dependencies\n\nVersion 0.2: Minor feature additions\n\nMove example from end of spkac.py into a doctest. Change of API:\nset_email no longer supported. Now extensions can be given as unnamed\narguments in the constructor. Named arguments are interpreted as\nsubject parameters for the resulting certificate. All this is shown in\nthe doctest.\n\n- Remove set_email\n- Change constructor: Allow extensions as args and subject parameters as\n keyword args\n- Add doctest\n- Fix setup.py to include install_requires to auto-install required\n packages\n- Easier import:\n from pyspkac import SPKAC\n works now.\n\nVersion 0.1: Initial Release", "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/FFM/pyspkac", "keywords": null, "license": "GNU Library or Lesser General Public License (LGPL)", "maintainer": null, "maintainer_email": null, "name": "pyspkac", "package_url": "https://pypi.org/project/pyspkac/", "platform": "Any", "project_url": "https://pypi.org/project/pyspkac/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/FFM/pyspkac" }, "release_url": "https://pypi.org/project/pyspkac/0.7/", "requires_dist": null, "requires_python": null, "summary": "Support for netscape / html5 SPKAC client certificate request", "version": "0.7" }, "last_serial": 1271064, "releases": { "0.7": [ { "comment_text": "", "digests": { "md5": "49dc3e1f6b41b8b124ae2094fda03417", "sha256": "bef7a275096b9109fc5b3c8d6ef662b648c02753c1131c4111a61c53c96cdbcb" }, "downloads": -1, "filename": "pyspkac-0.7.tar.gz", "has_sig": true, "md5_digest": "49dc3e1f6b41b8b124ae2094fda03417", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14243, "upload_time": "2014-10-15T10:40:57", "url": "https://files.pythonhosted.org/packages/c7/33/cf9a4142ad2078109c112c907150f3f5f352546545d6fabbdc14d0dd87c1/pyspkac-0.7.tar.gz" } ], "V-0.1": [ { "comment_text": "", "digests": { "md5": "34c08b22a813cbca50a9ebef391e0b27", "sha256": "d1d172fbfca30666834faea1e561d75e22d1f8c1c4c3371f00284b9b15b69c0a" }, "downloads": -1, "filename": "pyspkac-V-0.1.tar.gz", "has_sig": true, "md5_digest": "34c08b22a813cbca50a9ebef391e0b27", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8046, "upload_time": "2013-01-13T13:04:54", "url": "https://files.pythonhosted.org/packages/04/f4/dbe7ceef86ab1802ffab70fea34dcb9e88c28c5711a050c4e2d72cd5c7ea/pyspkac-V-0.1.tar.gz" } ], "V-0.2": [ { "comment_text": "", "digests": { "md5": "365ea84868bdddec34689e59608acd92", "sha256": "4024ae58e7729be76b1f58a45dd863a8994a66c428c9648ac0e068d7029809a4" }, "downloads": -1, "filename": "pyspkac-V-0.2.tar.gz", "has_sig": true, "md5_digest": "365ea84868bdddec34689e59608acd92", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9031, "upload_time": "2013-01-14T13:24:12", "url": "https://files.pythonhosted.org/packages/a9/ad/e5181c339b0da530e32255d6646d964d1b2a8bc16233eae4c0dc0875b047/pyspkac-V-0.2.tar.gz" } ], "V-0.3": [ { "comment_text": "", "digests": { "md5": "4557154af9d013077d4c357817a49059", "sha256": "2ffbea7bea3af808b742fb0a4c67e1d56105f4d44b0cfb3c6bd8693490ff775d" }, "downloads": -1, "filename": "pyspkac-V-0.3.tar.gz", "has_sig": true, "md5_digest": "4557154af9d013077d4c357817a49059", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9180, "upload_time": "2013-01-14T17:15:06", "url": "https://files.pythonhosted.org/packages/b5/a2/7296f3ba0f383678a6e67ae274760e50a3562f074d5d7310b98013126b78/pyspkac-V-0.3.tar.gz" } ], "V-0.4": [ { "comment_text": "", "digests": { "md5": "5d6b92034c9270b4e27ee49abc49e6fd", "sha256": "f527b5fafbd4c6a44fe585f048f1dd88c3d007d9b7850e208e4caaba39780b13" }, "downloads": -1, "filename": "pyspkac-V-0.4.tar.gz", "has_sig": true, "md5_digest": "5d6b92034c9270b4e27ee49abc49e6fd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9365, "upload_time": "2013-01-15T11:11:06", "url": "https://files.pythonhosted.org/packages/58/19/fbdc7b2003d23405da733038c2ba0ea10a5a27abd7d7150a458a9a9813b9/pyspkac-V-0.4.tar.gz" } ], "V-0.5": [ { "comment_text": "", "digests": { "md5": "83118afc1383337d3977e05bec8ec2f3", "sha256": "022e5467cac3e0ba3921f342652062692234d9d950f13fc4271e4cae19558de6" }, "downloads": -1, "filename": "pyspkac-V-0.5.tar.gz", "has_sig": true, "md5_digest": "83118afc1383337d3977e05bec8ec2f3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9405, "upload_time": "2013-01-15T21:30:41", "url": "https://files.pythonhosted.org/packages/0b/fd/8dfd08230a1269420ce35c0028777b8936f8c63df45cbecae7f904cd801a/pyspkac-V-0.5.tar.gz" } ], "V-0.6": [ { "comment_text": "", "digests": { "md5": "b9854e8c6b540680b13e823776f2e971", "sha256": "f5d615823cb0b8a5198cf1009bfe4a4997e2283c11ba51b6052b30a19e803f68" }, "downloads": -1, "filename": "pyspkac-V-0.6.tar.gz", "has_sig": true, "md5_digest": "b9854e8c6b540680b13e823776f2e971", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13742, "upload_time": "2013-01-17T11:28:02", "url": "https://files.pythonhosted.org/packages/db/4d/1315242aa0c38e8ec15507022e22c12ee670506045dab414249cc90840f7/pyspkac-V-0.6.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "49dc3e1f6b41b8b124ae2094fda03417", "sha256": "bef7a275096b9109fc5b3c8d6ef662b648c02753c1131c4111a61c53c96cdbcb" }, "downloads": -1, "filename": "pyspkac-0.7.tar.gz", "has_sig": true, "md5_digest": "49dc3e1f6b41b8b124ae2094fda03417", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14243, "upload_time": "2014-10-15T10:40:57", "url": "https://files.pythonhosted.org/packages/c7/33/cf9a4142ad2078109c112c907150f3f5f352546545d6fabbdc14d0dd87c1/pyspkac-0.7.tar.gz" } ] }