Releases: cl-ement05/ZCrypt
ZCrypt V4.1
New Features 🎉
Automatic mode detection 🤖
- ZCrypt will now automatically detect the encryption mode of a file when trying to decrypt
- So you no longer need to specify whether is uses RSA or zcrypt mode ; just enter the filename and ZCrypt takes care of the rest
Use of the unidecode module 👌
- Previously, in zcrypt mode, if you typed characters containing accents or special characters like µ or $, ZCrypt would crash and raise an exception since zcrypt encryption algo does not really know how to encrypt them (one of zcrypt weaknesses 😬 )
- Now, when entering text like message, sender or receiver ZCrypt will use the unidecode module to remove all accents and avoid ZCrypt crash
GUI to select file 💻
- This is probably the biggest new feature of this release : now you select files to save/open using your OS file explorer
- Not only this is much more user-friendly and easy to use, but also it adds a new ability : use file from everywhere on your computer (could even be on a USB stick) and not only from the files in ZCrypt dir
- Note : this feature is only available when choosing filename for encrypted content and when choosing the file containing encrypted content when decrypting
- This also means the file name has been removed from settings which makes it easier for you to change the file name of encrypted content
Improvements ↗️
- Some print messages have been changed to make ZCrypt more consistent and simpler in its whole UX
- zcrypt encryption algo is now much faster (removed two processing-power-hungry while-loops 🔁)
- Now, files are opened in a way which ensures that the resource is freed when it is not longer needed after zcrypt operations
For devs
Major change ! Some functions were moved to files in a misc/ folder for clearer and esay-to-read code. Functions related to the same topic were merged in the same file (eg settings and update)
Be careful : there were some big changes in function args and returns (mostly printDecrypted and checkForUpdates)
And as always performance improvements ⏩
And that's pretty much it for ZCrypt V4.1 😃
For next release, expect something a bit special... :
ZCrypt V4.0
New Features 🎉
Automatic updates 🔄
- ZCrypt will now check if updates are available (using a manifest) and fetch these updates if necessary
- This new feature comes of course with a new parameter in settings which lets you specify when you want ZCrypt to check for available updates
- No extra libraries required ! ZCrypt uses built-in modules from Python
Settings permanently saved ✅
- ZCrypt will now save your settings in a file so you never lose them after exiting ZCrypt
- This file is automatically updated each time you change a setting ! No need to worry about saving your changes
- You can also manually change this file 😉 but be careful with that : you could corrupt your settings file
- In this situation, ZCrypt won't be able to boot however ZCrypt offers you the option to restore the default settings file
Security improvements 🔒
zcrypt encryption algorithm got a very cool security improvement 🔑
- Now, the limits (both high and low) are generated randomly and not fixed to a number like in previous zcrypt version
- These limits are saved in the encrypted file output just like the key
File ouput is now much harder to read (for humans) 📁
- Zcrypt won't use semi-colons anymore to separate numbers
- Based on the fact that encrypted number will always be composed of three binary representation of three digits (8 * 3), ZCrypt will separate numbers each 24 digits
As always
- A lot of bug fixes 🐛
- Performance improvements ⏩
ZCrypt V3.1
- Added ability to encrypt metadata even with encrypting with RSA 👍
- External modules (like RSA or printy) can now be automatically installed if they are missing
- Added ability to recognize commands even with spaces before or after the text itself
- Improved settings, especially when setting a custom RSA key length. Now a check is performed to verify the entered value is a power of 2
- For devs : ZCrypt's main code now only run when name == "main", also merged decrypt into one main function
- Fixed a bug which caused ZCrypt to crash when printing decrypted in zcrypt mode (see 4064657 for details)
- And optimisations as usual ;)
ZCrypt V3.0
New Features
RSA
- ZCrypt now offers encrypting messages with RSA using Python RSA module
- Only messages can be encrypted for now
- Support for crypting time, sender and receiver will come in a future release
- RSA mode has many ZCrypt mode features see comparison below
Added two new options in setting
- Ability to set a default encryption mode (using RSA or ZCrypt)
- Ability to set a custom RSA key length (bits)
Improvements
- Better UI -> unified message titles (error, warning, infos...)
Key differences and features between ZCrypt algorithm and RSA
Features | ZCrypt | RSA |
---|---|---|
Encrypt messages | ✅ | ✅ |
Encrypt metadata (sender, receiver, date) | ✅ | ❌ |
Save encrypted content to a file | ✅ | ✅ (in byte mode) |
Warning before file overwrite | ✅ | ✅ |
Save decrypted content to external file | ✅ | ✅ |
Automatically retrieve key from file | ✅ | ✅ (if you saved privKey when encrypting) |
RSA or ZCrypt ?
ZCrypt encryption algorithm offers low security level of encryption but a very fast encryption process
RSA on the other hand offers much better security at slower speed
Here is a little comparison between both
Time taken to encrypt "This is a test message for ZCrypt V3.0 release !!"
Tested on a non-overclocked Raspberry Pi 4 on a single process
Operation (in sec) | ZCrypt | RSA (512 bits) | RSA (1024 bits) | RSA (2048 bits) |
---|---|---|---|---|
Generate keys | < 0.1 | 0.2 | 0.8 | 3.0 |
Encrypt message | 0.3 | 0.5 | 1.2 | 11.1 |
Choose the one that best suits your needs !
ZCrypt V2.3
New features
Ability to either print either save decrypted output to a file
- Settings have been updated and a new value was added
- Three options : always ask user for input, always save to file or lastly always print to screen
Improvements for Error Code
- Now only a single Error code at a time (changed from list to str)
- The part of the manual which deals with this code is automatically printed
Optimisations
Global variables
- Removed a lot of them (almost 15)
- Use of returns and function parameter
Algorithms
- Date decrypt much more readable
- fileCheck before decrypting has also been improved
Use of an encrypt and decrypt engine
- Since encryption/decryption is code is reused in many function (for sender, reciever...) it was not clever to copy/paste the encryption algorithm (which processes ASCII...)
- So I added two new main functions which are called when decryption/encryption is needed (DRY code ) -> removed 200 lines of code
Bug fixes
- Fixed an issue which caused crash when entering a non-int while changing a setting (
ValueError
was raised because converting to int() without an except-block)
ZCrypt V2.2
New feature
Save decrypted content to a text file
- name of the file is chose by user
- if the name is not valid -> ZCrypt uses a default name
ZCrypt V2.1
New Features
Settings Page
- Two new option to customize ZCrypt even more :
- Change the displayed date format (dd/mm/YYYY, dd/mm/YY, YYYY-mm-dd or even plain-text)
- Warning before file overwrite can now be disabled
Removed some unnecessary imports
ZCrypt V2.0
New Features
Colors
- Output text is now displayed in colors so it will be much easier to read
- Every type of message (warning, information, error...) has its own color scheme
Error codes
- Starting from V2.0, when a crypted mail can't be decrypted, instead of just showing an error, ZCrypt will provide an error code
- All are error codes are listed in the Manual that has been updated
ZCrypt V1.0
Introduction of ZCrypt !
Note : initially released on February the 24th 2020 (but not on GitHub)