Skip to main content

Encrypt symmetric keys with RSA.

Project description

Easy RSA

version license pyversions
donate powered made

Encrypt symmetric keys with RSA.

Hierarchy

easyrsa
'---- EasyRSA()
    |---- gen_key_pair()
    |---- encrypt()
    |---- decrypt()
    |---- sign()
    |---- verify()
    '---- max_msg_size()

Example

python

from easyrsa import *

# generate a key pair
kp = EasyRSA(bits=1024).gen_key_pair()
print(kp)
# {"public_key": b"...", "private_key": b"..."}

# maximum message size in bytes encrypted with a n bits RSA key
print(EasyRSA(public_key=kp["public_key"]).max_msg_size())
# 86
print(EasyRSA(private_key=kp["private_key"]).max_msg_size())
# 86

# encryption and decryption
# note that each EasyRSA object must bind only one operation
from base64 import b64encode
symmetric_key = "abc" or b"abc" or b64encode(b"abc")
encrypted_key = EasyRSA(public_key=kp["public_key"]).encrypt(symmetric_key)
print(encrypted_key)
# ...
print(symmetric_key == EasyRSA(private_key=kp["private_key"]).decrypt(encrypted_key))
# True

# sign and verify
msg = randb(1024)
s = EasyRSA(private_key=kp["private_key"]).sign(msg)
# and then somehow you receive the msg
print(EasyRSA(public_key=kp["public_key"]).verify(msg, s))
# True

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

easyrsa-0.5.3.tar.gz (3.1 kB view hashes)

Uploaded Source

Built Distribution

easyrsa-0.5.3-py3-none-any.whl (15.3 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page