EAEScrypt SOURCE CODE --------------------- The source code of EAEScrypt is organized in a variety of source files and folders. Most of the source code is free under the GNU Lesser General Public License. The source code which is under a license other than the GNU Lesser General Public License has its conditions of use specified in it. The source code was written so that it can be compiled on both Linux and Windows environments. To be compiled is necessary to use the g++ compiler. Some adjustments in the Makefile may be needed to adapt it to the specific conditions of each operating system. The Windows version of EAESCrypt has been compiled using the MinGW - Minimalist GNU for Windows, (http://www.mingw.org), using its default libraries. The linux-like commands at the Windows command console are provided by the GNU Utilities for Win32 (http://unxutils.sourceforge.net). For a Linux compilation, you must include the NCURSES library, that you can find at http://www.gnu.org/software/ncurses File: Makefile This file contains the compilation directives, which are used by the "make" command to generate the program. File: eaescrypt.cpp File: eaescrypt.h These files contain the main() function that is executed when the program is invoked. File: cmdoptions.cpp File: cmdoptions.h These files contain the class that analyzes and treats each of the command line parameter received. File: encrypt.cpp This file contains the function that handles the command "encrypt". File: arkencrypt.cpp File: arkencrypt.h These files contain the class that reads the input entry and generates the encrypted output file. File: decrypt.cpp This file contains the function that handles the command "decrypt". File: arkdecrypt.cpp File: arkdecrypt.h These files contain the class that reads an encrypted file and generates the decrypted output files and folders. File: eaesstream.cpp File: eaesstream.h These files contain the classes that streams input and output data to/from an encrypted file. File: managekey.cpp This file contains the function that handles the command "keymgr". File: info.cpp This file contains the function that handles the command "info". File: uuid.cpp File: uuid.h These files contain the class that generates Universally Unique IDentifiers (UUID). File: help.c This file contains the functions that generate the help texts. File: version.h This file contains the definitions of the program name and version. Folder: eaes This folder contains the source code of the AES algorithm to encrypt and decrypt data. File: eaes\aestypes.cpp File: eaes\multresult.c File: eaes\aestypes.h These files contain the classes that implement the data types specific to the AES algorithm. File: eaes\eaes.cpp File: eaes\eaes.h These files contain functions that implement the AES algorithm for encrypting and decrypting data. Folder: keymgr This folder contains the source code of the Keys Database manager. File: keymgr\keygen.cpp File: keymgr\keygen.h These files contain the class that generates random keys. File: keymgr\keymgr.cpp File: keymgr\keymgr.h These files contain the class that manages the Keys Database. Folder: rc4file This folder contains the source code that manages RC4 Formatted Files. File: rc4file\rc4file.cpp File: rc4file\rc4file.h File: rc4file\ark.h These files contain the class that reads from and writes to RC4 Formatted Files. Folder: sha This folder contains the source code of the SHA hash algorithms. File: sha\sha-private.h File: sha\sha.h File: sha\sha224-256.c File: sha\sha384-512.c These files contains the functions that generates SHA hashs. Folder: secrm This folder contains the source code for the secure file remove utility. File: secrm\Makefile This file contains the compilation directives, which are used by the "make" command to generate the secure file deletion utility. File: secrm\secrm.cpp File: secrm\secrm.h These files contains the main() function of the secure file deletion. File: secrm\secrmhelp.c This file contains the help text generator of the secure file deletion utility. File: secrm\secrmoptions.cpp File: secrm\secrmoptions.h These files contain the class that analyzes and treats each of the command line parameter received for the secure file deletion utility. Folder: objs This folder contains the object files generated in compilation time. Folder: direntry This folder contains the cource code to retrieve directories. File: direntry\direntry.cpp File: direntry\direntry.h These files contain the classes that retrieve the directory structure as well as the files inside this structure. Folder: installer This folder contaisn the instalation package of EAESCrypt in Windows 7. File: installer\bin Folder that receives the binary files of the installer. File: installer\bin\eaescrypt_1_20.exe EAESCrypt Version 1.20 Utility. It's used to decrypt files generated by older versions of EAESCrypt. File: installer\icon Folder that receives the context menu icons. File: installer\Makefile This file contains the compilation directives, which are used by the "make" command to generate the instalation package. File: installer\setup.cpp File: installer\setup.h These files contain the instalation utility for the current version of EAESCrypt. File: installer\setup_1_20.cpp File: installer\setup_1_20.h These files contain the instalation utility for the Compatibility Package. File: installer\versionfile.cpp File: installer\versionfile.h These files contain the class that manages the version file. Folder: miniz This folder contains the high performance data compression library. File: miniz\miniz.c File: miniz\miniz.h These files contain the Deflate/Inflate compression library with zlib-compatible API, ZIP archive reading/writing, PNG writing. DESCRIPTION OF THE KEYS DATABASE FILES -------------------------------------- The Keys Database files are stored at the folder defined by the environment variable KEYPATH. The files are the following: File: key_.dat This is a text file that contains the total number of keys stored in the Keys database. File: key_default.dat This is a text file that contains the index of the default key of the database. This is the key used to encrypt a file when no key references are provided. File: key_uuid.dat This is a text file that contains the UUID of every key stored in the keys Database. This file is used to search for a key in the database. The position the UUID occupied in this file is the same as the corresponding key index. Files: key.key The key value for the index position. The value of is the key index and is given in the hexadecimal base. The files are stored in the RC4 file format.