A straightforward API to perform basic RSA-based operations..
Project description
Simple RSA
A straightforward API to perform basic RSA-based operations.
Rationale
Any cryptographic library exposes all possibilities, and it should. But sometimes you just want a simple sign
and validate
API. That is what this wrapper module around the Cryptography module is. Nothing more, nothing less.
Minimal Survival Commands
% pip install simple-rsa
When running from the repo (probably in some virtualenv) install cryptography and optionally tox
is you want to run the tests:
% pip install cryptography tox
Getting Started
The module basically exposes the following functions:
generate_key_pair()
returning a tuple of private and public keysencode(key)
returning an encoded keydecode(pem)
returning a keysign(payload, key)
returning a signaturevalidate(payload, signature, key)
returning True or an Exception
$ python
Python 2.7.15 (default, Dec 27 2018, 11:55:59)
[GCC 4.2.1 Compatible Apple LLVM 10.0.0 (clang-1000.11.45.5)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import simple_rsa as rsa
>>> private, public = rsa.generate_key_pair()
>>> rsa.encode(public)
'-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5C15SFjpTCrdqB+0zFyu\nC9KJkNT1byzQPyATtLze/PNWjfqYL0RjvL4cmvmBWLeTQvnDx9SQfnQT02+4Q8Ov\nOaRTPqghEJctAh7KHwZfQzH29miC1WxXtGFcMFoAj17WPyMaOO3EcHqb4ttnAAPD\nt6B415HtGZo4oH6xY7QMj4eRceTv4++zACNHvqArO3bFFiNTBC8vCOpIg3xsYV4w\n7lQZs2lwGlzXPFJUeZglvsWTPJ54E1KabtkC/wSRFZBYtml8ZvzFfNDTOhcDyBR9\nVTV4K7iIGXG0A9C7mmj3hgALS3qSP5EK6fi51ufg98WokCLFcTSD/EphUlixazPo\nOQIDAQAB\n-----END PUBLIC KEY-----\n'
>>> payload = b"something important"
>>> signature = rsa.sign(payload, private)
>>> assert rsa.validate(payload, signature, public)
>>> another_payload = b"something else"
>>> another_signature = rsa.sign(another_payload, private)
>>> assert rsa.validate(payload, another_signature, public)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "simple_rsa/__init__.py", line 74, in validate
hashes.SHA256()
File "/usr/local/lib/python2.7/site-packages/cryptography/hazmat/backends/openssl/rsa.py", line 477, in verify
self._backend, padding, algorithm, self, signature, data
File "/usr/local/lib/python2.7/site-packages/cryptography/hazmat/backends/openssl/rsa.py", line 272, in _rsa_sig_verify
raise InvalidSignature
cryptography.exceptions.InvalidSignature
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file simple-rsa-1.1.0.tar.gz
.
File metadata
- Download URL: simple-rsa-1.1.0.tar.gz
- Upload date:
- Size: 5.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.8.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
7a9d68532cca651f8f58ee8cff8222a6dc48773c2b9e695c3d3996604cc8f978
|
|
MD5 |
a052ad9d0d04245017a3423b6dd95518
|
|
BLAKE2b-256 |
3ee45f2a1e85ab5a465b16e6d921a294349c3aff4159236dfd0422311d65a4f6
|
File details
Details for the file simple_rsa-1.1.0-py3-none-any.whl
.
File metadata
- Download URL: simple_rsa-1.1.0-py3-none-any.whl
- Upload date:
- Size: 4.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.8.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
265bc76e395ead6460edff9adc0fa512c27030655a562da4ee78039bd30dbff4
|
|
MD5 |
d9861a40884e88f3998f7bb775b32fe4
|
|
BLAKE2b-256 |
69a62d4d734768495db74575720f5cf73c2ea5082abf4ea66dec9a0f1660a3a6
|