Skip to main content

Tools for encryption and decryption, signing and verification. Use symmetric and asymmetric (RSA-based) encryption.

Project description

Encryption Tools for Python 3

PyPI package version number Coverage Status Actions Status License

Tools for encryption and decryption, signing and verification. Use symmetric and asymmetric (RSA-based) encryption.

Installation

pip install encryptiontools

Usage

Asymmetric encryption and decryption

from encryptiontools.encryption import AsymmetricEncrypter, AsymmetricDecrypter
from encryptiontools.utils import generate_key_pair

public_key, private_key = generate_key_pair(512)

data = {'message': 'hello asymmetric encryption'}

encrypter = AsymmetricEncrypter.create(public_key.save_pkcs1())  # or AsymmetricEncrypter(public_key)
decrypter = AsymmetricDecrypter.create(private_key.save_pkcs1())  # or AsymmetricDecrypter(private_key)

encrypted = encrypter.encrypt(data)
decrypted = decrypter.decrypt(encrypted)

assert decrypted['message'] == 'hello asymmetric encryption'

Symmetric encryption and decryption

from encryptiontools.encryption import SymmetricEncrypter

key = b'0123456789abcdef'

data = {'message': 'hello symmetric encryption'}

encrypter = SymmetricEncrypter.create(key)  # or SymmetricEncrypter(key)

encrypted = encrypter.encrypt(data)
decrypted = encrypter.decrypt(encrypted)

assert decrypted['message'] == 'hello symmetric encryption'

Combined encryption and decryption

Asymmetric key pair is used to encrypt/decrypt internal (symmetric) key, internal key is used to decrypt data.

from encryptiontools.encryption import CombinedEncrypter, CombinedDecrypter
from encryptiontools.utils import generate_key_pair

public_key, private_key = generate_key_pair(512)

data = {'message': 'hello combined encryption'}

encrypter = CombinedEncrypter.create(public_key.save_pkcs1())  # or CombinedEncrypter(public_key)
decrypter = CombinedDecrypter.create(private_key.save_pkcs1())  # or CombinedDecrypter(private_key)

encrypted = encrypter.encrypt(data)
decrypted = decrypter.decrypt(encrypted)

assert decrypted['message'] == 'hello combined encryption'

Signing and verification

from encryptiontools.signature import Signer, Verifier
from encryptiontools.utils import generate_key_pair
from encryptiontools.exceptions import VerificationError

public_key, private_key = generate_key_pair(512)

data = {'message': 'hello signing and verification'}

signer = Signer.create(private_key.save_pkcs1())  # or Signer(private_key)
verifier = Verifier.create(public_key.save_pkcs1())  # or Verifier(public_key)

signature = signer.sign(data)

try:
  verifier.verify(data, signature)
  assert True
except VerificationError:
  assert False

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

encryptiontools-1.0.0.tar.gz (6.9 kB view details)

Uploaded Source

Built Distribution

encryptiontools-1.0.0-py3-none-any.whl (6.8 kB view details)

Uploaded Python 3

File details

Details for the file encryptiontools-1.0.0.tar.gz.

File metadata

  • Download URL: encryptiontools-1.0.0.tar.gz
  • Upload date:
  • Size: 6.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for encryptiontools-1.0.0.tar.gz
Algorithm Hash digest
SHA256 9e58547e4dabc59e750f2e7a690d2efec3181cd26d1bbc41a5b24587068154be
MD5 60458e2dc6c5c3f0573408cfc8de3304
BLAKE2b-256 b730fd2f1fa30163f283b177acc330d5f5907713cd2c395a5dbb1510b4418e12

See more details on using hashes here.

File details

Details for the file encryptiontools-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for encryptiontools-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 41f65b88178d582f08f890091b8f229a5fa83500f1acbe0f224315cf88a6bacd
MD5 235addf1bbcf39707c301db189cb7e71
BLAKE2b-256 64c4c758efc105f80b2b8f5150b84b9444d76cedd7f88725f19937c22d95bf0b

See more details on using hashes here.

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