With the whole NSA thing people tried to re-build identically looking binaries to the ones which truecrypt.org provides, but didn't succeed. So some think they might be compiled with back-doors which are not in the source code. -> So how compile on the latest Ubuntu version (I'm using UbuntuGNOME but that shouldn't matter)? I tried some tutorials for previous Ubuntu versions but they seem not to work any-more?
edit:
https://madiba.encs.concordia.ca/~x_decarn/truecrypt-binaries-analysis/ Now you might think "ok, we don't need to build", but: To build he used closed-source software and there are proof-of-concepts where a compromised compiler still put backdoors into the binary: 1. source without backdoors 2. binary identically to the reference-binary 3. binary contains still backdoors
edit2 (reply to post):
When using $ make -j 2 PKCS11_INC=$HOME/src/pkcs-11
I get:
... /usr/include/wx-2.8/wx/dynarray.h:669:5: note: in expansion of macro ‘_WX_DEFINE_TYPEARRAY_PTR’ _WX_DEFINE_TYPEARRAY_PTR(_wxArray##name, name, base, classdecl) ^ /usr/include/wx-2.8/wx/dynarray.h:655:5: note: in expansion of macro ‘WX_DEFINE_TYPEARRAY_WITH_DECL_PTR’ WX_DEFINE_TYPEARRAY_WITH_DECL_PTR(T, name, base, class WXDLLEXPORT) ^ /usr/include/wx-2.8/wx/dynarray.h:829:5: note: in expansion of macro ‘WX_DEFINE_EXPORTED_TYPEARRAY_PTR’ WX_DEFINE_EXPORTED_TYPEARRAY_PTR(T, name, wxBaseArrayPtrVoid) ^ /usr/include/wx-2.8/wx/bookctrl.h:26:1: note: in expansion of macro ‘WX_DEFINE_EXPORTED_ARRAY_PTR’ WX_DEFINE_EXPORTED_ARRAY_PTR(wxWindow *, wxArrayPages); ^ Linking truecrypt /usr/bin/ld: /home/user/src/truecrypt-7.1a-source/Volume/Volume.a(SecurityToken.o): undefined reference to symbol 'dlopen@@GLIBC_2.1' /lib/i386-linux-gnu/libdl.so.2: error adding symbols: DSO missing from command line collect2: error: ld returned 1 exit status make[1]: *** [truecrypt] Error 1 make: *** [all] Error 2 user@user-pc:~/src/truecrypt-7.1a-source$
when using $ make -j 2 PKCS11_INC=$HOME/src/pkcs-11 LIBS=-ldl
:
... Forms/VolumeSizeWizardPage.o: In function `TrueCrypt::VolumeSizeWizardPage::GetVolumeSize() const': VolumeSizeWizardPage.cpp:(.text._ZNK9TrueCrypt20VolumeSizeWizardPage13GetVolumeSizeEv+0x80): undefined reference to `TrueCrypt::StringConverter::ToUInt64(std::basic_string, std::allocator > const&)' Forms/VolumeSizeWizardPage.o: In function `TrueCrypt::VolumeSizeWizardPage::SetVolumeSize(unsigned long long)': VolumeSizeWizardPage.cpp:(.text._ZN9TrueCrypt20VolumeSizeWizardPage13SetVolumeSizeEy+0x8f): undefined reference to `TrueCrypt::StringConverter::FromNumber(unsigned long long)' Forms/WizardFrame.o: In function `TrueCrypt::WizardFrame::SetStep(int, bool)': WizardFrame.cpp:(.text._ZN9TrueCrypt11WizardFrame7SetStepEib+0xe6): undefined reference to `TrueCrypt::Event::Connect(TrueCrypt::EventConnectorBase const&)' collect2: error: ld returned 1 exit status make[1]: *** [truecrypt] Error 1 make: *** [all] Error 2 user@user-pc:~/src/truecrypt-7.1a-source$
(same without the make -j ...
parameter BTW)
edit3
Now it works, thanks user76204 and GEO:
$ sudo apt-get install build-essential nasm libfuse-dev wx-common wx2.8-headers libwxbase2.8-dev libwxsvg-dev libwxgtk2.8-0 libwxgtk2.8-dev
$ mkdir -p $HOME/src/pkcs-11
- put truecrypt sources to
/home/USERNAME/truecrypt-7.1a-source
- start building:
$ LIBS=-ldl make -j 2 PKCS11_INC=/home/USERNAME/src/pkcs-11/