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.
- openssl_encrypt-0.2.2/MANIFEST.in +6 -0
- openssl_encrypt-0.2.2/PKG-INFO +89 -0
- openssl_encrypt-0.2.2/README.md +54 -0
- openssl_encrypt-0.2.2/openssl_encrypt/__init__.py +0 -0
- openssl_encrypt-0.2.2/openssl_encrypt/crypt.py +14 -0
- openssl_encrypt-0.2.2/openssl_encrypt/crypt_gui.py +1134 -0
- openssl_encrypt-0.2.2/openssl_encrypt/docs/.idea/workspace.xml +53 -0
- openssl_encrypt-0.2.2/openssl_encrypt/docs/examples.md +89 -0
- openssl_encrypt-0.2.2/openssl_encrypt/docs/install.md +32 -0
- openssl_encrypt-0.2.2/openssl_encrypt/docs/password-handling.md +437 -0
- openssl_encrypt-0.2.2/openssl_encrypt/docs/security-notes.md +68 -0
- openssl_encrypt-0.2.2/openssl_encrypt/docs/usage.md +98 -0
- openssl_encrypt-0.2.2/openssl_encrypt/modules/__init__.py +0 -0
- openssl_encrypt-0.2.2/openssl_encrypt/modules/crypt_cli.py +1030 -0
- openssl_encrypt-0.2.2/openssl_encrypt/modules/crypt_core.py +918 -0
- openssl_encrypt-0.2.2/openssl_encrypt/modules/crypt_settings.py +714 -0
- openssl_encrypt-0.2.2/openssl_encrypt/modules/crypt_utils.py +396 -0
- openssl_encrypt-0.2.2/openssl_encrypt/modules/secure_memory.py +575 -0
- openssl_encrypt-0.2.2/openssl_encrypt/unittests/__init__.py +0 -0
- openssl_encrypt-0.2.2/openssl_encrypt/unittests/test_gui.py +42 -0
- openssl_encrypt-0.2.2/openssl_encrypt/unittests/unittests.py +1253 -0
- openssl_encrypt-0.2.2/openssl_encrypt.egg-info/PKG-INFO +89 -0
- openssl_encrypt-0.2.2/openssl_encrypt.egg-info/SOURCES.txt +26 -0
- openssl_encrypt-0.2.2/openssl_encrypt.egg-info/dependency_links.txt +1 -0
- openssl_encrypt-0.2.2/openssl_encrypt.egg-info/requires.txt +12 -0
- openssl_encrypt-0.2.2/openssl_encrypt.egg-info/top_level.txt +1 -0
- openssl_encrypt-0.2.2/setup.cfg +4 -0
- openssl_encrypt-0.2.2/setup.py +42 -0
|
@@ -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()
|