TODO
* sector data create encrypted_data on demand
* tread safety
  - libbde_key_protector functions ?
* add unlock function?
* deprecate use of open return 0 in favor of is locked function?
* add support for passing key directly to library
  - test if keys are valid ?
  - what about issue with key bit size
  - info handle (check if tweak_key is not 0) when diffuser is specified
* update manuals
* metadata
  - compare the metadata values ?
  - check metadata number_of_volume_header_sectors ?
* error tolerance
  - add handling of BDE volumes with corrupt metadata, e.g. file header
* debug print more volume header info
* check debug output alignment
* check TODOs

* pybde
  - add set keys function

Optimizations
* pass values 32-bit to libcaes

Library
* add support for smart card + pin?
* add support for TPM ?

Test suite:
* add options for
  - key data
  - clear key
  - startup key (bek file)
  - partial encrypted volume
* add verify test case
* test images: for Windows Vista, Windows 7, To Go, Windows 8
* python get version
* python read

Tools:
* bdeinfo
  - print more metadata ?
* bdeexport
  - create tool to export decrypted BDE volume to RAW file?
* bdemount
  - implement native MacOS-X version

Format:
* validation
* TPM encoded VMK ?
* VMK date time - change password on USB encrypted drive
* what is entry type 0x000b ?
* why does Windows hide the last 4096 bytes of the volume?

20161101
* Worked on tests

20160119
* updated setup.py

20160108
* updated dependencies

20160101
* 2016 update

20151227
* updated dependencies

20151216
* worked on splitting encryption method and copy
* worked on AES-XTS support

20150905
* updated dependencies
* code clean up

20150723
* worked on tests

20150721
* worked on signature check

20150720
* worked on tests

20150204
* added correction for volume size being 1 sector short

20150124
* applied updates

20150106
* 2015 update

20141226
* changes for updated dependencies

20141222
* worked on Python 3 support
* worked on tests

20141205
* worked on test scripts
* worked on thread-safety

20141130
* code clean up

20141120
* code clean up
* removed libbde_volume_read_random
* fixed pybde open close test
* pybde added get encryption method functionality

20141028
* changes for deployment
* bug fix in Python-bindings

20141023
* changes for deployment

20141017
* changes for deployment

20141013
* worked on utility scripts

20140928
* removed README.macosx
* changes for project site move
* updated utility scripts
* updates for latest libfdata

20140731
* bug fix in Python bindings

20140728
* small change in bdemount for Dokan support

20140727
* updated dependencies
* updated msvscpp files
* fixes for FreeBSD 8 compilation
* worked on bdemount

20140629
* small improvements to error reporting
* compression method is now forced to effective 16-bits

20140607
* worked on tests
* updated msvscpp files

20140531
* updated dependencies
* worked on Python bindings
* added is locked function

20140405
* worked on setup.py

20140404
* worked on tests

20140403
* worked on exposing metadata
* worked on Python bindings

20140401
* worked on exposing metadata
* worked on Python bindings

20140331
* worked on exposing metadata

20140330
* worked on Python bindings
* worked on tests
* moved password hashes to password keep

20140112
* 2014 update
* updated dependencies

20131211
* worked on Python bindings
* worked on exposing metadata via bdeinfo
* updated msvscpp files

20131205
* updated dependencies

20130908
* updated dependencies
* added libcthreads build support
* updated msvscpp files
* bug fixes
* code clean up

20130729
* updated dependencies
* pybde fixes for >2G file objects in BFIO glue code

20130716
* worked on git support
* updated dependencies

20130703
* fixed some typos

20130624
* fix for dealing with padding in FVE metadata block

20130422
* updated dependencies
* updated pybde
* fix in dpkg files for python binding

20130412
* updated README files
* updated dependencies
* added tests directory

20130331
* updated dependencies
* code clean up
* pybde update

20130310
* updated dependencies
* added Package Maker files

20130113
* 2013 update
* update dependencies
* updated msvscpp files
* updated pybde

20121123
* pybde: code clean up

20121110
* worked on Python-bindings (pybde)

20121109
* worked on set keys

20121108
* updated dependencies
* worked on set keys

20120915
* added -X option to bdemount to pass sub system options
* updated bdemount man page

20120912
* updated dependecies
* changes for libcdata update

20120807
* updated dependecies

20120721
* added libcsplit
* updated dependecies
* updated msvscpp files
* switched library order in tools
* fixed issue in spec file

20120520
* libfdata update
* code clean up in bdetools

20120518
* updates for Windows 8 BDE volume

20120511
* fixes for dpkg files

20120510
* small changes
* worked on msvscpp files

20120509
* updated dependecies
* added bdemount destroy function
* remove + 1 from volume size calculation, does not add up for
  volume-only storage media

20120310
* updated libnotify, libsystem

20120225
* fix for libfuse in spec file

20120208
* fix in dpkg/rules for include files

20120116
* 2012 update

20111218
* updated libcstring, libsystem, libfdata, libfvalue
* added libfcache

20111124
* updated libfdata

20111118
* code clean up

20111117
* code clean up
* updated libcstring, libsystem, libfdatetime, libfvalue, libhmac, libfguid,
  libfdata

20111102
* updated m4 files
* updated libcstring, libsystem, libuna, libbfio, libfdatetime, libfvalue,
  libhmac

20111022
* updated libfdatetime

20111020
* updated README.static
* combined recovery and user password iteration code

20111012
* update for Cygwin static executable support
* update for libfuse detection

20111011
* implemented OSXFuse support

20111009
* updated pc and spec file
* changes to libcaes for WINAPI build
* added password support

20111008
* updated common
* updated libhmac, libsystem, libuna, libfdatetime
* updated msvscpp files

20111007
* updated configure.ac and m4 files

20111003
* worked on libcaes

20111002
* updated configure
* added geteuid and getegid check

20110925
* updated msvscpp files
* fixes for WINAPI build

20110921
* preparations for release
* updated libbfio - added support for device file size
* updated libhmac

20110918
* preparations for release

20110830
* worked on support for startup key

20110829
* worked on support for startup key
* updated configure

20110828
* updated libbfio

20110826
* worked on support for partial encrypted volumes

20110825
* worked on clear key support
* worked on support for partial encrypted volumes

20110824
* worked on Vista support

20110823
* updated libbfio, libfvalue

20110822
* remove seek end volume size detection to rely on metadata
* small changes to configure for fuse

20110821
* worked on handling metadata blocks
  - fix for BitLocker To Go
* fix for openssl EVP
* updated libhmac
* code clean up
* added codepage
* bdemount now daemonizes
* improved libfuse detection by configure
* worked on manuals
* open now distinguishes between failure and invalid keys
* the library no longer stores the binary recovery key but its SHA256 hash
* worked on password support
* updated msvscpp build files
* worked on WINAPI build

20110819
* worked on handling metadata blocks

20110818
* updated libbfio
* code clean up
* added msvscpp build files
* worked on WINAPI build

20110817
* worked on fuse mount

20110816
* updated libbfio
* worked on fuse mount

20110812
* worked on fuse mount

20110811
* worked on libbfio file range IO handle for bdemount
* libbfio code clean up
* added info handle

20110810
* worked on encryption functions

20110807
* worked on AES functions

20110806
* updated libhmac - bug fixes for Solaris
* updated libsystem, libfvalue, 
* created work around for openssl EVP issues
  - currently ignoring the output of Final function
* cleaned up some TODOs

20110805
* worked on reading sector data
* worked on BitLocker ToGo support

20110804
* worked on reading sector data

20110803
* added recovery password option to bdeinfo
* worked on reading sector data
* worked on AES functions
* added metadata entry type and value type debug functions
* worked on FVEK support
* worked on diffuser

20110801
* configure clean up
* updated libhmac
* worked on reading sector data
* worked on AES functions

20110722
* added bytes per sector support in volume header
* added microseconds to filetime output
* created metadata structure to store header and entries

20110721
* worked on encryption
* worked on sector vector and cache

20110720
* worked on encryption

20110719
* worked on encryption

20110718
* changes for: warning: AC_LANG_CONFTEST: no AC_LANG_SOURCE call detected in body
* updated libsystem, libuna, libbfio, libfvalue, libhmac, libfdata,
  libfdatetime, libfguid

20110715
* worked on initial version

20110627
* added libhmac
* updated configure.ac to support libhmac
* replaced libbde_sha.[ch] by libhmac

20110624
* worked on SHA256 functions

20110623
* worked on AES functions
* worked on SHA256 functions

20110622
* worked on AES functions

20110620
* worked on AES functions

20110619
* worked on initial version

20110612
* worked on initial version

20110610
* worked on initial version

20110604
* worked on initial version

20110601
* worked on storing metadata runtime

20110531
* worked on encryption
  - recovery password support
* added SHA256 detection to configure

20110530
* added libfvalue
* worked on encryption
  - recovery password support

20110529
* renamed to library to libbde
* updated configure.ac
* updated common, libcstring, liberror, libnotify, libsystem, libbfio, libuna
* added encryption method debug function
* worked on encrpyption
  - basic encryption functions

20110527
* worked on initial version

20110323
* worked on initial version

20110322
* renamed library to libvblde
* worked on initial version

20110321
* worked on initial version

20110316
* initial version

