Added qmake option to disable precompiled header
Disabled precompiled header on FreeBSD by default (closes #1943446) Use mlock() to protect session key git-svn-id: https://svn.code.sf.net/p/keepassx/code/trunk@201 b624d157-de02-0410-bad0-e51aec6abb33
This commit is contained in:
parent
35dc3772e3
commit
e47df76b56
|
@ -1741,9 +1741,8 @@ void KeyTransform::transform(quint8* src, quint8* dst, quint8* KeySeed, int roun
|
|||
KeyTransform* ktRight = new KeyTransform(&src[16], &dst[16], KeySeed, rounds);
|
||||
ktLeft->start();
|
||||
ktRight->start();
|
||||
while (ktLeft->isRunning() || ktRight->isRunning()){
|
||||
QThread::msleep(100);
|
||||
}
|
||||
ktLeft->wait();
|
||||
ktRight->wait();
|
||||
SHA256::hashBuffer(dst,dst,32);
|
||||
delete ktLeft;
|
||||
delete ktRight;
|
||||
|
|
|
@ -18,7 +18,10 @@
|
|||
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
|
||||
***************************************************************************/
|
||||
|
||||
|
||||
#ifdef Q_WS_X11
|
||||
#include <sys/mman.h>
|
||||
#include <limits.h>
|
||||
#endif
|
||||
|
||||
using namespace std;
|
||||
CArcFour SecString::RC4;
|
||||
|
@ -97,6 +100,17 @@ void SecString::overwrite(QString& str){
|
|||
void SecString::generateSessionKey(){
|
||||
CArcFour arc;
|
||||
unsigned char sessionkey[32];
|
||||
|
||||
#ifdef Q_WS_X11
|
||||
|
||||
#ifdef PAGESIZE
|
||||
mlock(sessionkey - sessionkey%PAGESIZE, 32);
|
||||
#else
|
||||
mlock(sessionkey, 32);
|
||||
#endif
|
||||
|
||||
#endif // Q_WS_X11
|
||||
|
||||
randomize(sessionkey,32);
|
||||
RC4.setKey(sessionkey,32);
|
||||
overwrite(sessionkey,32);
|
||||
|
|
19
src/src.pro
19
src/src.pro
|
@ -1,5 +1,5 @@
|
|||
|
||||
CONFIG = qt uic resources thread stl warn_off precompile_header
|
||||
CONFIG = qt uic resources thread stl warn_off
|
||||
QT += xml
|
||||
|
||||
DEPENDPATH += crypto dialogs export forms import lib translations res
|
||||
|
@ -17,6 +17,12 @@ else {
|
|||
CONFIG += release
|
||||
}
|
||||
|
||||
# lipo and freebsd cannot handle precompiled headers (yet)
|
||||
!isEqual(PRECOMPILED,1){
|
||||
macx : isEqual(ARCH,UNIVERSAL) : PRECOMPILED = 0
|
||||
freebsd-* : PRECOMPILED = 0
|
||||
}
|
||||
|
||||
win32 : QMAKE_WIN32 = 1
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
|
@ -78,9 +84,6 @@ macx {
|
|||
CONFIG += app_bundle
|
||||
isEqual(ARCH,UNIVERSAL){
|
||||
CONFIG += x86 ppc
|
||||
# lipo cannot handle precompiled headers (yet)
|
||||
CONFIG -= precompile_header
|
||||
QMAKE_CXXFLAGS += -include keepassx.h
|
||||
}
|
||||
isEqual(ARCH,INTEL): CONFIG += x86
|
||||
isEqual(ARCH,PPC): CONFIG += ppc
|
||||
|
@ -257,6 +260,12 @@ SOURCES += lib/UrlLabel.cpp \
|
|||
crypto/aestab.c \
|
||||
lib/AutoTypeTreeWidget.cpp
|
||||
|
||||
PRECOMPILED_HEADER = keepassx.h
|
||||
isEqual(PRECOMPILED,0) {
|
||||
QMAKE_CXXFLAGS += -include keepassx.h
|
||||
}
|
||||
else {
|
||||
CONFIG += precompile_header
|
||||
PRECOMPILED_HEADER = keepassx.h
|
||||
}
|
||||
|
||||
RESOURCES += res/resources.qrc
|
||||
|
|
Loading…
Reference in New Issue