openssl-encrypt 0.2.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. openssl_encrypt-0.2.2/MANIFEST.in +6 -0
  2. openssl_encrypt-0.2.2/PKG-INFO +89 -0
  3. openssl_encrypt-0.2.2/README.md +54 -0
  4. openssl_encrypt-0.2.2/openssl_encrypt/__init__.py +0 -0
  5. openssl_encrypt-0.2.2/openssl_encrypt/crypt.py +14 -0
  6. openssl_encrypt-0.2.2/openssl_encrypt/crypt_gui.py +1134 -0
  7. openssl_encrypt-0.2.2/openssl_encrypt/docs/.idea/workspace.xml +53 -0
  8. openssl_encrypt-0.2.2/openssl_encrypt/docs/examples.md +89 -0
  9. openssl_encrypt-0.2.2/openssl_encrypt/docs/install.md +32 -0
  10. openssl_encrypt-0.2.2/openssl_encrypt/docs/password-handling.md +437 -0
  11. openssl_encrypt-0.2.2/openssl_encrypt/docs/security-notes.md +68 -0
  12. openssl_encrypt-0.2.2/openssl_encrypt/docs/usage.md +98 -0
  13. openssl_encrypt-0.2.2/openssl_encrypt/modules/__init__.py +0 -0
  14. openssl_encrypt-0.2.2/openssl_encrypt/modules/crypt_cli.py +1030 -0
  15. openssl_encrypt-0.2.2/openssl_encrypt/modules/crypt_core.py +918 -0
  16. openssl_encrypt-0.2.2/openssl_encrypt/modules/crypt_settings.py +714 -0
  17. openssl_encrypt-0.2.2/openssl_encrypt/modules/crypt_utils.py +396 -0
  18. openssl_encrypt-0.2.2/openssl_encrypt/modules/secure_memory.py +575 -0
  19. openssl_encrypt-0.2.2/openssl_encrypt/unittests/__init__.py +0 -0
  20. openssl_encrypt-0.2.2/openssl_encrypt/unittests/test_gui.py +42 -0
  21. openssl_encrypt-0.2.2/openssl_encrypt/unittests/unittests.py +1253 -0
  22. openssl_encrypt-0.2.2/openssl_encrypt.egg-info/PKG-INFO +89 -0
  23. openssl_encrypt-0.2.2/openssl_encrypt.egg-info/SOURCES.txt +26 -0
  24. openssl_encrypt-0.2.2/openssl_encrypt.egg-info/dependency_links.txt +1 -0
  25. openssl_encrypt-0.2.2/openssl_encrypt.egg-info/requires.txt +12 -0
  26. openssl_encrypt-0.2.2/openssl_encrypt.egg-info/top_level.txt +1 -0
  27. openssl_encrypt-0.2.2/setup.cfg +4 -0
  28. openssl_encrypt-0.2.2/setup.py +42 -0
@@ -0,0 +1,6 @@
1
+ recursive-include openssl_encrypt/docs *
2
+ global-exclude __pycache__/*
3
+ global-exclude */__pycache__/*
4
+ global-exclude *.py[cod]
5
+ global-exclude .*.swp
6
+ global-exclude .DS_Store
@@ -0,0 +1,89 @@
1
+ Metadata-Version: 2.4
2
+ Name: openssl_encrypt
3
+ Version: 0.2.2
4
+ Summary: A package for secure file encryption and decryption based on modern ciphers
5
+ Home-page: https://gitlab.com/world/openssl_encrypt
6
+ Author: Tobi
7
+ Author-email: jahlives@gmx.ch
8
+ Keywords: encryption,openssl,security
9
+ Classifier: Development Status :: 3 - Alpha
10
+ Classifier: Intended Audience :: Developers
11
+ Classifier: Programming Language :: Python :: 3
12
+ Classifier: License :: OSI Approved :: MIT License
13
+ Requires-Python: >=3.6
14
+ Description-Content-Type: text/markdown
15
+ Requires-Dist: cryptography>=42.0.0
16
+ Requires-Dist: argon2-cffi>=23.1.0
17
+ Requires-Dist: bcrypt~=4.3.0
18
+ Requires-Dist: pywin32>=306; sys_platform == "win32"
19
+ Provides-Extra: dev
20
+ Requires-Dist: pytest>=8.0.0; extra == "dev"
21
+ Requires-Dist: pytest-cov>=4.1.0; extra == "dev"
22
+ Requires-Dist: black>=24.1.0; extra == "dev"
23
+ Requires-Dist: pylint>=3.0.0; extra == "dev"
24
+ Dynamic: author
25
+ Dynamic: author-email
26
+ Dynamic: classifier
27
+ Dynamic: description
28
+ Dynamic: description-content-type
29
+ Dynamic: home-page
30
+ Dynamic: keywords
31
+ Dynamic: provides-extra
32
+ Dynamic: requires-dist
33
+ Dynamic: requires-python
34
+ Dynamic: summary
35
+
36
+ # Secure File Encryption Tool
37
+ A powerful tool for securely encrypting, decrypting, and shredding files with military-grade cryptography and multi-layer password hashing.
38
+ ## History
39
+ 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.
40
+ 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 :-)
41
+
42
+ **Important note**: although `whirlpool` is supported by this tool, I do not recommend using this hashing algorithm. That is because building `whirlpool` via pip fails on recent Python versions (>= Python 3.12). If you want to use it you should have a look at [pyenv](https://github.com/pyenv/pyenv) which allows multiple Python versions to exist in peaceful co-existence. `whirlpool` will remain in the code also in future versions of this application
43
+ ## Issues
44
+ you can create issues by [sending mail](mailto:issue+world-openssl-encrypt-2-issue-+gitlab@rm-rf.ch) to the linked address
45
+
46
+ **Important due to latest changes in version 1.0.1 older encrypted files cannot be decrypted anymore (see [this ticket](https://gitlab.rm-rf.ch/world/openssl_encrypt/-/issues/10))**
47
+ ## Features
48
+ - **Strong Encryption**: Uses Fernet symmetric encryption (AES-128-CBC) with secure key derivation \
49
+ Because of this "restriction" in Fernet
50
+ ```
51
+ Fernet is designed so that it doesn’t expose unauthenticated bytes.
52
+ Because of this, the entire message contents must be able to fit in the available memory.
53
+ This makes Fernet unsuitable for encrypting very large files.
54
+ ```
55
+ therefore "AES-GCM" and "ChaCha20" are now available in the final [release](https://gitlab.rm-rf.ch/world/openssl_encrypt/-/tree/v1.0)
56
+ - **Multi-hash Password Protection**: Optional layered hashing with SHA-256, SHA-512, SHA3-256, SHA3-512, Whirlpool, Scrypt and Argon2
57
+ - **Password Management**: Password confirmation to prevent typos, random password generation, and standalone password generator
58
+ - **File Integrity Verification**: Built-in hash verification to detect corrupted or tampered files
59
+ - **Secure File Shredding**: Military-grade secure deletion with multi-pass overwriting
60
+ - **Directory Support**: Recursive processing of directories
61
+ - **Memory-Secure Processing**: Protection against memory-based attacks and data leakage
62
+ - **Argon2 Support**: Memory-hard key derivation function that won the Password Hashing Competition
63
+ - **Glob Pattern Support**: Batch operations using wildcard patterns
64
+ - **Safe Overwriting**: Secure in-place file replacement with atomic operations
65
+ - **Progress Visualization**: Real-time progress bars for lengthy operations
66
+ - **Graphical User Interface**: User-friendly GUI for all operations
67
+ ## Files Included
68
+ - [crypt.py](https://gitlab.rm-rf.ch/world/openssl_encrypt/-/tree/main/openssl_encrypt/crypt.py) - Main command-line utility
69
+ - [crypt_gui.py](https://gitlab.rm-rf.ch/world/openssl_encrypt/-/tree/main/openssl_encrypt/crypt_gui.py) - Graphical user interface
70
+ - [modules/crypt.cli.py](https://gitlab.rm-rf.ch/world/openssl_encrypt/-/tree/main/openssl_encrypt/modules/crypt.cli.py) - command-line interface
71
+ - [modules/crypt_core.py](https://gitlab.rm-rf.ch/world/openssl_encrypt/-/tree/main/openssl_encrypt/modules/crypt_core.py) - provides the core functionality
72
+ - [modules/crypt_utils.py](https://gitlab.rm-rf.ch/world/openssl_encrypt/-/tree/main/openssl_encrypt/modules/crypt_utils.py) - provides utility functions
73
+ - [modules/secure_memory.py](https://gitlab.rm-rf.ch/world/openssl_encrypt/-/tree/main/openssl_encrypt/modules/secure_memory.py) - provides functions for secure memory handling
74
+ - [requirements.txt](https://gitlab.rm-rf.ch/world/openssl_encrypt/-/tree/main/openssl_encrypt/requirements.txt) - Required Python packages
75
+ - [README.md](https://gitlab.rm-rf.ch/world/openssl_encrypt/-/tree/main/openssl_encrypt/README.md) - This documentation file
76
+ - [docs/install.md](https://gitlab.rm-rf.ch/world/openssl_encrypt/-/tree/main/openssl_encrypt/docs/install.md) - installation notes
77
+ - [docs/usage.md](https://gitlab.rm-rf.ch/world/openssl_encrypt/-/tree/main/openssl_encrypt/docs/usage.md) - usage notes
78
+ - [docs/examples.md](https://gitlab.rm-rf.ch/world/openssl_encrypt/-/tree/main/openssl_encryptdocs/examples.md) - some examples
79
+ - [docs/password-handling.md](https://gitlab.rm-rf.ch/world/openssl_encrypt/-/tree/main/openssl_encrypt/docs/password-handling.md) - notes about password handling
80
+ - [docs/security-notes.md](https://gitlab.rm-rf.ch/world/openssl_encrypt/-/tree/main/openssl_encrypt/docs/security-notes.md) - notes about security
81
+ - [unittests/unittests.py](https://gitlab.rm-rf.ch/world/openssl_encrypt/-/tree/main/openssl_encrypt/unittests/unittests.py) - Unit tests for the utility
82
+ - [unittests/test_gui.py](https://gitlab.rm-rf.ch/world/openssl_encrypt/-/tree/main/openssl_encrypt/unittests/test_gui.py) - simple test for `tkinter`
83
+ - [unittests/testfile](https://gitlab.rm-rf.ch/world/openssl_encrypt/-/tree/main/openssl_encrypt/unittests/testfiles) - testfiles for `unittests` encryption
84
+
85
+ all testfile files are ecrypted with password `1234` for your testing
86
+ ## License
87
+
88
+ [MIT License](LICENSE)
89
+
@@ -0,0 +1,54 @@
1
+ # Secure File Encryption Tool
2
+ A powerful tool for securely encrypting, decrypting, and shredding files with military-grade cryptography and multi-layer password hashing.
3
+ ## History
4
+ 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.
5
+ 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 :-)
6
+
7
+ **Important note**: although `whirlpool` is supported by this tool, I do not recommend using this hashing algorithm. That is because building `whirlpool` via pip fails on recent Python versions (>= Python 3.12). If you want to use it you should have a look at [pyenv](https://github.com/pyenv/pyenv) which allows multiple Python versions to exist in peaceful co-existence. `whirlpool` will remain in the code also in future versions of this application
8
+ ## Issues
9
+ you can create issues by [sending mail](mailto:issue+world-openssl-encrypt-2-issue-+gitlab@rm-rf.ch) to the linked address
10
+
11
+ **Important due to latest changes in version 1.0.1 older encrypted files cannot be decrypted anymore (see [this ticket](https://gitlab.rm-rf.ch/world/openssl_encrypt/-/issues/10))**
12
+ ## Features
13
+ - **Strong Encryption**: Uses Fernet symmetric encryption (AES-128-CBC) with secure key derivation \
14
+ Because of this "restriction" in Fernet
15
+ ```
16
+ Fernet is designed so that it doesn’t expose unauthenticated bytes.
17
+ Because of this, the entire message contents must be able to fit in the available memory.
18
+ This makes Fernet unsuitable for encrypting very large files.
19
+ ```
20
+ therefore "AES-GCM" and "ChaCha20" are now available in the final [release](https://gitlab.rm-rf.ch/world/openssl_encrypt/-/tree/v1.0)
21
+ - **Multi-hash Password Protection**: Optional layered hashing with SHA-256, SHA-512, SHA3-256, SHA3-512, Whirlpool, Scrypt and Argon2
22
+ - **Password Management**: Password confirmation to prevent typos, random password generation, and standalone password generator
23
+ - **File Integrity Verification**: Built-in hash verification to detect corrupted or tampered files
24
+ - **Secure File Shredding**: Military-grade secure deletion with multi-pass overwriting
25
+ - **Directory Support**: Recursive processing of directories
26
+ - **Memory-Secure Processing**: Protection against memory-based attacks and data leakage
27
+ - **Argon2 Support**: Memory-hard key derivation function that won the Password Hashing Competition
28
+ - **Glob Pattern Support**: Batch operations using wildcard patterns
29
+ - **Safe Overwriting**: Secure in-place file replacement with atomic operations
30
+ - **Progress Visualization**: Real-time progress bars for lengthy operations
31
+ - **Graphical User Interface**: User-friendly GUI for all operations
32
+ ## Files Included
33
+ - [crypt.py](https://gitlab.rm-rf.ch/world/openssl_encrypt/-/tree/main/openssl_encrypt/crypt.py) - Main command-line utility
34
+ - [crypt_gui.py](https://gitlab.rm-rf.ch/world/openssl_encrypt/-/tree/main/openssl_encrypt/crypt_gui.py) - Graphical user interface
35
+ - [modules/crypt.cli.py](https://gitlab.rm-rf.ch/world/openssl_encrypt/-/tree/main/openssl_encrypt/modules/crypt.cli.py) - command-line interface
36
+ - [modules/crypt_core.py](https://gitlab.rm-rf.ch/world/openssl_encrypt/-/tree/main/openssl_encrypt/modules/crypt_core.py) - provides the core functionality
37
+ - [modules/crypt_utils.py](https://gitlab.rm-rf.ch/world/openssl_encrypt/-/tree/main/openssl_encrypt/modules/crypt_utils.py) - provides utility functions
38
+ - [modules/secure_memory.py](https://gitlab.rm-rf.ch/world/openssl_encrypt/-/tree/main/openssl_encrypt/modules/secure_memory.py) - provides functions for secure memory handling
39
+ - [requirements.txt](https://gitlab.rm-rf.ch/world/openssl_encrypt/-/tree/main/openssl_encrypt/requirements.txt) - Required Python packages
40
+ - [README.md](https://gitlab.rm-rf.ch/world/openssl_encrypt/-/tree/main/openssl_encrypt/README.md) - This documentation file
41
+ - [docs/install.md](https://gitlab.rm-rf.ch/world/openssl_encrypt/-/tree/main/openssl_encrypt/docs/install.md) - installation notes
42
+ - [docs/usage.md](https://gitlab.rm-rf.ch/world/openssl_encrypt/-/tree/main/openssl_encrypt/docs/usage.md) - usage notes
43
+ - [docs/examples.md](https://gitlab.rm-rf.ch/world/openssl_encrypt/-/tree/main/openssl_encryptdocs/examples.md) - some examples
44
+ - [docs/password-handling.md](https://gitlab.rm-rf.ch/world/openssl_encrypt/-/tree/main/openssl_encrypt/docs/password-handling.md) - notes about password handling
45
+ - [docs/security-notes.md](https://gitlab.rm-rf.ch/world/openssl_encrypt/-/tree/main/openssl_encrypt/docs/security-notes.md) - notes about security
46
+ - [unittests/unittests.py](https://gitlab.rm-rf.ch/world/openssl_encrypt/-/tree/main/openssl_encrypt/unittests/unittests.py) - Unit tests for the utility
47
+ - [unittests/test_gui.py](https://gitlab.rm-rf.ch/world/openssl_encrypt/-/tree/main/openssl_encrypt/unittests/test_gui.py) - simple test for `tkinter`
48
+ - [unittests/testfile](https://gitlab.rm-rf.ch/world/openssl_encrypt/-/tree/main/openssl_encrypt/unittests/testfiles) - testfiles for `unittests` encryption
49
+
50
+ all testfile files are ecrypted with password `1234` for your testing
51
+ ## License
52
+
53
+ [MIT License](LICENSE)
54
+
File without changes
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ Secure File Encryption Tool - Main Entry Point
4
+
5
+ This is the main entry point for the file encryption tool, importing the necessary
6
+ modules and providing a simple interface for the CLI.
7
+ """
8
+
9
+ # Import the CLI module to execute the main function
10
+ from .modules.crypt_cli import main
11
+
12
+ if __name__ == "__main__":
13
+ # Call the main function directly
14
+ main()