{"id":13534024,"url":"https://github.com/sybrenstuvel/python-rsa","last_synced_at":"2025-04-11T01:40:48.152Z","repository":{"id":3567405,"uuid":"50107469","full_name":"sybrenstuvel/python-rsa","owner":"sybrenstuvel","description":"Python-RSA is a pure-Python RSA implementation.","archived":false,"fork":false,"pushed_at":"2024-08-06T07:07:33.000Z","size":1119,"stargazers_count":490,"open_issues_count":26,"forks_count":115,"subscribers_count":10,"default_branch":"main","last_synced_at":"2025-04-03T13:14:32.888Z","etag":null,"topics":["python","python-rsa","rsa","rsa-cryptography"],"latest_commit_sha":null,"homepage":"https://stuvel.eu/rsa","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sybrenstuvel.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-01-21T12:53:34.000Z","updated_at":"2025-03-19T06:26:38.000Z","dependencies_parsed_at":"2023-01-13T12:37:17.761Z","dependency_job_id":"0c08b816-88ff-44a0-9542-cbd225d33f50","html_url":"https://github.com/sybrenstuvel/python-rsa","commit_stats":{"total_commits":592,"total_committers":44,"mean_commits":"13.454545454545455","dds":0.3158783783783784,"last_synced_commit":"63772a68c3cd74b8714302f33d1ac13ec1a1fa52"},"previous_names":[],"tags_count":35,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sybrenstuvel%2Fpython-rsa","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sybrenstuvel%2Fpython-rsa/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sybrenstuvel%2Fpython-rsa/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sybrenstuvel%2Fpython-rsa/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sybrenstuvel","download_url":"https://codeload.github.com/sybrenstuvel/python-rsa/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248327265,"owners_count":21085224,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["python","python-rsa","rsa","rsa-cryptography"],"created_at":"2024-08-01T07:01:25.511Z","updated_at":"2025-04-11T01:40:48.130Z","avatar_url":"https://github.com/sybrenstuvel.png","language":"Python","readme":"# Pure Python RSA implementation\n\n[![PyPI](https://img.shields.io/pypi/v/rsa.svg)](https://pypi.org/project/rsa/)\n[![Build Status](https://travis-ci.org/sybrenstuvel/python-rsa.svg?branch=master)](https://travis-ci.org/sybrenstuvel/python-rsa)\n[![Coverage Status](https://coveralls.io/repos/github/sybrenstuvel/python-rsa/badge.svg?branch=master)](https://coveralls.io/github/sybrenstuvel/python-rsa?branch=master)\n[![Code Climate](https://api.codeclimate.com/v1/badges/a99a88d28ad37a79dbf6/maintainability)](https://codeclimate.com/github/codeclimate/codeclimate/maintainability)\n\n[Python-RSA](https://stuvel.eu/rsa) is a pure-Python RSA implementation. It supports\nencryption and decryption, signing and verifying signatures, and key\ngeneration according to PKCS#1 version 1.5. It can be used as a Python\nlibrary as well as on the commandline. The code was mostly written by\nSybren A.  Stüvel.\n\nDocumentation 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).\n\nDownload and install using:\n\n    pip install rsa\n\nor download it from the [Python Package Index](https://pypi.org/project/rsa/).\n\nThe source code is maintained at [GitHub](https://github.com/sybrenstuvel/python-rsa/) and is\nlicensed under the [Apache License, version 2.0](https://www.apache.org/licenses/LICENSE-2.0)\n\n## Security\n\nBecause of how Python internally stores numbers, it is not possible to make a pure-Python program secure against timing attacks. This library is no exception, so use it with care. See https://github.com/sybrenstuvel/python-rsa/issues/230 and https://securitypitfalls.wordpress.com/2018/08/03/constant-time-compare-in-python/ for more info.\n\nFor instructions on how to best report security issues, see our [Security Policy](https://github.com/sybrenstuvel/python-rsa/blob/main/SECURITY.md).\n\n## Setup of Development Environment\n\n```\npython3 -m venv .venv\n. ./.venv/bin/activate\npip install poetry\npoetry install\n```\n\n## Publishing a New Release\n\nSince this project is considered critical on the Python Package Index,\ntwo-factor authentication is required. For uploading packages to PyPi, an API\nkey is required; username+password will not work.\n\nFirst, generate an API token at https://pypi.org/manage/account/token/. Then,\nuse this token when publishing instead of your username and password.\n\nAs username, use `__token__`.\nAs password, use the token itself, including the `pypi-` prefix.\n\nSee https://pypi.org/help/#apitoken for help using API tokens to publish. This\nis what I have in `~/.pypirc`:\n\n```\n[distutils]\nindex-servers =\n    rsa\n\n# Use `twine upload -r rsa` to upload with this token.\n[rsa]\n  repository = https://upload.pypi.org/legacy/\n  username = __token__\n  password = pypi-token\n```\n\n```\n. ./.venv/bin/activate\n\npoetry build\ntwine check dist/rsa-4.10-dev0.tar.gz dist/rsa-4.10-dev0-*.whl\ntwine upload -r rsa dist/rsa-4.10-dev0.tar.gz dist/rsa-4.10-dev0-*.whl\n```\n","funding_links":[],"categories":["Python","Cryptography"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsybrenstuvel%2Fpython-rsa","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsybrenstuvel%2Fpython-rsa","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsybrenstuvel%2Fpython-rsa/lists"}