rsa
Pure-Python RSA implementation
Install
rsa on PyPI
pip
pip install rsauv
uv add rsapoetry
poetry add rsaPackage facts
| License | Apache-2.0 (permissive) |
| Python support | supports the current Python release (<4,>=3.6) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 1 — pyasn1 |
| Maintenance | abandoned — 484 days since the last release |
| Last repo commit | (repository archived) |
| First released | |
| Popularity | one of the top 1,000 most-downloaded packages on PyPI (30-day window, as of 2026-08-13) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-13) |
Evidence: rsa-4.9.1-py3-none-any.whl
About rsa
from the package's own PyPI description — quoted content, verbatim
Python-RSA has been archived
Hi folks,
I'm Sybren, one of the original authors and the maintainer of this project. Unfortunately I don't have the time and brain space left to properly maintain Python-RSA. As you can see from the lack of activity on the open issues, and the lack of commits, that has been the case for a while now.
As Python-RSA is included as a dependency in quite a few high-profile projects, I don't feel comfortable handing over the project to someone else. It's just too big of a risk.
Thanks for having used this little library for so long, and in so many projects. I truely didn't expect that when I started working on it. Also big thanks to all the people helping out and improving the project.
There are improvements that haven't made it into a new release. As I said, I don't have the time and the brain space to really investigate and oversee the security impact of all those changes. It's not a decision I've made lightly.
So that's it. If you want to keep the project alive, please fork it. Give it the love it deserves, investigate those yet-unreleased improvements, and have a project that's then already better than how I left this...
Read as markdown · JSON record · Source repository · Homepage
AI interpretation — verify before relying
AI-generated interpretation of the package facts above; every digit, version, license, or vulnerability id it cites is grounded in the facts already shown on this page
Pure-Python RSA implementation supporting encryption, decryption, signing, and key generation according to PKCS#1 version 1.5, usable as a library and command-line tool.
Installation is straightforward with low friction—a single pure-Python wheel dependency on pyasn1. However, the project is archived and abandoned; the maintainer explicitly states they lack capacity to oversee security changes, and no releases have shipped in 484 days despite unreleased improvements pending review.
Licensed under Apache-2.0 (permissive), allowing commercial and private use with minimal restrictions, though you assume full responsibility for security maintenance given the project's abandoned status.
Usage
pip install rsa
import rsa
(pubkey, privkey) = rsa.newkeys()
message = b'hello world'
encrypted = rsa.encrypt(message, pubkey)
decrypted = rsa.decrypt(encrypted, privkey)
Python >= 3.6 required; pure-Python implementation is not resistant to timing attacks—use with caution in security-critical contexts.
Verdict: A stable, widely-used pure-Python RSA library suitable for non-critical cryptographic tasks, but now archived with no active maintenance. The maintainer explicitly declined to hand over the project due to security risk, and unreviewed improvements remain unreleased. Consider alternatives if you need active security oversight; use rsa only where the lack of ongoing maintenance is acceptable.
Needs verification
- Whether the timing-attack vulnerability mentioned in the description represents a practical risk for your use case
- Whether any of the unreleased improvements address known cryptographic weaknesses
- Current real-world adoption patterns and whether maintained forks exist
Similar packages
permissive · top 1,000 on PyPI
oscryptopermissive · top 1,000 on PyPI
pypdfpermissive · top 1,000 on PyPI
joblibpermissive · top 1,000 on PyPI
pycryptodomepermissive · top 1,000 on PyPI
pycryptodomexpermissive · top 1,000 on PyPI
PyPDF2permissive · top 1,000 on PyPI
twinepermissive · top 1,000 on PyPI
PyNaClpermissive · top 1,000 on PyPI
asn1cryptopermissive · top 1,000 on PyPI