Release truecrypt port


No problem. An older version was ported a while back, but I figured that I would port the new version.
 
No problem. An older version was ported a while back, but I figured that I would port the new version.

Hey, Can you tell me how you did the port?


I haven't coded (excluding perl/sh) since the Amiga days,


but the panda has got me interested again.


I setup a Ubuntu based dev toolchain and tested it worked with


the SDL sample image display program.


I compiled truecrypt from source for my Ubuntu box and it works


under Ubuntu, but I'm not quite sure how to re-compile with


the panda as the target.


I changed the default Makefile to use the arm-gcc and got


a partial compile which bombed out at the "fuse" stage, but


I know I have missed some ENV settings.


Can you post a copy of the Makefile you used for the panda port?


I'd like to see the "right" includes and ENV settings I


should be using.


cheers,


ID
 
I don't know anything about coding, but this alone is a big reason to get a Pandora. It's surprising the development rate of this platform when things are more open. The Nokia N900 Truecrypt version doesn't even have a GUI and only read encryption from older version.


So I can connect my external Truecrypt hdd to the Pandora and read the files, wow. But first I need to get a Pandora.
 
Last edited by a moderator:
I don't know anything about coding, but this alone is a big reason to get a Pandora. It's surprising the development rate of this platform when things are more open. The Nokia N900 Truecrypt version doesn't even have a GUI and only read encryption from older version.


So I can connect my external Truecrypt hdd to the Pandora and read the files, wow. But first I need to get a Pandora.

Yeh - I'm already doing it. It's not 100% click and go, as you have to do a modprobe fuse.


But I want to build my own pnd and since I use truecrypt over different platforms,


I'd like to be able to build it myself when there's a new version.


Regarding the rate of porting, it's fantastic considering there must be < 2000 end users


with the hardware in their hands.


There is so much potential in the Panda, I hope the new price doesn't put off new adapters.


I have shown mine to unix devs here, who ooh, but then ahh at the new price.


ID
 
No problem. An older version was ported a while back, but I figured that I would port the new version.

Hey, Can you tell me how you did the port?


I haven't coded (excluding perl/sh) since the Amiga days,


but the panda has got me interested again.


I setup a Ubuntu based dev toolchain and tested it worked with


the SDL sample image display program.


I compiled truecrypt from source for my Ubuntu box and it works


under Ubuntu, but I'm not quite sure how to re-compile with


the panda as the target.


I changed the default Makefile to use the arm-gcc and got


a partial compile which bombed out at the "fuse" stage, but


I know I have missed some ENV settings.


Can you post a copy of the Makefile you used for the panda port?


I'd like to see the "right" includes and ENV settings I


should be using.


cheers,


ID
I'm glad I checked this. Anyway, I used Yactfeau to compile Truecrypt, which set all of the environment variables for me.


When I diffed the directory I used, against the original source, this was the only difference:



Code:
--- truecrypt-7.0a-source1/Makefile     2011-02-03 00:23:12 -0800

+++ truecrypt-7.0a-source/Makefile      2010-09-05 07:32:10 -0700

@@ -292,7 +292,7 @@

        rm -rf "$(WX_BUILD_DIR)"

        mkdir -p "$(WX_BUILD_DIR)"

        @echo Configuring wxWidgets library...

-       cd "$(WX_BUILD_DIR)" && "pndconfigure" $(WX_CONFIGURE_FLAGS) >/dev/null

+       cd "$(WX_BUILD_DIR)" && "$(WX_ROOT)/configure" $(WX_CONFIGURE_FLAGS) >/d

ev/null


        @echo Building wxWidgets library...

        cd "$(WX_BUILD_DIR)" && $(MAKE)



I don't even know if that worked. Maybe my .bash_history will help, but I doubt it.



Code:
cd wxrelease/

# Came up with this by mashing pndconfigure and the wx configure command in the Makefile together.

../../wxGTK-2.8.11/configure --host=arm-angstrom-linux-gnueabi --prefix /home/tommy/Pandora/truecrypt/  --enable-unicode -disable-shared --disable-dependency-tracking --disable-compat26 --enable-exceptions --enable-std_string --enable-dataobj --enable-mimetype --disable-protocol --disable-protocols --disable-url --disable-ipc --disable-sockets --disable-fs_inet --disable-ole --disable-docview --disable-clipboard --disable-help --disable-html --disable-mshtmlhelp --disable-htmlhelp --disable-mdi --disable-metafile --disable-webkit --disable-xrc --disable-aui --disable-postscript --disable-printarch --disable-arcstream --disable-fs_archive --disable-fs_zip --disable-tarstream --disable-zipstream --disable-animatectrl --disable-bmpcombobox --disable-calendar --disable-caret --disable-checklst --disable-collpane --disable-colourpicker --disable-comboctrl --disable-datepick --disable-display --disable-dirpicker --disable-filepicker --disable-fontpicker --disable-grid  --disable-dataviewctrl --disable-listbook --disable-odcombobox --disable-sash  --disable-searchctrl --disable-slider --disable-splitter --disable-togglebtn --disable-toolbar --disable-tbarnative --disable-treebook --disable-toolbook --disable-tipwindow --disable-popupwin --disable-commondlg --disable-aboutdlg --disable-coldlg --disable-finddlg --disable-fontdlg --disable-numberdlg --disable-splash --disable-tipdlg --disable-progressdlg --disable-wizarddlg --disable-miniframe --disable-tooltips --disable-splines --disable-palette --disable-richtext --disable-dialupman --disable-debugreport --disable-filesystem --disable-graphics_ctx --disable-sound --disable-mediactrl --disable-joystick --disable-apple_ieee --disable-gif --disable-pcx --disable-tga --disable-iff --disable-gif --disable-pnm --without-expat --without-libtiff --without-libjpeg --without-libpng -without-regex --without-zlib --disable-debug_flag --disable-debug_gdb --disable-debug_info

make

cd ..

PKCS11_INC=/home/tommy/Pandora/truecrypt/pkcs-h make NOASM=1 WXSTATIC=1

ls

cd Release/

ls

cd ..

# Trying to find which Makefile is using the wrong strip command

man grep

grep -R strip

grep -r strip

less Build/Include/Makefile.inc 

find -name Make*

find -name Make*|less

less ./Common/Makefile

find -name Make*|grep strip

find -name Make*|grep -i strip

find -name Make*|xargs -v grep -i strip

find -name Make*|xargs --verbose grep -i strip

find -name Make*|xargs --verbose grep strip

PKCS11_INC=/home/tommy/Pandora/truecrypt/pkcs-h make NOASM=1 WXSTATIC=1


I know that there was a bug where Truecrypt wouldn't compile if I disabled ASM because it called an ASM function to determine some CPU functionality (i.e. accelerated AES) at runtime. However, since I knew that that didn't exist, I was able to replace it with a 0 and it worked.


Part of the reason that I can't help much is because I'm in Windows, and I don't feel like booting Linux to replicate what I did right now.
 
No problem. An older version was ported a while back, but I figured that I would port the new version.

Hey, Can you tell me how you did the port?


I haven't coded (excluding perl/sh) since the Amiga days,


but the panda has got me interested again.


I setup a Ubuntu based dev toolchain and tested it worked with


the SDL sample image display program.


I compiled truecrypt from source for my Ubuntu box and it works


under Ubuntu, but I'm not quite sure how to re-compile with


the panda as the target.


I changed the default Makefile to use the arm-gcc and got


a partial compile which bombed out at the "fuse" stage, but


I know I have missed some ENV settings.


Can you post a copy of the Makefile you used for the panda port?


I'd like to see the "right" includes and ENV settings I


should be using.


cheers,


ID
I'm glad I checked this. Anyway, I used Yactfeau to compile Truecrypt, which set all of the environment variables for me.


When I diffed the directory I used, against the original source, this was the only difference:



Code:
--- truecrypt-7.0a-source1/Makefile     2011-02-03 00:23:12 -0800

+++ truecrypt-7.0a-source/Makefile      2010-09-05 07:32:10 -0700

@@ -292,7 +292,7 @@

        rm -rf "$(WX_BUILD_DIR)"

        mkdir -p "$(WX_BUILD_DIR)"

        @echo Configuring wxWidgets library...

-       cd "$(WX_BUILD_DIR)" && "pndconfigure" $(WX_CONFIGURE_FLAGS) >/dev/null

+       cd "$(WX_BUILD_DIR)" && "$(WX_ROOT)/configure" $(WX_CONFIGURE_FLAGS) >/d

ev/null


        @echo Building wxWidgets library...

        cd "$(WX_BUILD_DIR)" && $(MAKE)



I don't even know if that worked. Maybe my .bash_history will help, but I doubt it.



Code:
cd wxrelease/

# Came up with this by mashing pndconfigure and the wx configure command in the Makefile together.

../../wxGTK-2.8.11/configure --host=arm-angstrom-linux-gnueabi --prefix /home/tommy/Pandora/truecrypt/  --enable-unicode -disable-shared --disable-dependency-tracking --disable-compat26 --enable-exceptions --enable-std_string --enable-dataobj --enable-mimetype --disable-protocol --disable-protocols --disable-url --disable-ipc --disable-sockets --disable-fs_inet --disable-ole --disable-docview --disable-clipboard --disable-help --disable-html --disable-mshtmlhelp --disable-htmlhelp --disable-mdi --disable-metafile --disable-webkit --disable-xrc --disable-aui --disable-postscript --disable-printarch --disable-arcstream --disable-fs_archive --disable-fs_zip --disable-tarstream --disable-zipstream --disable-animatectrl --disable-bmpcombobox --disable-calendar --disable-caret --disable-checklst --disable-collpane --disable-colourpicker --disable-comboctrl --disable-datepick --disable-display --disable-dirpicker --disable-filepicker --disable-fontpicker --disable-grid  --disable-dataviewctrl --disable-listbook --disable-odcombobox --disable-sash  --disable-searchctrl --disable-slider --disable-splitter --disable-togglebtn --disable-toolbar --disable-tbarnative --disable-treebook --disable-toolbook --disable-tipwindow --disable-popupwin --disable-commondlg --disable-aboutdlg --disable-coldlg --disable-finddlg --disable-fontdlg --disable-numberdlg --disable-splash --disable-tipdlg --disable-progressdlg --disable-wizarddlg --disable-miniframe --disable-tooltips --disable-splines --disable-palette --disable-richtext --disable-dialupman --disable-debugreport --disable-filesystem --disable-graphics_ctx --disable-sound --disable-mediactrl --disable-joystick --disable-apple_ieee --disable-gif --disable-pcx --disable-tga --disable-iff --disable-gif --disable-pnm --without-expat --without-libtiff --without-libjpeg --without-libpng -without-regex --without-zlib --disable-debug_flag --disable-debug_gdb --disable-debug_info

make

cd ..

PKCS11_INC=/home/tommy/Pandora/truecrypt/pkcs-h make NOASM=1 WXSTATIC=1

ls

cd Release/

ls

cd ..

# Trying to find which Makefile is using the wrong strip command

man grep

grep -R strip

grep -r strip

less Build/Include/Makefile.inc 

find -name Make*

find -name Make*|less

less ./Common/Makefile

find -name Make*|grep strip

find -name Make*|grep -i strip

find -name Make*|xargs -v grep -i strip

find -name Make*|xargs --verbose grep -i strip

find -name Make*|xargs --verbose grep strip

PKCS11_INC=/home/tommy/Pandora/truecrypt/pkcs-h make NOASM=1 WXSTATIC=1


I know that there was a bug where Truecrypt wouldn't compile if I disabled ASM because it called an ASM function to determine some CPU functionality (i.e. accelerated AES) at runtime. However, since I knew that that didn't exist, I was able to replace it with a 0 and it worked.


Part of the reason that I can't help much is because I'm in Windows, and I don't feel like booting Linux to replicate what I did right now.

I got it past the compilation stage, but then got stuck again at the linking.


By coincidence I had downloaded Yactfeau just before you posted. I was using the


original djwillis chain, but there's a fair bit of sidework to track down libs


and headers. Maybe Yactfeau will sort that.


I know what you mean about the dual-boot, but after 10 years of dual booting Win/Lin


this month I finally killed my Lin partitions and went with Win7-64b as my main boot running


VirtualBox to host Ubuntu.


I got fed up having to reboot when I wanted to check something on the other OS, and so


far this seems a pretty good solution. I just got a PhenomII 4x, and I tend to use Ubuntu


for more routine unix stuff, with Windows for graphics and media work, and it was time


to rebuild the box.


Running a vbox ubuntu doesn't seem to lose me any functionality, and makes switching


between win/lin a simple screen select. Seamless mode is pretty nice too.


It also means I can have a CentOS VM available and each OS takes up less


disk space than a fixed partition, and they can share the same /home virtual disk.


Now, if only I had the spare time to play!


ID
 
No problem. An older version was ported a while back, but I figured that I would port the new version.

That was me :)


I know I'm a bit late on replying here, but I just re-joined the Pandora world now and plan to actively port some productivity tools.


Good to see that someone cared about a TrueCrypt update :)


This was the first thing I had on my current Todo list.


With version 6.3a of TrueCrypt, which I ported last year, I had some problems at first.


Here I will provide my notes about that, in case these problems still persist and someone (TJSomething?) can make use of my notes.


Unfortunately I lost my devel directory from back then, so I really only have those notes and my fading memory:


Problem 1:


"Operation not permitted": writing ./.TrueCrypt/Configuration.xml


--> I wrote a wrapper script, which generates that file on first start from a default configuration file.


Problem 2:


"Operation not permitted" on writing the lock file. (FAT-FS Problem)


--> I had redefined home directory to some other directory in some way (probably the appdata directory? Don't remember). My note said: Don't redefine home directory.


Problem 3:


Module "fuse" is needed. Truecrypt only works after doing "modprobe fuse".


What I did to solve that issue: Wrote a wrapper script, which makes module fuse load automatically on request:


- generates file "fuse" in /etc/modutils, which contains the string "fuse"


- gksudo update-modules (rewrites /etc/modules file)


In case you like to see that wrapper script, I (or you) need to disassemble that PND I created and extract the script.


Since I am at the very beginning of re-creating my Pandora on-board devel tool environment, I can't easily do this right now.


Here is my PND:


http://repo.openpandora.org/?page=detail&app=TrueCrypt


Daniel
 
Last edited by a moderator:
Ever since hotfix 6 (full flash) I've been getting an annoying error about permissions on a lock file, both with the previous version and also now with the new one. Truecrypt still works though: just annoying getting the message everytime.


BTW, big thanks to both of the devs who ported both versions! I use TrueCrypt a lot on both Windows and Pandora!
 
Ever since hotfix 6 (full flash) I've been getting an annoying error about permissions on a lock file, both with the previous version and also now with the new one. Truecrypt still works though: just annoying getting the message everytime.


BTW, big thanks to both of the devs who ported both versions! I use TrueCrypt a lot on both Windows and Pandora!

I keep ending up with an unencrypted version of my volume in my home directory.


I also had the LOCK file problem and had to resort to grabing the truecrypt.sh file from the pnd and editing the last line to


sudo ./truecrypt


then saving that sh file into the TrueCrypt appsdata folder.
 
Interesting...


Does starting the PND now ask you for a password, or does the PND system start ./truecrypt with root permissions without asking for a password?


The latter would be convenient, but it would be a huge security problem.


It would open the door for severe malware PNDs...


Daniel
 
Interesting...


Does starting the PND now ask you for a password, or does the PND system start ./truecrypt with root permissions without asking for a password?


The latter would be convenient, but it would be a huge security problem.


It would open the door for severe malware PNDs...


Daniel

Well without modifying the sh it still mostly worked but that lock error was quite annoying. It NEVER asked for a password as my username is in the sudoers file anyway. But it would not be able to access the Lock file.


Adding sudo did fix that. Security? Possibly an issue but it will take a new port of TrueCrypt 7 and some figuring.


But at least you now know what I did. Works now and I am happy as I use TC on the Windows machine as well.


Now as long as I never forget my TrueCrypt passwords........
 
Hi Mr Rob,


does TrueCrypt-hmc work all right as expected now?


No, I have never done performance metrics, but I use it all the time, and I never experienced any performance problems. However I use it mainly for small files, so for me there is not much of a problem anyway, even if encryption or decryption slow down reading/writing of the files.


I think, if it is really too slow for someone, choosing a different encryption algorithm at container creation might help.


IIRC by default, containers are encrypted using two cascaded encryptions. Using only one would probably have a positive effect on performance.


Daniel
 
Last edited by a moderator:
Actually, I just have compiled VeraCrypt and I'm quite displeased with it. First, it's not actually woking - the decryption process seems to go well, but some later code throws an exception, so the volume is never actually mounted. Perhaps that's just me not configuring wxWidgets right, so I don't count it as an argument.

Second, it is painfully slow with key derivation (minutes of waiting). I don't quite see the point of improving security this way: if the key derivation algorithm is not cracked, it doesn't matter too much how many thousand years the brute force attack takes exactly, it'll still be unfeasible. If, however, the algorithm itself is broken some day, it won't matter how many times you apply it.

Staying in front of the printer for 2 full minutes waiting for a PDF document to open wouldn't make me feel cool at all.

Finally, while VeraCrypt is based on audited TrueCrypt code, it is not audited itself.
 
Last edited by a moderator:
Back
Top