|
|||||||||||||||||||||||
|
|||||||||||||||||||||||
|
Announcements
Want a new Job?
Chapters
Services
Feature Zones
|
Note: This is an unedited contribution. If this article is inappropriate,
needs attention or copies someone else's work without reference then please
Report This Article
IntroductionTrueCrypt is a free open-source disk encryption software. It is able to create a virtual encrypted disk within a file and mounts it as a real disk. The encryption is automatic, real-time (on-the-fly) and transparent. However, a major disadvantage of TrueCrypt and all other on-the-fly encryption software is the requirement of administrative privileges on the computers where they are used. Thus they will not be usable in places such as public libraries and internet cafes, where the computers are typically locked down and the users are given only limited privileges. The purpose of this software is to overcome this limitation of TrueCrypt by providing an interface, similar to compression and decompression software, where directories and files can be imported and exported easily from TrueCrypt containers. There are some debates on the merits of such software. Those in favor argue that it will make TrueCrypt truly portable. Those against it argue that it is a security breach to extract files stored in TrueCrypt containers to computers where you do not have control. I do not wish to partake in such debates. This software arises because of my own needs. I wish to transport my documents (which are not very confidential) in my thumbdrive but I do not wish others to be able to look at my documents if I accidentally lose my thumbdrive. Thus I need to encrypt my files and a good candidate to encrypt them is TrueCrypt. However, as I may need to extract the files onto other computers (which most likely will not be logged in as administrator), I will need a software which allows me to extract TrueCrypt files without requiring administrative privileges. A search on the net shows that it is possible to create such software and a proof-of-concept commandline software, OTFExplorer has been created by Josh Harris. However, the author did not wish to continue the project to build a GUI interface. This software picks up where Josh Harris left off. Main features
Main limitationsThe following limitations primarily arises because of the limitation of OTFExplorer.
UsageOpening a TrueCrypt container Importing directories/files into TrueCrypt container Exporting directories/files from TrueCrypt container Deleting directories/files from TrueCrypt container Select directories/files in TCExplorer and press Del key. Renaming directories/files from TrueCrypt container Opening a TrueCrypt container from commandline Opening a file in TrueCrypt container for editing or executionDouble click on the files to open. The files will first be extracted to a predefined temporary directory and then either opened using the associated program or if it is an executable file, it will be run. If the opened files were modified, the user will be asked whether he/she wishes to re-import the modified file into the TrueCrypt container. Viewing a file using the internal viewerRight-click on a file and choose "View with Internal Viewer". The file will be extracted to memory and shown in an internal viewer. This feature is useful if you do not wish to write any files to disk. However, the file may still remain in memory after the internal viewer is closed. Options
Points of InterestTCExplorer is built using wxWidgets. The source codes provide a good learning resource for drag and drop operations. Of particular interest is the development of customized wxIDropSource and wxDropSource classes (TCIDropSource and TCDropSource). STDMETHODIMP TCIDropSource::QueryContinueDrag(BOOL fEscapePressed,
DWORD grfKeyState)
{
if ( fEscapePressed )
return DRAGDROP_S_CANCEL;
// initialize ourself with the drag begin button
if ( m_grfInitKeyState == 0 ) {
m_grfInitKeyState = grfKeyState & (MK_LBUTTON | MK_RBUTTON | MK_MBUTTON);
}
if ( !(grfKeyState & m_grfInitKeyState) ) {
// button which started d&d released, go!
m_pDropSource->tcList_->Export(); // Export directories and files to temporary system directory.
return DRAGDROP_S_DROP;
}
return S_OK;
}
The above show the modifications to the wxIDropSource class. By adding codes before the return DRAGDROP_S_DROP; statement, TCExplorer is able to delay the extraction of files to the temporary directory until the user releases the mouse button. However, I do not know how to check whether the window where the user drop the files is able to receive the files or not. So even if the window is not able to receive the files, the files will still be extracted to the temporary directory. TCDropSource::TCDropSource(TCList *tcl,
const wxCursor &cursorCopy,
const wxCursor &cursorMove,
const wxCursor &cursorStop)
: wxDropSourceBase(cursorCopy, cursorMove, cursorStop), tcList_(tcl)
{
Init();
}
TCDropSource::TCDropSource(wxDataObject& data,
TCList *tcl,
const wxCursor &cursorCopy,
const wxCursor &cursorMove,
const wxCursor &cursorStop)
: wxDropSourceBase(cursorCopy, cursorMove, cursorStop), tcList_(tcl)
{
Init();
SetData(data);
}
The above show the main modification to the wxDropSource class. The two constructors are changed so that they will receive a pointer to the class which handles the export function. A side effect of using the wxIDropSource and wxDropSource classes is that TCExplorer can only be compiled for the Windows platform, even though it is using wxWidgets. In addition to the drag and drop operations, the source codes also provide numerous examples of directory operations in wxWidgets. The source codes are fairly well commented and the reader is invited to look at them to understand more of the inner workings of TCExplorer. Compiling the source codeA Code::Blocks configuration file is provided. You will need to download and install wxWidgets before you can compile TCExplorer. For more details on the required location of the wxWidgets libraries, please refer to the Code::Blocks configuration file. Known bugs
LicenseTCExplorer is released as public domain. This means that the source code is provided without any restrictions. The licence for OTFExplorer is included in the source code package. Future plansNone. TCExplorer has currently met all my personal needs so I will not be adding any new features in the near future (though from my updates since version 1.1, you can see that I do add new features if I find that they are easy to add :P). Since the source code is public domain, you are free to modify it to suit your needs. However, I would appreciate it if you could either send me any important modifications so that I can incorporate it into TCExplorer, or release the modifications yourself so that everyone can benefit from it. History
DisclaimerThe author does not guarantee that the software will work perfectly. Please use this software only on data that you can afford to lose. By downloading and using this software, you have implicitly agreed to be part of the guinea pig experiment to test the software for any bugs.
|
||||||||||||||||||||||