Clone this repo:
  1. 2d81e0f Use iterative zip in Python 2 (#85) by Michael Manganiello · 10 weeks ago master
  2. d372717 Implementation of bitwise XOR function for bytes object (#72) by Michael Manganiello · 10 weeks ago
  3. 81f0e95 Create PY2 constant to simplify compatibility decisions (#82) by Michael Manganiello · 10 weeks ago
  4. 0c90633 Remove custom PrivateKey exponents/coefficient (#71) by Michael Manganiello · 3 months ago
  5. dc57888 Fixes a typo in docstrings (#83) by Alexandr · 5 months ago

Pure Python RSA implementation

PyPI [Build Status] ( [Coverage Status] ( [Code Climate] (

Python-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.

Download and install using:

pip install rsa

or download it from the Python Package Index.

The source code is maintained at Github and is licensed under the Apache License, version 2.0

Plans for the future

Version 3.4 is the last version in the 3.x range. Version 4.0 will drop the following modules, as they are insecure:

  • rsa._version133
  • rsa._version200
  • rsa.bigfile
  • rsa.varblock

Those modules are marked as deprecated in version 3.4.

Furthermore, in 4.0 the I/O functions will be streamlined to always work with bytes on all supported versions of Python.

Version 4.0 will drop support for Python 2.6, and possibly for Python 3.3.