
version 1.0.1
fix bug:
- On interactive mode, checking if the two passphrases are the same fails something when stdin buffer isnt emptied before reading the first password.

","(comma) is not a valid mount point path. the cli prevents this but the GUI just fails without informing a user why. Added a dialog to inform a user
when they select comma as a mount point.

comma as a mount point is disallowed because it sits right next to "dot" button and most people(ie. me) usually press "."(dot) key to mean "present working directory"
but will miss the key and press comma key and start wondering why things arent they way they are supposed to be.
The comma key should have been on the other side of the keyboard!!!

version 2.0
add support for adding and deleting keys in luks based volumes in the cli and gui.

version 3.0
add support for creating both plain and luks based volumes in both files and partitions.

version 4.0
-- host UI blocking code in a different threads to remove/minimize UI freezes
-- use only cryptsetup.so library to interface with cryptsetup
-- allow a user to select what random number generator to use
-- add the ability to create key files
-- Font size and type are now configurable
-- add support for favorite volumes
-- warn in the UI on attempt to delete a key when there is only one key left
-- refuse to attemp to add more keys when key slots are full.
-- implement tray icon to minimize to tray
-- provide a complete docs in a header file on how to interface with libzuluCrypt.so
-- include partitions in /etc/crypttab in a list of system partitions.

version 4.1.0
-- minor update, fix bugs comming from mishandling of files and paths with empty spaces in them.

version 4.2.0
-- minor update, volume in the favorite list could not be mounted, this version fix it.

version 4.3.0
-- fix bugs in zulucrypt-gui triggered by use of double quotes in file and path names
-- fix a bug. fat based volumes mounted with wrong permissions and only root user could write to the opened volume
-- volumw property now displays file system type, volume size, volume size used, volume size available and percentage used.
-- Fix a bug that prevented adding a new key from key file to a luks volume when the existing key was from a passphrase.
-- The password dialog had a bug and did not reset properly when the previous operation involved opening a keyfile.
-- Add an option to close all opened volumes with a single click.
-- Created volumes with extX file systems now use 1% reserved space instead of the default 5%.
-- Encrypted files can now be created using "/dev/random","/dev/urandom" or "/dev/zero"
-- Add a UI option to select a random number generator to use to all dialogs that deals with features that need it.
-- Add option to just minimize or minimize to tray the main window.
-- various other UI and functionality fixes.

version 4.3.1
-- A bit more UI effects when opening and closing of volumes.
-- Context menu on opened volumes can now be triggered with CTRL+M or or menu key for better keyboard only management of the tool
-- Device addresses can be given in a form of "/dev/XYZN" or "UUID=bla-bla-bla".
-- various fixes
-- A separate window to manage favorite volumes

version 4.3.2
-- ext3/ext4 can not be mounted with user specified permissions and they use the permissions set when the volume was last mounted.
    This creates a problem on freshly created volumes because they always end up owned by root. This update fix the problem by setting
    permissions everytime a volume is opened in read/write mode. If a volume open with root as owner, then reopen the volume in read/write
    mode and permissions will be set properly(0700 with the owner being the user who opened the volume)


version 4.3.3
-- fix a bug that caused improper reading of key files if they were not made up of C strings.
-- fix a bug triggered when attempting to open a plain type volume using aes-cbc-plain cypher( opening plain volume in legacy mode ).

version 4.3.4
-- fix a compilation bug on some system
-- support libmount both above and below version 2.18

version 4.4.0
-- lots of code added to increase security and reliability of the tool,updating strongly advised.
-- when creating a volume, use mkfs.xxx tools installed on the system and not hard code a subset of them.
-- use ntfs-3g to mount volumes that use ntfs file system.
-- major cli interface change, run zulucrypt-cli --help for more info.
-- normal users can not create volumes in system partitions but root user now can. system partition is defined as a partition
   with active entry(not commented out) in /etc/fstab and /etc/crypttab.

version 4.5.0
-- add support for creating backups of luks headers and restoring luks headers
-- add support for first writing random data to partitions before creating an encryped container in them.
-- add support for "/etc/zuluCrypttab". A place to add additional paths to devices to be considered system devices.
-- various security related fixes.
-- add support for encrypting stand alone files

version 4.5.1
-- add the ability to manage system volumes in the UI,the GUI must be running from root account for the ability to be enabled
-- by default, volumes are opened in read/write mode.

version 4.5.2
-- a quick update to fix a regression in stand alone file encryption.

version 4.5.3
-- add a plug in architecture. Its now possible to send zulucrypt-cli passphrases through different means, default plugins can retrieve
   passphrases from kde kwallet,gnome keyring,gpg encryped key files and a combination of keyfile and passphrase.
-- show a dialog to warn a user the volume will be opened in read only mode when whey tick the option for the first time.
-- passphrases are sent to the back end in a more secure way using unix local socket.
-- small attempt to hide passphrases from ps command if they are passed through the command line argument.
-- passphrases stored in kde kwallet can be managed from within zulucrypt-gui if their support is enabled at build time.

version 4.6.0
-- add support for opening and closing of truecrypt volumes,this feature need cryptsetup >= 1.6.0

version 4.6.1
-- fix a regression that caused volumes presented by their UUID not to working

version 4.6.2
-- add config option to not build KDE and/or GNOME support even when the system has support for them
-- add support for LVM volumes
-- add support for consulting udev in addition to fstab when deciding if a system is system or not
-- add tcplay as an optional dependency to allow creation of truecrypt volumes
-- fix bug:truecrypt volumes with multiple ciphers did not close properly
-- fix bug:volumes did not close properly if mount point had a space character among others in it
-- feature added:users who are members of "zulumount-exec" group will have their volumes opened with "exec" mount option.
   This will allow them to be able to execute commands from the mount point.The default and recommended option is not mount with "noexec" option.
-- feature added:A "-M" option is added that will create a publicly accessible "mirror" of a mount point in "/run/share" from the private
   original one created in "/run/media/$USER.This option is there to allow a user to mount a volume and have it accessible from other users of the system.
-- zuluMount-gui now adds and removed from its list as devices are added and removed from the system.A right click context menu option can be set to allow
   unencrypted volumes to also be automounted.
-- add a command line option to zuluMount-gui to start it up without showing the GUI

version 4.6.3
-- fix a build issue on some systems
-- when automounting devices,use device LABEL if present
-- its now possible to create truecrypt volumes using a keyfile
-- its now possible to open a truecrypt hidden volume
-- add explicit support md raid based volumes
-- add context menu entry in zuluMount-gui to open shared mount point folder
-- its now possible to initiate volume mounting process of volumes in files by drag and drop them on zuluCrypt-gui and zuluMount-gui UI.
-- various bug fixes.
-- add ability to create and open truecrypt hidden volumes in the GUI

version 4.6.4
-- fix a build issue on some systems

version 4.6.5
-- add support for opening truecrypt system volumes
-- add internatiolization support
-- zuluMount-gui is now aware of volumes that are mounted or unmounted outside of it.This gives zuluMount-gui an ability to automount
   newly attached devices.
-- encrypted volumes that reside in files can be opened simply by drag and drop them in zuluCrypt-gui or zuluMount-gui windows

version 4.6.6
-- fix a regression,retrieving keys from kwallet using volume UUID broke.
-- volumes in gnome are now stored in libsecret and no longer in libgnome-keyring
-- add a GUI window in zuluCrypt-gui to manage keys in libsecret wallet,internal wallet and kde kwallet.
-- add an internal system that can securely store keys independently of kde kwallet and gnome libsecret.Useful to those who
   want to store keys securely but dont want gnome or kde dependencies
-- add compile time option to use mount points in user home directory instead of "/run/media/private"
-- NOTE: changes in management of wallets are not backward compatible and hence volumes will have to be readded after the update.My
   apologies for the inconvenience.
-- drop support for updating /etc/mtab and remove libmount as a required dependency
-- add a Qt5 port,see build instrunctions on how to build Qt5 version

version 4.6.7
-- fix packaging issues
-- fix a regression on zuluMount-gui that caused a hang when checking for properties of an opened volume opened by a different user

version 4.6.8
-- store partition id in wallets by device hardware id on volumes that do not have UUID( non LUKS volumes )
-- add support for exfat file system.
-- add support for creating a backup and restoring from backup truecrypt volume headers(tcplay >=2.0.0 required)
-- add a simple CLI tool(zuluSafe-cli) that can be used to store multiple files securely in a single wallet file.
-- add support in zuluMount for opening a plain volume at a user specified offset.This ability will allow hidden volume type
   functionality.In one of the prompts in zuluMount-gui,press "ctrl+f" to bring up the dialog that accepts the offset.
-- add support for multi device btrfs volumes.

version 4.6.9
-- move config files to "/etc/zuluCrypt" from "/etc"
-- add a config file "/etc/zuluCrypt/fs_options" where default file system mount options can be specified per UUID.
   -format is:one entry per line,example entry: UUID="abcf" uid=500
-- fix a bug,if udev is enabled,mounted image files were always treated as system volumes.
-- use libgcrypt for stand alone file encryption instead of cryptsetup.Newer stand alone encrypted files will have an extension of ".zC" to
   distinguish them from previous ones that use ".zc".Older versions of zuluCrypt(<4.6.9) will not be able to open encrypted files that
   end with ".zC".
-- add an option in zuluCrypt GUI to specify a truecrypt volume type when saving or restoring a truecrypt header from a backup header file

version 4.7.0
-- various changes and improvements
-- add a plugin named "steghide" that retrives passphrases embeded in other files using "steghide" tool.
-- add a plugin named "luks" that allows opening a LUKS volume using a backup/detached header.
-- add a plugin named "tomb" that allows opening of LUKS volumes from tomb project using keys securely stored in image files.

version 4.7.1
-- fix a build issue in gcc 4.9

version 4.7.2
-- add support for opening TrueCrypt volumes using a passphrase together with one or more keyfiles.

version 4.7.3
-- fix issues with Qt5 build
-- show devices even when they have neither partitions nor recognizable file systems.This is useful for TrueCrypt system volumes or
   normal TrueCrypt volumes that are not in partitions.
-- add an ability to change TrueCrypt volume key.
-- add ability to create volumes with different crypto options

version 4.7.4
-- fix a bug that hanged zuluMount-gui on failed attempt at unlocking a plain dm-crypt volume at a none zero offset.a plain dm-crypt volume at
   a none zero offset can be used as a hidden volume ala TrueCrypt hidden volume feature.No protetcion of hidden volume though.

version 4.7.5
-- add abilities in zuluMount-gui to hide useless entries like windows recovery partitions from view.
   These entries can be set to show/hide through tray icon context menu.
-- add ability to mount and unmount encfs volumes in zuluMount-gui.A folder with encrypted files can be unlocked by dragging
   it and then dropping it on zuluMount-gui main window.
-- add ablity to create TrueCrypt volumes using a passphrase together with one or more keyfiles.Previous versions allowed
   creation of volumes using either a passphrase or a single keyfile.
-- add support for opening of VeraCrypt volumes(cryptsetup > 1.6.6 required).

version 4.7.6
-- add "hmac" plugin.This plugin produces a key as follows: key = hmac-sha256( passphrase,keyfile-contents ).
   this plugin can be used when unlocking a volume requires a passphrase and a keyfile.
-- use "tcrypt" to refer to TrueCrypt volumes and "vcrypt" to refer to VeraCrypt volumes.
-- add ability to create VeraCrypt volumes.

version 4.7.7
-- add support for creating and opening VeraCrypt volumes that use dynamic mode.
-- make zuluCrypt-gui window and zuluMount-gui window resizable with the new sizes surviving restarts.

version 4.7.8
-- add support for usage of keys that are made up by a combination of a passphrase and a keyfile."hmac" plugin
   should be used to unlock volumes generated by this combination.
-- fix problems caused by updated versions of certain utilities we rely on.

version 4.8.0
-- fix bug,private mount points were not created with proper permissions.

version 4.9.0
-- add support for unlocking cryfs(https://www.cryfs.org/) encrypted volumes in zuluMount.
-- various fixes and improvements

version 5.0.0
-- add support for creating LUKS volumes that only uses a detached header.The detached header will be created in the
   user home directory and the volume can not be unlocked without this detached header.The detached header can be
   reattached later on through zuluCrypt-gui->menu->Volumes->Restore Volume Header.
-- its now possible to create a shared mount point when unlocking a volume in zuluCrypt-gui
-- its now possible to unlock VeraCrypt volumes from favorite feature in zuluCrypt-gui
-- add complete French translation to both zuluCrypt-gui and zuluMount-gui
-- try to silently solve problems caused by other tools mounting zuluCrypt's encryption mapper.
-- add support for creating a "plain dm-crypt" volume at a "none zero offset".This type of volume is useful as a
   "poor man's version of a hidden volume feature in TrueCrypt and VeraCrypt".Best thing about this type of hidden
   volume is that the outer volume can be anything including an "exposed file system".Currently,only zuluMount-gui can
   open this type of volume by clicking "options" followed by "Set Volume Offset" on the mounting dialog prompt.
-- Qt5 is now the default Qt dependency.

version 5.0.1
-- languages can be changed without requiring a restart.
-- add ability to use custom icons. Icons can be changed in zuluCrypt-gui through "menu->options->select icons" and in
   zuluMount-gui through "menu->select icons". User specific icons can be added by placing them at
   "$INSTALL_PREFIX/icons/hicolor/48x48/apps". zuluCrypt-gui icons must be in "zuluCrypt.ICON_NAME.png" format and
   zuluMount-gui icons must be in "zuluMount.ICON_NAME.png" format.
-- zuluMount-gui can now unlock cryfs,encfs,gocryptfs and securefs based encrypted volumes.
-- add full support for German translation.

version 5.0.2
-- add support for unlocking ecryptfs volumes in zuluMount-gui(ecryptfs-simple tool must already be installed)
-- fix permission related problems in configuration files when running in mixed mode.

version 5.1.0
-- make it possible to unlock folder based encrypted volumes when running in mixed mode.
-- add ability in zuluCrypt-gui to unlock VeraCrypt volumes that use PIM value.
-- add ability in zuluCrypt-gui to unlock plain dm-crypt volumes that uses an offset.
-- add ability in zuluCrypt-gui to create plain dm-crypt volumes using user configurable crypto options.
-- add ability in zuluCrypt-gui to unlock plain dm-crypt volumes using user configurable crypto options.
-- add ability in zuluCrypt-gui to backup and restore VeraCrypt headers.
-- add ability in zuluCrypt-gui to change VeraCrypt volume key.
-- add ability in zuluCrypt-gui to create a VeraCrypt volume that uses a PIM value.
-- add ability in zuluMount-gui to unlock folder based encrypted volumes when running in mixed mode.

version 5.2.0
-- add ability to select a file manager to use to open mount points. A file manager can be set through
   zuluCrypt-gui->menu->options->set file manager.
-- dont run zuluCrypt-gui and zuluMount-gui from root's account when running in mixed mode.
-- add arabic translation.

version 5.3.0
-- fix a build time error when build with certain new compilers and a runtime crush when build with other newer compilers.
-- add more support for wayland sessions by not requiring GUI to run from root's account to perform some operations.
-- add support for creating LUKS2 volumes(libcryptsetup >=2.0.0 is required)
-- add support for unlocking of TrueCrypt and VeraCrypt volumes without mounting their file system.
   -- unlocking of a TrueCrypt volume is done by command: zuluCrypt-cli -O -d /dev/sdXX -t tcrypt
   -- unlocking of a VeraCrypt volume is done by command: zuluCrypt-cli -O -d /dev/sdXX -t vcrypt

version 5.4.0
-- fix a bug that caused a wrong password to be used when creating a TrueCrypt/VeraCrypt volume from zuluCrypt-gui.
   Easiest way to notice this was that a just created volume could not be unlocked.
-- fix a build issue on some distributions.

version 5.5.0
-- Add support for unlocking bitlocker volumes using dislocker(https://github.com/Aorimn/dislocker)
-- Fix a build issue on some distributions.
-- Add ability to create a plain dm-crypt volume at the end of a regular file(steganography).
-- Various fixes and improvements.

version 5.6.0
-- Add ability to create volume keys using YubiKey's challenge-response feature.
-- Add GUI options to clear dead mount points(these are unused mount folders located
   at /run/media/private/$USER). CLI users should call CLI components with "--clear-dead-mount-points"
-- Fix a race condition bug introduced in version 5.5.0 that prevented volumes from getting mounted
  under certain circumstances.

version 5.7.0
-- Fix a bug introduced in 5.6.0 that prevents unlocking PLAIN dm-crypt volume that use non default
   crypto options because the selection button in is zuluCrypt-gui always disabled.
-- Update French translations.
-- Dont resolve loop device paths to their backing file if they are partitioned.
-- Fix a bug that prevented restoring a LUKS2 volume header.
-- Identify authenticated luks2 volumes as luks2+.
-- Add support for creating authenticated luks2 volumes(the support in Currently in zuluCrypt-cli only).
-- Default to using 512bit keys when creating LUKS volumes.

version 5.7.1
-- Use cryptsetup instead of zuluplay to unlock TrueCrypt volumes if installed
   version of cryptsetup >= 1.6.0(released on January 14,2013).
-- Use cryptsetup instead of zuluplay to unlock VeraCrypt volumes if installed
   version of cryptsetup >= 1.6.7(released on March 23, 2015).
-- The two changes above will hopefully solve long standing problems around
    unlocking TrueCrypt/VeraCrypt volumes that use preboot authentication.
-- Use cryptsetup by default instead of dislocker to unlock BitLocker volumes
   if installed version of cryptsetup >= 2.3.0(released on February 3,2020).
   Users of cryptsetup >= 2.3.0 who prefer to use dislocker to unlock
   BitLocker volumes  should create a text file at "/etc/zuluCrypt/dislocker".
