Clone this repo:
  1. d008525 PKCS#1 2.0: Implementation of MGF1 (#89) by Michael Manganiello · 2 weeks ago master
  2. 425eb24 Support signing a pre-calculated hash (#87) by Justin Simon · 7 weeks ago
  3. 000e84a Ceiling division implementation (#88) by Michael Manganiello · 2 months ago
  4. 7ebae9f Updated changelog by Sybren A. Stüvel · 3 months ago
  5. 395b8d6 Feature request #78: Expose function to find the hash method of a signature by Sybren A. Stüvel · 3 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.