1Pure Python RSA implementation 2============================== 3 4[![PyPI](https://img.shields.io/pypi/v/rsa.svg)](https://pypi.org/project/rsa/) 5[![Build Status](https://travis-ci.org/sybrenstuvel/python-rsa.svg?branch=master)](https://travis-ci.org/sybrenstuvel/python-rsa) 6[![Coverage Status](https://coveralls.io/repos/github/sybrenstuvel/python-rsa/badge.svg?branch=master)](https://coveralls.io/github/sybrenstuvel/python-rsa?branch=master) 7[![Code Climate](https://api.codeclimate.com/v1/badges/a99a88d28ad37a79dbf6/maintainability)](https://codeclimate.com/github/codeclimate/codeclimate/maintainability) 8 9[Python-RSA](https://stuvel.eu/rsa) is a pure-Python RSA implementation. It supports 10encryption and decryption, signing and verifying signatures, and key 11generation according to PKCS#1 version 1.5. It can be used as a Python 12library as well as on the commandline. The code was mostly written by 13Sybren A. Stüvel. 14 15Documentation 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). 16 17Download and install using: 18 19 pip install rsa 20 21or download it from the [Python Package Index](https://pypi.org/project/rsa/). 22 23The source code is maintained at [GitHub](https://github.com/sybrenstuvel/python-rsa/) and is 24licensed under the [Apache License, version 2.0](https://www.apache.org/licenses/LICENSE-2.0) 25 26Security 27-------- 28 29Because 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. 30 31 32Major changes in 4.1 33-------------------- 34 35Version 4.0 was the last version to support Python 2 and 3.4. Version 4.1 is compatible with Python 3.5+ only. 36 37 38Major changes in 4.0 39-------------------- 40 41Version 3.4 was the last version in the 3.x range. Version 4.0 drops the following modules, 42as they are insecure: 43 44- `rsa._version133` 45- `rsa._version200` 46- `rsa.bigfile` 47- `rsa.varblock` 48 49Those modules were marked as deprecated in version 3.4. 50 51Furthermore, in 4.0 the I/O functions is streamlined to always work with bytes on all 52supported versions of Python. 53 54Version 4.0 drops support for Python 2.6 and 3.3. 55