| Pure Python RSA implementation | 
 | ============================== | 
 |  | 
 | [](https://pypi.org/project/rsa/) | 
 | [](https://travis-ci.org/sybrenstuvel/python-rsa) | 
 | [](https://coveralls.io/github/sybrenstuvel/python-rsa?branch=master) | 
 | [](https://codeclimate.com/github/codeclimate/codeclimate/maintainability) | 
 |  | 
 | [Python-RSA](https://stuvel.eu/rsa) is a pure-Python RSA implementation. It supports | 
 | encryption and decryption, signing and verifying signatures, and key | 
 | generation according to PKCS#1 version 1.5. It can be used as a Python | 
 | library as well as on the commandline. The code was mostly written by | 
 | Sybren A.  StΓΌvel. | 
 |  | 
 | Documentation can be found at the [Python-RSA homepage](https://stuvel.eu/rsa). For all changes, check [the changelog](https://github.com/sybrenstuvel/python-rsa/blob/master/CHANGELOG.md). | 
 |  | 
 | Download and install using: | 
 |  | 
 |     pip install rsa | 
 |  | 
 | or download it from the [Python Package Index](https://pypi.org/project/rsa/). | 
 |  | 
 | The source code is maintained at [GitHub](https://github.com/sybrenstuvel/python-rsa/) and is | 
 | licensed under the [Apache License, version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | 
 |  | 
 | Security | 
 | -------- | 
 |  | 
 | Because of how Python internally stores numbers, it is very hard (if not impossible) to make a pure-Python program secure against timing attacks. This library is no exception, so use it with care. See https://securitypitfalls.wordpress.com/2018/08/03/constant-time-compare-in-python/ for more info. | 
 |  | 
 |  | 
 | Major changes in 4.1 | 
 | -------------------- | 
 |  | 
 | Version 4.0 was the last version to support Python 2 and 3.4. Version 4.1 is compatible with Python 3.5+ only. | 
 |  | 
 |  | 
 | Major changes in 4.0 | 
 | -------------------- | 
 |  | 
 | Version 3.4 was the last version in the 3.x range. Version 4.0 drops the following modules, | 
 | as they are insecure: | 
 |  | 
 | - `rsa._version133` | 
 | - `rsa._version200` | 
 | - `rsa.bigfile` | 
 | - `rsa.varblock` | 
 |  | 
 | Those modules were marked as deprecated in version 3.4. | 
 |  | 
 | Furthermore, in 4.0 the I/O functions is streamlined to always work with bytes on all | 
 | supported versions of Python. | 
 |  | 
 | Version 4.0 drops support for Python 2.6 and 3.3. |