{ "info": { "author": "Hynek Schlawack", "author_email": "hs@ox.cx", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: MacOS :: MacOS X", "Operating System :: Microsoft :: Windows", "Operating System :: POSIX", "Operating System :: POSIX :: BSD", "Operating System :: POSIX :: Linux", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Security :: Cryptography", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "=============================\nService Identity Verification\n=============================\n\n.. image:: https://readthedocs.org/projects/service-identity/badge/?version=stable\n :target: https://service-identity.readthedocs.io/en/stable/?badge=stable\n :alt: Documentation Status\n\n.. image:: https://travis-ci.org/pyca/service_identity.svg?branch=master\n :target: https://travis-ci.org/pyca/service_identity\n :alt: CI status\n\n.. image:: https://codecov.io/github/pyca/service_identity/branch/master/graph/badge.svg\n :target: https://codecov.io/github/pyca/service_identity\n :alt: Test Coverage\n\n.. image:: https://img.shields.io/badge/code%20style-black-000000.svg\n :target: https://github.com/ambv/black\n :alt: Code style: black\n\n.. image:: https://www.irccloud.com/invite-svg?channel=%23cryptography-dev&hostname=irc.freenode.net&port=6697&ssl=1\n :target: https://www.irccloud.com/invite?channel=%23cryptography-dev&hostname=irc.freenode.net&port=6697&ssl=1\n\n.. begin\n\nUse this package if:\n\n- you use pyOpenSSL_ and don\u2019t want to be MITM_\\ ed or\n- if you want to verify that a `PyCA cryptography`_ certificate is valid for a certain hostname or IP address.\n\n``service_identity`` aspires to give you all the tools you need for verifying whether a certificate is valid for the intended purposes.\n\nIn the simplest case, this means *host name verification*.\nHowever, ``service_identity`` implements `RFC 6125`_ fully and plans to add other relevant RFCs too.\n\n``service_identity``\\ \u2019s documentation lives at `Read the Docs `_, the code on `GitHub `_.\n\n\n.. _Twisted: https://twistedmatrix.com/\n.. _pyOpenSSL: https://pypi.org/project/pyOpenSSL/\n.. _MITM: https://en.wikipedia.org/wiki/Man-in-the-middle_attack\n.. _RFC 6125: https://www.rfc-editor.org/info/rfc6125\n.. _PyCA cryptography: https://cryptography.io/\n\n\nRelease Information\n===================\n\n18.1.0 (2018-12-05)\n-------------------\n\nChanges:\n^^^^^^^^\n\n- pyOpenSSL is optional now if you use ``service_identity.cryptography.*`` only.\n- Added support for ``iPAddress`` ``subjectAltName``\\ s.\n You can now verify whether a connection or a certificate is valid for an IP address using ``service_identity.pyopenssl.verify_ip_address()`` and ``service_identity.cryptography.verify_certificate_ip_address()``.\n `#12 `_\n\n`Full changelog `_.\n\nAuthors\n=======\n\n``service_identity`` is written and maintained by `Hynek Schlawack `_.\n\nThe development is kindly supported by `Variomedia AG `_.\n\nOther contributors can be found in `GitHub's overview `_.\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://service-identity.readthedocs.io/", "keywords": "cryptography,openssl,pyopenssl", "license": "MIT", "maintainer": "Hynek Schlawack", "maintainer_email": "hs@ox.cx", "name": "service_identity", "package_url": "https://pypi.org/project/service_identity/", "platform": "", "project_url": "https://pypi.org/project/service_identity/", "project_urls": { "Homepage": "https://service-identity.readthedocs.io/" }, "release_url": "https://pypi.org/project/service_identity/18.1.0/", "requires_dist": [ "attrs (>=16.0.0)", "pyasn1-modules", "pyasn1", "cryptography", "ipaddress ; python_version < \"3.3\"", "coverage (>=4.2.0) ; extra == 'dev'", "pytest ; extra == 'dev'", "sphinx ; extra == 'dev'", "idna ; extra == 'dev'", "pyOpenSSL ; extra == 'dev'", "sphinx ; extra == 'docs'", "idna ; extra == 'idna'", "coverage (>=4.2.0) ; extra == 'tests'", "pytest ; extra == 'tests'" ], "requires_python": "", "summary": "Service identity verification for pyOpenSSL & cryptography.", "version": "18.1.0" }, "last_serial": 4563652, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "1219bb7460aae78f07d49035189a33eb", "sha256": "2f98469a82851990aa8ee66cb596545fe7d6d4e5a80f63d4447a4e16ce8249c6" }, "downloads": -1, "filename": "service_identity-0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1219bb7460aae78f07d49035189a33eb", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 17933, "upload_time": "2014-03-06T22:08:50", "url": "https://files.pythonhosted.org/packages/a7/3a/389d3ac0b4a4d66ba1c4e1cb11612012dae176aa55c35db90f75a28e5ea7/service_identity-0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5b08ef8ed1e1591956003fbacd570084", "sha256": "1d392d1a70329c260f01b270fbe250094b28082729f65a3252c8c5cecadd1642" }, "downloads": -1, "filename": "service_identity-0.1.tar.gz", "has_sig": true, "md5_digest": "5b08ef8ed1e1591956003fbacd570084", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16536, "upload_time": "2014-03-06T22:07:12", "url": "https://files.pythonhosted.org/packages/1c/b0/62246196d4a8599014cfd2403d6de9fcdec3628df25ba85adda4b7665e87/service_identity-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "859428617de6ac522b781a3d0a1d6689", "sha256": "f3a288ddb23448e8c6498af3d7a1f1348569b3a18a4c3e645c72e180692523d1" }, "downloads": -1, "filename": "service_identity-0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "859428617de6ac522b781a3d0a1d6689", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 12889, "upload_time": "2014-04-06T01:22:30", "url": "https://files.pythonhosted.org/packages/4c/0a/0e7f5420f90d99846163a1ffa9a6b1be29fffbaf7e6d3827cda4293f53ae/service_identity-0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5fd2b5103291e71b3afe23aaeefb89f2", "sha256": "adb0f07b541fb40b9c023f40e1e7520ea382d8d692c22d37e08236dc2552e1f4" }, "downloads": -1, "filename": "service_identity-0.2.tar.gz", "has_sig": false, "md5_digest": "5fd2b5103291e71b3afe23aaeefb89f2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21365, "upload_time": "2014-04-07T19:30:02", "url": "https://files.pythonhosted.org/packages/ab/22/d6c2eed070cc6b95681925560a611c80438e44e7bb4cd2b1201597255ddf/service_identity-0.2.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "47504fd42c95092963798fbd4c910dd4", "sha256": "470eae43c69ec8cd1df90b0910af166f61670cebd0708c1692f19a1c14871484" }, "downloads": -1, "filename": "service_identity-1.0.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "47504fd42c95092963798fbd4c910dd4", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 10123, "upload_time": "2014-06-15T18:44:08", "url": "https://files.pythonhosted.org/packages/29/8f/9499084ea8b5db68f9211d7d772e6ba2f0576c7c422f6b67dc3881fee726/service_identity-1.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "437c380ce0fe85a0fbc4780a86b3ee58", "sha256": "679e39fc35bc189b7424d9cd5545f755b2e127c478e1927c9029473f0fbe3bce" }, "downloads": -1, "filename": "service_identity-1.0.0.tar.gz", "has_sig": true, "md5_digest": "437c380ce0fe85a0fbc4780a86b3ee58", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17658, "upload_time": "2014-06-15T18:43:54", "url": "https://files.pythonhosted.org/packages/a7/6f/281aa08329f6261bbc4b593ffe1adbd20f6487fe32df2c132eab02f00204/service_identity-1.0.0.tar.gz" } ], "14.0.0": [ { "comment_text": "", "digests": { "md5": "8650917484fb4ef6132b177cb1165307", "sha256": "c4e09794c54229a4d2bf6a784130880259f0b0870d2f40e9712dc4114f06795c" }, "downloads": -1, "filename": "service_identity-14.0.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "8650917484fb4ef6132b177cb1165307", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 10241, "upload_time": "2014-08-22T14:10:48", "url": "https://files.pythonhosted.org/packages/98/1a/2bd789e1623a18a2e54ff57934d169e5f1599d2a719954ad67bbb8cb0f72/service_identity-14.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cea0b0156d73b025ecef660fb51f0d9a", "sha256": "3105a319a7c558490666694f599be0c377ad54824eefb404cde4ce49e74a4f5a" }, "downloads": -1, "filename": "service_identity-14.0.0.tar.gz", "has_sig": true, "md5_digest": "cea0b0156d73b025ecef660fb51f0d9a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26033, "upload_time": "2014-08-22T14:10:55", "url": "https://files.pythonhosted.org/packages/68/15/3e16d1cbdf8b007250a7cdda54d3e9fab3b7b35cc72558a20ce20d072d14/service_identity-14.0.0.tar.gz" } ], "16.0.0": [ { "comment_text": "", "digests": { "md5": "70eef3afd5e1294cb14a138d9ca5ec56", "sha256": "5c63e1532135f7171cb33e8b2f31c758c3ce0654e6eb198573e23d01128678d4" }, "downloads": -1, "filename": "service_identity-16.0.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "70eef3afd5e1294cb14a138d9ca5ec56", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11314, "upload_time": "2016-02-18T11:37:23", "url": "https://files.pythonhosted.org/packages/80/f5/8b1604e4d85ce60333a2fd4bc7b7743b21949b434b7c1c2c77eee9e7cd6f/service_identity-16.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d52392597b9c44a740abf322bfdb21e6", "sha256": "0630e222f59f91f3db498be46b1d879ff220955d7bbad719a5cb9ad14e3c3036" }, "downloads": -1, "filename": "service_identity-16.0.0.tar.gz", "has_sig": true, "md5_digest": "d52392597b9c44a740abf322bfdb21e6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30270, "upload_time": "2016-02-18T11:37:30", "url": "https://files.pythonhosted.org/packages/f3/2a/7c04e7ab74f9f2be026745a9ffa81fd9d56139fa6f5f4b4c8a8c07b2bfba/service_identity-16.0.0.tar.gz" } ], "17.0.0": [ { "comment_text": "", "digests": { "md5": "f6f1f379685f2a86f5c1b686acccc45e", "sha256": "0e76f3c042cc0f5c7e6da002cf646f59dc4023962d1d1166343ce53bdad39e17" }, "downloads": -1, "filename": "service_identity-17.0.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "f6f1f379685f2a86f5c1b686acccc45e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13043, "upload_time": "2017-05-23T22:10:51", "url": "https://files.pythonhosted.org/packages/29/fa/995e364220979e577e7ca232440961db0bf996b6edaf586a7d1bd14d81f1/service_identity-17.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f509cb41ca2f8420bd8496291136d6cc", "sha256": "4001fbb3da19e0df22c47a06d29681a398473af4aa9d745eca525b3b2c2302ab" }, "downloads": -1, "filename": "service_identity-17.0.0.tar.gz", "has_sig": true, "md5_digest": "f509cb41ca2f8420bd8496291136d6cc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23502, "upload_time": "2017-05-23T22:10:53", "url": "https://files.pythonhosted.org/packages/de/2a/cab6e30be82c8fcd2339ef618036720eda954cf05daef514e386661c9221/service_identity-17.0.0.tar.gz" } ], "18.1.0": [ { "comment_text": "", "digests": { "md5": "e6c5d5366021c5d915ea23806f30fbe7", "sha256": "001c0707759cb3de7e49c078a7c0c9cd12594161d3bf06b9c254fdcb1a60dc36" }, "downloads": -1, "filename": "service_identity-18.1.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "e6c5d5366021c5d915ea23806f30fbe7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11824, "upload_time": "2018-12-05T12:50:40", "url": "https://files.pythonhosted.org/packages/e9/7c/2195b890023e098f9618d43ebc337d83c8b38d414326685339eb024db2f6/service_identity-18.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c6b8bac93e7d899a1da313a19cc6570a", "sha256": "0858a54aabc5b459d1aafa8a518ed2081a285087f349fe3e55197989232e2e2d" }, "downloads": -1, "filename": "service_identity-18.1.0.tar.gz", "has_sig": true, "md5_digest": "c6b8bac93e7d899a1da313a19cc6570a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21653, "upload_time": "2018-12-05T12:50:41", "url": "https://files.pythonhosted.org/packages/9a/3d/9eb0563e066ea0540cf580695593ab079376e920016d4d1b3ff2fd8abf4b/service_identity-18.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e6c5d5366021c5d915ea23806f30fbe7", "sha256": "001c0707759cb3de7e49c078a7c0c9cd12594161d3bf06b9c254fdcb1a60dc36" }, "downloads": -1, "filename": "service_identity-18.1.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "e6c5d5366021c5d915ea23806f30fbe7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11824, "upload_time": "2018-12-05T12:50:40", "url": "https://files.pythonhosted.org/packages/e9/7c/2195b890023e098f9618d43ebc337d83c8b38d414326685339eb024db2f6/service_identity-18.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c6b8bac93e7d899a1da313a19cc6570a", "sha256": "0858a54aabc5b459d1aafa8a518ed2081a285087f349fe3e55197989232e2e2d" }, "downloads": -1, "filename": "service_identity-18.1.0.tar.gz", "has_sig": true, "md5_digest": "c6b8bac93e7d899a1da313a19cc6570a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21653, "upload_time": "2018-12-05T12:50:41", "url": "https://files.pythonhosted.org/packages/9a/3d/9eb0563e066ea0540cf580695593ab079376e920016d4d1b3ff2fd8abf4b/service_identity-18.1.0.tar.gz" } ] }