METADATA 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. Metadata-Version: 2.1
  2. Name: rsa
  3. Version: 4.9
  4. Summary: Pure-Python RSA implementation
  5. Home-page: https://stuvel.eu/rsa
  6. License: Apache-2.0
  7. Author: Sybren A. Stüvel
  8. Author-email: sybren@stuvel.eu
  9. Requires-Python: >=3.6,<4
  10. Classifier: Development Status :: 5 - Production/Stable
  11. Classifier: Intended Audience :: Developers
  12. Classifier: Intended Audience :: Education
  13. Classifier: Intended Audience :: Information Technology
  14. Classifier: License :: OSI Approved :: Apache Software License
  15. Classifier: Operating System :: OS Independent
  16. Classifier: Programming Language :: Python
  17. Classifier: Programming Language :: Python :: 3
  18. Classifier: Programming Language :: Python :: 3.10
  19. Classifier: Programming Language :: Python :: 3.6
  20. Classifier: Programming Language :: Python :: 3.7
  21. Classifier: Programming Language :: Python :: 3.8
  22. Classifier: Programming Language :: Python :: 3.9
  23. Classifier: Programming Language :: Python :: Implementation :: CPython
  24. Classifier: Programming Language :: Python :: Implementation :: PyPy
  25. Classifier: Topic :: Security :: Cryptography
  26. Requires-Dist: pyasn1 (>=0.1.3)
  27. Project-URL: Repository, https://github.com/sybrenstuvel/python-rsa
  28. Description-Content-Type: text/markdown
  29. # Pure Python RSA implementation
  30. [![PyPI](https://img.shields.io/pypi/v/rsa.svg)](https://pypi.org/project/rsa/)
  31. [![Build Status](https://travis-ci.org/sybrenstuvel/python-rsa.svg?branch=master)](https://travis-ci.org/sybrenstuvel/python-rsa)
  32. [![Coverage Status](https://coveralls.io/repos/github/sybrenstuvel/python-rsa/badge.svg?branch=master)](https://coveralls.io/github/sybrenstuvel/python-rsa?branch=master)
  33. [![Code Climate](https://api.codeclimate.com/v1/badges/a99a88d28ad37a79dbf6/maintainability)](https://codeclimate.com/github/codeclimate/codeclimate/maintainability)
  34. [Python-RSA](https://stuvel.eu/rsa) is a pure-Python RSA implementation. It supports
  35. encryption and decryption, signing and verifying signatures, and key
  36. generation according to PKCS#1 version 1.5. It can be used as a Python
  37. library as well as on the commandline. The code was mostly written by
  38. Sybren A. Stüvel.
  39. Documentation 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).
  40. Download and install using:
  41. pip install rsa
  42. or download it from the [Python Package Index](https://pypi.org/project/rsa/).
  43. The source code is maintained at [GitHub](https://github.com/sybrenstuvel/python-rsa/) and is
  44. licensed under the [Apache License, version 2.0](https://www.apache.org/licenses/LICENSE-2.0)
  45. ## Security
  46. Because 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.
  47. ## Setup of Development Environment
  48. ```
  49. python3 -m venv .venv
  50. . ./.venv/bin/activate
  51. pip install poetry
  52. poetry install
  53. ```
  54. ## Publishing a New Release
  55. Since this project is considered critical on the Python Package Index,
  56. two-factor authentication is required. For uploading packages to PyPi, an API
  57. key is required; username+password will not work.
  58. First, generate an API token at https://pypi.org/manage/account/token/. Then,
  59. use this token when publishing instead of your username and password.
  60. As username, use `__token__`.
  61. As password, use the token itself, including the `pypi-` prefix.
  62. See https://pypi.org/help/#apitoken for help using API tokens to publish. This
  63. is what I have in `~/.pypirc`:
  64. ```
  65. [distutils]
  66. index-servers =
  67. rsa
  68. # Use `twine upload -r rsa` to upload with this token.
  69. [rsa]
  70. repository = https://upload.pypi.org/legacy/
  71. username = __token__
  72. password = pypi-token
  73. ```
  74. ```
  75. . ./.venv/bin/activate
  76. pip install twine
  77. poetry build
  78. twine check dist/rsa-4.9.tar.gz dist/rsa-4.9-*.whl
  79. twine upload -r rsa dist/rsa-4.9.tar.gz dist/rsa-4.9-*.whl
  80. ```
  81. The `pip install twine` is necessary as Python-RSA requires Python >= 3.6, and
  82. Twine requires at least version 3.7. This means Poetry refuses to add it as
  83. dependency.