{ "info": { "author": "Alexandre Sieira.", "author_email": "alexandre.sieira@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Topic :: Security", "Topic :: Software Development :: Libraries" ], "description": "|PyPI version| |Build Status|\n\n.. _certifi--icp-brasil:\n\ncertifi + ICP Brasil\n====================\n\nThis package is meant to act as a drop-in replacement to\n`certifi `__ for use with\n`requests `__ that includes all of\nthe same Mozilla root CA certificates, but also includes all of the ICP\nBrasil root CAs made available\n`here `__.\n\nThe reason why this package exists is that for regulatory and political\nreasons, many Brazilian government websites use the country-specific\n`ICP Brasil `__ certification scheme,\nwhich is not distributed by default by major browsers and operating\nsystem distributions. This causes a lot of problems for developers that\nneed to programatically interact with those services.\n\nThis is an example of the sort of issue you'll encounter by default:\n\n::\n\n >>> import requests\n >>> requests.get('https://portalunico.siscomex.gov.br/')\n Traceback (most recent call last):\n File \"/Users/asieira/.virtualenvs/certifi_icpbr/lib/python3.7/site-packages/urllib3/connectionpool.py\", line 603, in urlopen\n chunked=chunked)\n File \"/Users/asieira/.virtualenvs/certifi_icpbr/lib/python3.7/site-packages/urllib3/connectionpool.py\", line 344, in _make_request\n self._validate_conn(conn)\n File \"/Users/asieira/.virtualenvs/certifi_icpbr/lib/python3.7/site-packages/urllib3/connectionpool.py\", line 843, in _validate_conn\n conn.connect()\n File \"/Users/asieira/.virtualenvs/certifi_icpbr/lib/python3.7/site-packages/urllib3/connection.py\", line 370, in connect\n ssl_context=context)\n File \"/Users/asieira/.virtualenvs/certifi_icpbr/lib/python3.7/site-packages/urllib3/util/ssl_.py\", line 355, in ssl_wrap_socket\n return context.wrap_socket(sock, server_hostname=server_hostname)\n File \"/usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Versions/3.7/lib/python3.7/ssl.py\", line 412, in wrap_socket\n session=session\n File \"/usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Versions/3.7/lib/python3.7/ssl.py\", line 853, in _create\n self.do_handshake()\n File \"/usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Versions/3.7/lib/python3.7/ssl.py\", line 1117, in do_handshake\n self._sslobj.do_handshake()\n ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1056)\n\n During handling of the above exception, another exception occurred:\n\n Traceback (most recent call last):\n File \"/Users/asieira/.virtualenvs/certifi_icpbr/lib/python3.7/site-packages/requests/adapters.py\", line 449, in send\n timeout=timeout\n File \"/Users/asieira/.virtualenvs/certifi_icpbr/lib/python3.7/site-packages/urllib3/connectionpool.py\", line 641, in urlopen\n _stacktrace=sys.exc_info()[2])\n File \"/Users/asieira/.virtualenvs/certifi_icpbr/lib/python3.7/site-packages/urllib3/util/retry.py\", line 399, in increment\n raise MaxRetryError(_pool, url, error or ResponseError(cause))\n urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='portalunico.siscomex.gov.br', port=443): Max retries exceeded with url: / (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1056)')))\n\n During handling of the above exception, another exception occurred:\n\n Traceback (most recent call last):\n File \"\", line 1, in \n File \"/Users/asieira/.virtualenvs/certifi_icpbr/lib/python3.7/site-packages/requests/api.py\", line 75, in get\n return request('get', url, params=params, **kwargs)\n File \"/Users/asieira/.virtualenvs/certifi_icpbr/lib/python3.7/site-packages/requests/api.py\", line 60, in request\n return session.request(method=method, url=url, **kwargs)\n File \"/Users/asieira/.virtualenvs/certifi_icpbr/lib/python3.7/site-packages/requests/sessions.py\", line 533, in request\n resp = self.send(prep, **send_kwargs)\n File \"/Users/asieira/.virtualenvs/certifi_icpbr/lib/python3.7/site-packages/requests/sessions.py\", line 646, in send\n r = adapter.send(request, **kwargs)\n File \"/Users/asieira/.virtualenvs/certifi_icpbr/lib/python3.7/site-packages/requests/adapters.py\", line 514, in send\n raise SSLError(e, request=request)\n requests.exceptions.SSLError: HTTPSConnectionPool(host='portalunico.siscomex.gov.br', port=443): Max retries exceeded with url: / (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1056)')))\n\nUsage\n-----\n\nThe recommended way of using this package is to take advange of the\n``verify`` parameter used throughout\n`requests `__ to allow the default\nroot CAs file to be overridden:\n\n::\n\n >>> import requests\n >>> import certifi_icpbr\n >>> requests.get('https://portalunico.siscomex.gov.br/', verify=certifi_icpbr.where())\n \n\nAlternatively, it is possible to monkey-patch\n`requests `__ so that it uses this\npackage's root CAs file by default. *This is risky and can stop working\nin future versions\nof*\\ `requests `__, so it is\nstrongly recommended you use the first approach if possible. This is the\nsame example using that approach:\n\n::\n\n >>> import certifi_icpbr\n >>> certifi_icpbr.patch_requests()\n >>> import requests\n >>> requests.get('https://portalunico.siscomex.gov.br/')\n \n\n.. |PyPI version| image:: https://badge.fury.io/py/certifi-icpbr.svg\n :target: https://badge.fury.io/py/certifi-icpbr\n.. |Build Status| image:: https://travis-ci.org/asieira/certifi_icpbr.svg?branch=master\n :target: https://travis-ci.org/asieira/certifi_icpbr\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/asieira/certifi_icpbr/", "keywords": "", "license": "Apache Software License", "maintainer": "", "maintainer_email": "", "name": "certifi-icpbr", "package_url": "https://pypi.org/project/certifi-icpbr/", "platform": "any", "project_url": "https://pypi.org/project/certifi-icpbr/", "project_urls": { "Homepage": "https://github.com/asieira/certifi_icpbr/" }, "release_url": "https://pypi.org/project/certifi-icpbr/2022.4.1/", "requires_dist": null, "requires_python": "", "summary": "Drop-in Replacement to certifi that includes ICP Brasil root certificates", "version": "2022.4.1", "yanked": false, "yanked_reason": null }, "last_serial": 13373982, "releases": { "2019.10.12": [ { "comment_text": "", "digests": { "md5": "285c6231f9ff8aa7c153f2d834dc6388", "sha256": "c0f86f95dba5492baad9096d16dda7e115414151483dabebe18cd9476108e931" }, "downloads": -1, "filename": "certifi_icpbr-2019.10.12.tar.gz", "has_sig": false, "md5_digest": "285c6231f9ff8aa7c153f2d834dc6388", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 399629, "upload_time": "2019-10-12T18:51:43", "upload_time_iso_8601": "2019-10-12T18:51:43.802517Z", "url": "https://files.pythonhosted.org/packages/3b/06/9db5589873d1092d2af31441b5e134fc2ad8ec8698649b80e40de2f3ed1c/certifi_icpbr-2019.10.12.tar.gz", "yanked": false, "yanked_reason": null } ], "2019.10.30": [ { "comment_text": "", "digests": { "md5": "7897078f3e6046444d8bcdd692b34599", "sha256": "a6d5a98e09062a7cb6bed8daffc08fad99a7ef7149525adaf5f3794b687dafb3" }, "downloads": -1, "filename": "certifi_icpbr-2019.10.30.tar.gz", "has_sig": false, "md5_digest": "7897078f3e6046444d8bcdd692b34599", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 398200, "upload_time": "2019-10-30T13:18:16", "upload_time_iso_8601": "2019-10-30T13:18:16.250769Z", "url": "https://files.pythonhosted.org/packages/02/ae/f6c4d072e0d5e96146fbf6cb4b29bf2f78e5f9006acc9e739436e8e146e7/certifi_icpbr-2019.10.30.tar.gz", "yanked": false, "yanked_reason": null } ], "2019.12.2": [ { "comment_text": "", "digests": { "md5": "d4dcf9957bfe9697b9848f9985a1e174", "sha256": "b4c8234f51b048cd5ad2d7fa1d073dfbcd77e16f7cc02489c117da37a18b98a9" }, "downloads": -1, "filename": "certifi_icpbr-2019.12.2.tar.gz", "has_sig": false, "md5_digest": "d4dcf9957bfe9697b9848f9985a1e174", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 399765, "upload_time": "2019-12-02T20:22:47", "upload_time_iso_8601": "2019-12-02T20:22:47.137063Z", "url": "https://files.pythonhosted.org/packages/11/2a/268eaefa346d20b709a8303251a08c190d7a5bc4c65239e4bfd5e6de6a29/certifi_icpbr-2019.12.2.tar.gz", "yanked": false, "yanked_reason": null } ], "2019.6.17": [ { "comment_text": "", "digests": { "md5": "053c5c8654088fe35d902fe7e33b3412", "sha256": "76204ed5c276179d1033ee31c8b2a4a65cf37e196c7e249d4148f1fecacd0f3d" }, "downloads": -1, "filename": "certifi_icpbr-2019.6.17.tar.gz", "has_sig": false, "md5_digest": "053c5c8654088fe35d902fe7e33b3412", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 403016, "upload_time": "2019-06-17T15:04:55", "upload_time_iso_8601": "2019-06-17T15:04:55.581379Z", "url": "https://files.pythonhosted.org/packages/73/2a/c6ec5bf7742eafee33ec3b8a4d8cccf924969a1c92365f31b2f4cc01a71e/certifi_icpbr-2019.6.17.tar.gz", "yanked": false, "yanked_reason": null } ], "2019.6.6": [ { "comment_text": "", "digests": { "md5": "a217b6fdcc5690c798148d29aaeef675", "sha256": "6b9e6c59b1349e06dba6ef6ff865cc5fc1d74aedec7f67f59853b5dbe92571e7" }, "downloads": -1, "filename": "certifi_icpbr-2019.6.6.tar.gz", "has_sig": false, "md5_digest": "a217b6fdcc5690c798148d29aaeef675", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 404304, "upload_time": "2019-06-06T13:44:23", "upload_time_iso_8601": "2019-06-06T13:44:23.732358Z", "url": "https://files.pythonhosted.org/packages/aa/c9/c72ac60de8f2e9f9972b4b725a21c0c775c14ffa95b8f22f7aeed2996315/certifi_icpbr-2019.6.6.tar.gz", "yanked": false, "yanked_reason": null } ], "2019.9.14": [ { "comment_text": "", "digests": { "md5": "6f9a07786b522ff9a75965ddc05b3a41", "sha256": "0b2ea232d024dc8c291fe7f57c88d353b49163e9e2821ebc6eeee9876b5771aa" }, "downloads": -1, "filename": "certifi_icpbr-2019.9.14.tar.gz", "has_sig": false, "md5_digest": "6f9a07786b522ff9a75965ddc05b3a41", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 403225, "upload_time": "2019-09-14T19:15:40", "upload_time_iso_8601": "2019-09-14T19:15:40.355806Z", "url": "https://files.pythonhosted.org/packages/49/62/9602973e4169f55152168bd5f9066006b0fc9b87b834e36c8cd30b92d716/certifi_icpbr-2019.9.14.tar.gz", "yanked": false, "yanked_reason": null } ], "2019.9.6": [ { "comment_text": "", "digests": { "md5": "168247f9aa2f12f55278012f1cbcf53b", "sha256": "cccf9694b5e49b93c184a7e0655a7cf1e7b096b6e9117ab6d748f991e5674ef3" }, "downloads": -1, "filename": "certifi_icpbr-2019.9.6.tar.gz", "has_sig": false, "md5_digest": "168247f9aa2f12f55278012f1cbcf53b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 405224, "upload_time": "2019-09-06T14:07:02", "upload_time_iso_8601": "2019-09-06T14:07:02.014552Z", "url": "https://files.pythonhosted.org/packages/29/b4/634fc42ebd3551226c3c77892290640337ce88b4d5996c539b2b2ee0739c/certifi_icpbr-2019.9.6.tar.gz", "yanked": false, "yanked_reason": null } ], "2020.1.23": [ { "comment_text": "", "digests": { "md5": "6890af5630421eca52f957ca43c8306c", "sha256": "1f0e46cbc7adddf186970121004bb796f3791a9eb5c05618a4bb6e4e869bb0e9" }, "downloads": -1, "filename": "certifi_icpbr-2020.1.23.tar.gz", "has_sig": false, "md5_digest": "6890af5630421eca52f957ca43c8306c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 368373, "upload_time": "2020-01-23T12:56:03", "upload_time_iso_8601": "2020-01-23T12:56:03.232254Z", "url": "https://files.pythonhosted.org/packages/ac/1d/7df616bf043172abfea9f2ac82e3d5f518eb4503ced642e6a028e831886f/certifi_icpbr-2020.1.23.tar.gz", "yanked": false, "yanked_reason": null } ], "2020.11.18": [ { "comment_text": "", "digests": { "md5": "042a4254833af73b30a84be2de29a116", "sha256": "a1f6acaf4261525a5c20102ff939d4b148aec8d8e06bfa99230255a026ed80cf" }, "downloads": -1, "filename": "certifi_icpbr-2020.11.18.tar.gz", "has_sig": false, "md5_digest": "042a4254833af73b30a84be2de29a116", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 375896, "upload_time": "2020-11-18T13:56:07", "upload_time_iso_8601": "2020-11-18T13:56:07.135783Z", "url": "https://files.pythonhosted.org/packages/b9/59/999acb38dbf4515611d0a10f3e6e6609facd2c7369a68798748c9fb761e4/certifi_icpbr-2020.11.18.tar.gz", "yanked": false, "yanked_reason": null } ], "2020.11.2": [ { "comment_text": "", "digests": { "md5": "b2ea3ab756372cbddce46f697ffd87db", "sha256": "cd3b277db2568ec436e929dd379f130a1b95f00c27350ba5e1c8d00e5aacfc58" }, "downloads": -1, "filename": "certifi_icpbr-2020.11.2.tar.gz", "has_sig": false, "md5_digest": "b2ea3ab756372cbddce46f697ffd87db", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 381234, "upload_time": "2020-11-02T14:21:57", "upload_time_iso_8601": "2020-11-02T14:21:57.689401Z", "url": "https://files.pythonhosted.org/packages/23/fa/6279f4d6774d4fc8dfd0d23a1af448a86fa53adbd22fcd93feff48e5afb0/certifi_icpbr-2020.11.2.tar.gz", "yanked": false, "yanked_reason": null } ], "2020.4.2": [ { "comment_text": "", "digests": { "md5": "1f8d0699d30d6e5d15c563b890a2cd8a", "sha256": "3f4e2d0a7f6486710ddf0a45ea63639803d4eded3905938549f9edc05f04391a" }, "downloads": -1, "filename": "certifi_icpbr-2020.4.2.tar.gz", "has_sig": false, "md5_digest": "1f8d0699d30d6e5d15c563b890a2cd8a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 368733, "upload_time": "2020-04-02T13:09:56", "upload_time_iso_8601": "2020-04-02T13:09:56.906099Z", "url": "https://files.pythonhosted.org/packages/43/fc/6f852af9b1b3e0c89b402fa58456dbfb97319388d8469bf73a2c15e99690/certifi_icpbr-2020.4.2.tar.gz", "yanked": false, "yanked_reason": null } ], "2020.4.6": [ { "comment_text": "", "digests": { "md5": "cde6295d865233fddec226b825ff3095", "sha256": "4ac83fb2c1fa148acb970c4755bdcc05d3359cced7a6d16b26fb0f0bc40f08c9" }, "downloads": -1, "filename": "certifi_icpbr-2020.4.6.tar.gz", "has_sig": false, "md5_digest": "cde6295d865233fddec226b825ff3095", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 370145, "upload_time": "2020-04-06T23:10:02", "upload_time_iso_8601": "2020-04-06T23:10:02.200060Z", "url": "https://files.pythonhosted.org/packages/1e/8c/7376b47eff3c9a744e7dc161ecfe8a3c0cb9e5a1536c56db2a45dd6c1fd7/certifi_icpbr-2020.4.6.tar.gz", "yanked": false, "yanked_reason": null } ], "2020.6.21": [ { "comment_text": "", "digests": { "md5": "e9cee4094e2f2212fd2b19eb5d05d910", "sha256": "e717c837926889a3e04835e0ab0738895167513f5b79333643606ee52ccf1a10" }, "downloads": -1, "filename": "certifi_icpbr-2020.6.21.tar.gz", "has_sig": false, "md5_digest": "e9cee4094e2f2212fd2b19eb5d05d910", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 369005, "upload_time": "2020-06-21T23:01:51", "upload_time_iso_8601": "2020-06-21T23:01:51.366782Z", "url": "https://files.pythonhosted.org/packages/78/f3/bb8218e394f755e794163ffd91b045d774cbccbf2f15b4c9b1952869eda6/certifi_icpbr-2020.6.21.tar.gz", "yanked": false, "yanked_reason": null } ], "2020.9.12": [ { "comment_text": "", "digests": { "md5": "c016faaaac43a4fb0bed86a8cffa2b3e", "sha256": "f9b1624cb32d4746ff42e44fb1e36ef409fe84465163617f634ffdd7c9de183a" }, "downloads": -1, "filename": "certifi_icpbr-2020.9.12.tar.gz", "has_sig": false, "md5_digest": "c016faaaac43a4fb0bed86a8cffa2b3e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 373340, "upload_time": "2020-09-12T19:30:48", "upload_time_iso_8601": "2020-09-12T19:30:48.007647Z", "url": "https://files.pythonhosted.org/packages/e6/15/4ff8271b1e42cf83f2e84bd8efa122650fd93def0a08127c00302428483b/certifi_icpbr-2020.9.12.tar.gz", "yanked": false, "yanked_reason": null } ], "2021.10.29": [ { "comment_text": "", "digests": { "md5": "dbc6751d40c0040c1db0d847207ac363", "sha256": "dcc68126dec116bdb09c1e1473c8f48afdf5a420532e9798c238fa67b81862e7" }, "downloads": -1, "filename": "certifi_icpbr-2021.10.29.tar.gz", "has_sig": false, "md5_digest": "dbc6751d40c0040c1db0d847207ac363", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 373498, "upload_time": "2021-10-29T13:58:59", "upload_time_iso_8601": "2021-10-29T13:58:59.409052Z", "url": "https://files.pythonhosted.org/packages/05/b8/6c6943c9d024720b073b47f846ffba3fd31a05a20c57606ee3d2ee376823/certifi_icpbr-2021.10.29.tar.gz", "yanked": false, "yanked_reason": null } ], "2022.4.1": [ { "comment_text": "", "digests": { "md5": "53d9970ec993de032f30c65ab375b791", "sha256": "0d32cda2abc04351b274d81c7a79226f80d02813825271ef819ba048f0e9f122" }, "downloads": -1, "filename": "certifi_icpbr-2022.4.1.tar.gz", "has_sig": false, "md5_digest": "53d9970ec993de032f30c65ab375b791", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 367753, "upload_time": "2022-04-01T13:15:31", "upload_time_iso_8601": "2022-04-01T13:15:31.037975Z", "url": "https://files.pythonhosted.org/packages/4d/4d/5f7ec260e87d77b5276a78c28c8b6cdf2d5ac6f9b1179b48f9dc31de363e/certifi_icpbr-2022.4.1.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "53d9970ec993de032f30c65ab375b791", "sha256": "0d32cda2abc04351b274d81c7a79226f80d02813825271ef819ba048f0e9f122" }, "downloads": -1, "filename": "certifi_icpbr-2022.4.1.tar.gz", "has_sig": false, "md5_digest": "53d9970ec993de032f30c65ab375b791", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 367753, "upload_time": "2022-04-01T13:15:31", "upload_time_iso_8601": "2022-04-01T13:15:31.037975Z", "url": "https://files.pythonhosted.org/packages/4d/4d/5f7ec260e87d77b5276a78c28c8b6cdf2d5ac6f9b1179b48f9dc31de363e/certifi_icpbr-2022.4.1.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }