Skip to main content

A package for secure file encryption and decryption based on modern ciphers using heavy-compute-load chaining of hashing and KDF to generate strong encryption password based on users provided password to ensure secure encryption of files

Project description

Version 0.8.2: Restructured Metadata

With the release of version 0.8.2, openssl_encrypt now uses a new metadata structure. format_version 5 represents that new structure. Additionally fixed some issues with Python < 3.12 and added a more resiliant way to include whirlpool during build for for Python >= 3.9 The change is implemented to avoid any breaking changes to prior versions. Therefore the code is able to process all supported format versions transparently. Unittests of existing (older metadata) encrypted file are passing. Tests for new structure yet to come

Secure File Encryption Tool

A powerful tool for securely encrypting, decrypting, and shredding files with military-grade cryptography and multi-layer password hashing.

History

The project is historically named openssl-encrypt because it once was a python script wrapper around openssl. But that did not work anymore with recent python versions. Therefore I decided to do a complete rewrite in pure python also using modern cipher and hashes. So the projectname is a "homage" to the root of all :-)

Whirlpool support: The whirlpool hash algorithm is now supported on all Python versions, including Python 3.11, 3.12, and 3.13. The package will automatically detect your Python version and install the appropriate Whirlpool implementation. If you encounter any issues with Whirlpool, please see the Whirlpool Installation Guide for manual setup instructions.

Issues

you can create issues by sending mail to the linked address

Features

  • Strong Encryption: Uses Fernet symmetric encryption (AES-128-CBC) as default with secure key derivation. Also supports AES-GCM, AES-SIV, CAMLELIA, POLY1305-CHACHA20, AES-GCM-SIV, AES-OCB3 ans XCHACHA20_POLY1305 as ecnryption algorithm
  • Multi-hash Password Protection: Optional layered hashing with SHA-256, SHA-512, SHA3-256, SHA3-512, Whirlpool, BLAKE2b and SHAKE-256 they all can be chained with different rounds to create key-stretching
  • Multi-KDF Password Protection: Optional layered KFD with PBKDF2, Scrypt, Argon2 and Ballon they all can be chained with different rounds to create key-stretching and very strong brute-force prevention
  • Postquantum Resistance: Using a hybrid approach to implement postquantum resistance. Still using symetrical encryption but with a key derived with Kyber KEM for postquantum resistance
  • Keystore for PQC keys: a local keystore can be used to maintain and manage the PQC keys used for encrypting your files
  • Password Management: Password confirmation to prevent typos, random password generation, and standalone password generator
  • File Integrity Verification: Built-in hash verification to detect corrupted or tampered files
  • Secure File Shredding: Military-grade secure deletion with multi-pass overwriting
  • Directory Support: Recursive processing of directories
  • Memory-Secure Processing: Protection against memory-based attacks and data leakage
  • Glob Pattern Support: Batch operations using wildcard patterns
  • Safe Overwriting: Secure in-place file replacement with atomic operations
  • Progress Visualization: Real-time progress bars for lengthy operations
  • Graphical User Interface: User-friendly GUI for all operations (beta)
  • Built-in and custom Templates: built in templates like --quick --standard and --paranoid can be used. You can also define your own customized templates in ./templates

Files Included

all testfile files are ecrypted with password 1234 for your testing

License

MIT License

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

openssl_encrypt-0.8.2.tar.gz (223.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

openssl_encrypt-0.8.2-py3-none-any.whl (256.5 kB view details)

Uploaded Python 3

File details

Details for the file openssl_encrypt-0.8.2.tar.gz.

File metadata

  • Download URL: openssl_encrypt-0.8.2.tar.gz
  • Upload date:
  • Size: 223.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for openssl_encrypt-0.8.2.tar.gz
Algorithm Hash digest
SHA256 f3d7ca4f4b81b6ca0813613a8f6a009835a7ce79ecfd6c69e3defabc35af96b3
MD5 b90da00ee036af877e75647879c2974d
BLAKE2b-256 dabdc11d045f666e9dbbb17e101ba6eb9f3fdbdc45d76ef9de7668397bc5d91f

See more details on using hashes here.

File details

Details for the file openssl_encrypt-0.8.2-py3-none-any.whl.

File metadata

File hashes

Hashes for openssl_encrypt-0.8.2-py3-none-any.whl
Algorithm Hash digest
SHA256 94aedb6d77a48efa6e22a1f883c73b6e2e56e203275a900f8bad0603d1317352
MD5 70df55aafd9073b852521355f8e8acba
BLAKE2b-256 dc31825787bf214b7c8ef179c641f3c84b61fc920089e32b75057b5845dfa65a

See more details on using hashes here.

Supported by

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