Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/justscott/rapidrsa

Simpler to use implementation of the pycryptodome RSA algorithm
https://github.com/justscott/rapidrsa

asymmetric-cryptography cryptography encryption-decryption python3 rsa rsa-cryptography

Last synced: 9 days ago
JSON representation

Simpler to use implementation of the pycryptodome RSA algorithm

Awesome Lists containing this project

README

        

#

RapidRSA


Simpler to use implementation of the pycryptodome RSA algorithm




# Example Use
```python
from rapidrsa import rsa

rsa = rsa()

e = rsa.encrypt("Example Text")
d = rsa.decrypt(e)
```

Easily Create and Verify Signatures

```python
from rapidrsa import rsa

rsa = rsa()

e = rsa.encrypt("Example Text")

signature, digest = rsa.create_signature(message)

if rsa.verify_signature(signature, digest):
d = rsa.decrypt(e)
```

Required Dependences From PyPi

pycryptodome >= 3.15.0

- pycryptodome on GitHub

- pycryptodome on PyPi


# Documentation
```python
'''
Classes:
rsa(key_size=2048, public_key=None, private_key=None)
Can be fully functional and secure without passing any arguments
Methods:
keygen(self, key_size: int) -> bytes and bytes
Generates Keys for Encryption/Decryption. The 'key_size' will determine the security
and speed of your data (bigger is more secure, but slower)
encrypt(self, data: str or bytes, public_key=None) -> bytes
Only requires a public key if you don't want to use the class generated key
decrypt(self, encrypted_text: bytes, private_key=None) -> str or bytes
Only requires a private key if you don't want to use the class generated key
create_signature(self, data: str, private_key=None) -> bytes and object
Creates a signature for later verifcation that the data hasn't been tampered
with during transport
verify_signature(self, signature: bytes, digest: object, public_key=None) -> bool
Verifies the signature of the data, ensuring the data hasn't been tampered with
generate_password(self, length=64) -> str
Generates a random password to share with the client/server for symmetric cryptography
'''
```