rebuild DatabaseSettingsDlg
git-svn-id: https://svn.code.sf.net/p/keepassx/code/trunk@106 b624d157-de02-0410-bad0-e51aec6abb33
This commit is contained in:
parent
f3fd0c681c
commit
0e2725ee06
|
@ -396,4 +396,12 @@ public:
|
||||||
virtual bool createKeyFile(const QString& filename,int length=32, bool Hex=false)=0;
|
virtual bool createKeyFile(const QString& filename,int length=32, bool Hex=false)=0;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class IKdbSettings{
|
||||||
|
public:
|
||||||
|
virtual void setCryptAlgorithm(CryptAlgorithm algo)=0;
|
||||||
|
virtual CryptAlgorithm cryptAlgorithm()=0;
|
||||||
|
virtual unsigned int keyTransfRounds()=0;
|
||||||
|
virtual void setKeyTransfRounds(unsigned int rounds)=0;
|
||||||
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -48,7 +48,7 @@ void memcpyToLEnd32(char* src,const quint32* dst);
|
||||||
void memcpyToLEnd16(char* src,const quint16* dst);
|
void memcpyToLEnd16(char* src,const quint16* dst);
|
||||||
|
|
||||||
//! Implementation of the standard KeePassX database.
|
//! Implementation of the standard KeePassX database.
|
||||||
class StandardDatabase:public ICustomIcons,public IDatabase, public IFilePasswordAuth{
|
class StandardDatabase:public ICustomIcons,public IDatabase, public IFilePasswordAuth, public IKdbSettings{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
class StdGroup;
|
class StdGroup;
|
||||||
|
@ -160,6 +160,10 @@ public:
|
||||||
virtual QList<IEntryHandle*> search(IGroupHandle* Group,const QString& SearchString, bool CaseSensitve, bool RegExp,bool Recursive,bool* Fields);
|
virtual QList<IEntryHandle*> search(IGroupHandle* Group,const QString& SearchString, bool CaseSensitve, bool RegExp,bool Recursive,bool* Fields);
|
||||||
virtual QFile* file(){return File;}
|
virtual QFile* file(){return File;}
|
||||||
virtual bool changeFile(const QString& filename);
|
virtual bool changeFile(const QString& filename);
|
||||||
|
virtual void setCryptAlgorithm(CryptAlgorithm algo){Algorithm=algo;}
|
||||||
|
virtual CryptAlgorithm cryptAlgorithm(){return Algorithm;}
|
||||||
|
virtual unsigned int keyTransfRounds(){return KeyTransfRounds;}
|
||||||
|
virtual void setKeyTransfRounds(unsigned int rounds){KeyTransfRounds=rounds;}
|
||||||
|
|
||||||
virtual QList<IEntryHandle*> entries();
|
virtual QList<IEntryHandle*> entries();
|
||||||
virtual QList<IEntryHandle*> entries(IGroupHandle* Group);
|
virtual QList<IEntryHandle*> entries(IGroupHandle* Group);
|
||||||
|
|
|
@ -401,9 +401,11 @@ yarrow256_force_reseed(struct yarrow256_ctx *ctx)
|
||||||
struct yarrow256_ctx WeakCtx;
|
struct yarrow256_ctx WeakCtx;
|
||||||
struct yarrow256_ctx StrongCtx;
|
struct yarrow256_ctx StrongCtx;
|
||||||
struct yarrow_source WeakSrc[2];
|
struct yarrow_source WeakSrc[2];
|
||||||
|
struct yarrow_source StrongSrc[2];
|
||||||
|
|
||||||
void initYarrow(){
|
void initYarrow(){
|
||||||
yarrow256_init(&WeakCtx,2,WeakSrc);
|
yarrow256_init(&WeakCtx,2,WeakSrc);
|
||||||
|
yarrow256_init(&StrongCtx,2,StrongSrc);
|
||||||
quint8 buffer[100];
|
quint8 buffer[100];
|
||||||
srand(time(0));
|
srand(time(0));
|
||||||
for(int i=0;i<100;i++)
|
for(int i=0;i<100;i++)
|
||||||
|
@ -416,5 +418,14 @@ void initYarrow(){
|
||||||
}
|
}
|
||||||
|
|
||||||
void randomize(void* buffer, unsigned int length){
|
void randomize(void* buffer, unsigned int length){
|
||||||
|
if(!yarrow256_is_seeded(&StrongCtx))
|
||||||
yarrow256_random(&WeakCtx,length,(quint8*)buffer);
|
yarrow256_random(&WeakCtx,length,(quint8*)buffer);
|
||||||
|
else
|
||||||
|
yarrow256_random(&StrongCtx,length,(quint8*)buffer);
|
||||||
|
}
|
||||||
|
|
||||||
|
void strongRandomize(void* buffer, unsigned int length){
|
||||||
|
Q_ASSERT(yarrow256_is_seeded(&StrongCtx));
|
||||||
|
for(int i=0; i<length;i++)
|
||||||
|
yarrow256_random(&StrongCtx,1,(quint8*)buffer+i);
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,10 +17,11 @@
|
||||||
* Free Software Foundation, Inc., *
|
* Free Software Foundation, Inc., *
|
||||||
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
|
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
#include <qcombobox.h>
|
|
||||||
#include <qlineedit.h>
|
#include <QPainter>
|
||||||
#include <qmessagebox.h>
|
#include <QComboBox>
|
||||||
//Added by qt3to4:
|
#include <QLineEdit>
|
||||||
|
#include <QMessageBox>
|
||||||
#include <QShowEvent>
|
#include <QShowEvent>
|
||||||
#include "main.h"
|
#include "main.h"
|
||||||
#include "DatabaseSettingsDlg.h"
|
#include "DatabaseSettingsDlg.h"
|
||||||
|
@ -29,66 +30,51 @@
|
||||||
CDbSettingsDlg::CDbSettingsDlg(QWidget* parent,IDatabase* db, bool modal, Qt::WFlags fl)
|
CDbSettingsDlg::CDbSettingsDlg(QWidget* parent,IDatabase* db, bool modal, Qt::WFlags fl)
|
||||||
: QDialog(parent,fl)
|
: QDialog(parent,fl)
|
||||||
{
|
{
|
||||||
setupUi(this);
|
setupUi(this);
|
||||||
database=db;
|
database=dynamic_cast<IKdbSettings*>(db);
|
||||||
connect( ButtonOK, SIGNAL( clicked() ), this, SLOT( OnOK() ) );
|
createBanner(&BannerPixmap,Icon_Settings32x32,tr("Settings"),width());
|
||||||
connect( ButtonCancel, SIGNAL( clicked() ), this, SLOT( OnCancel() ) );
|
ComboAlgo->insertItem(0,tr("AES(Rijndael): 256 Bit (default)"));
|
||||||
|
ComboAlgo->insertItem(1,tr("Twofish: 256 Bit"));
|
||||||
|
ComboAlgo->setCurrentIndex(database->cryptAlgorithm()); //Achtung: AlgoID muss gleich dem ComboBox Index sein!
|
||||||
|
EditRounds->setText(QString::number(database->keyTransfRounds()));
|
||||||
|
connect( ButtonOK, SIGNAL( clicked() ), this, SLOT( OnOK() ) );
|
||||||
|
connect( ButtonCancel, SIGNAL( clicked() ), this, SLOT( OnCancel() ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
CDbSettingsDlg::~CDbSettingsDlg()
|
CDbSettingsDlg::~CDbSettingsDlg()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void CDbSettingsDlg::showEvent(QShowEvent *event){
|
void CDbSettingsDlg::paintEvent(QPaintEvent *event){
|
||||||
//@NICHTVERGESSEN
|
QDialog::paintEvent(event);
|
||||||
/*
|
QPainter painter(this);
|
||||||
if(event->spontaneous()==false){
|
painter.setClipRegion(event->region());
|
||||||
createBanner(Banner,Icon_Settings32x32,tr("Settings"));
|
painter.drawPixmap(QPoint(0,0),BannerPixmap);
|
||||||
ComboAlgo->insertItem(0,tr("AES(Rijndael): 256 Bit (default)"));
|
|
||||||
ComboAlgo->insertItem(1,tr("Twofish: 256 Bit"));
|
|
||||||
ComboAlgo->setCurrentIndex(database->CryptoAlgorithmus); //Achtung: AlgoID muss gleich dem ComboBox Index sein!
|
|
||||||
EditRounds->setText(QString::number(database->KeyEncRounds));
|
|
||||||
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void CDbSettingsDlg::OnCancel()
|
void CDbSettingsDlg::OnCancel()
|
||||||
{
|
{
|
||||||
done(0);
|
done(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void CDbSettingsDlg::OnOK()
|
void CDbSettingsDlg::OnOK()
|
||||||
{
|
{
|
||||||
if(EditRounds->text()==""){
|
if(EditRounds->text()==""){
|
||||||
QMessageBox::warning(NULL,tr("Warning"),tr("Please determine the number of encryption rounds."),tr("OK"));
|
QMessageBox::warning(NULL,tr("Warning"),tr("Please determine the number of encryption rounds."),tr("OK"));
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
bool valid;
|
||||||
|
int rounds=EditRounds->text().toUInt(&valid,10);
|
||||||
|
if(valid==false){
|
||||||
|
QMessageBox::warning(NULL,tr("Error"),tr("'%1' is not valid integer value.").arg(EditRounds->text()),tr("OK"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if(rounds==0){
|
||||||
|
QMessageBox::warning(NULL,tr("Error"),tr("The number of encryption rounds have to be greater than 0."),tr("OK"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
database->setKeyTransfRounds(rounds);
|
||||||
|
database->setCryptAlgorithm((CryptAlgorithm)ComboAlgo->currentIndex());
|
||||||
|
done(1);
|
||||||
}
|
}
|
||||||
bool valid;
|
|
||||||
int rounds=EditRounds->text().toUInt(&valid,10);
|
|
||||||
if(valid==false){
|
|
||||||
QMessageBox::warning(NULL,tr("Error"),tr("'%1' is not valid integer value.").arg(EditRounds->text()),tr("OK"));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if(rounds==0){
|
|
||||||
QMessageBox::warning(NULL,tr("Error"),tr("The number of encryption rounds have to be greater than 0."),tr("OK"));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
//@NICHTVERGESSEN
|
|
||||||
//database->KeyEncRounds=rounds;
|
|
||||||
//database->CryptoAlgorithmus=ComboAlgo->currentIndex();
|
|
||||||
|
|
||||||
done(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*$SPECIALIZATION$*/
|
|
||||||
|
|
||||||
|
|
||||||
//#include "databasesettingsdlg.moc"
|
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
* Copyright (C) 2005 by Tarek Saidi *
|
* Copyright (C) 2005-2006 by Tarek Saidi *
|
||||||
* tarek@linux *
|
* tarek.saidi@arcor.de *
|
||||||
* *
|
* *
|
||||||
* This program is free software; you can redistribute it and/or modify *
|
* This program is free software; you can redistribute it and/or modify *
|
||||||
* it under the terms of the GNU General Public License as published by *
|
* it under the terms of the GNU General Public License as published by *
|
||||||
|
@ -17,39 +17,30 @@
|
||||||
* Free Software Foundation, Inc., *
|
* Free Software Foundation, Inc., *
|
||||||
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
|
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
#ifndef DBSETTINGSDLG_H
|
#ifndef DBSETTINGSDLG_H
|
||||||
#define DBSETTINGSDLG_H
|
#define DBSETTINGSDLG_H
|
||||||
|
|
||||||
#include "ui_DatabaseSettingsDlg.h"
|
#include "ui_DatabaseSettingsDlg.h"
|
||||||
#include "main.h"
|
#include "main.h"
|
||||||
#include "Database.h"
|
#include "Database.h"
|
||||||
//Added by qt3to4:
|
#include <QPaintEvent>
|
||||||
#include <QShowEvent>
|
|
||||||
|
|
||||||
class CDbSettingsDlg : public QDialog, public Ui_dbsettingdlg_base
|
class CDbSettingsDlg : public QDialog, public Ui_dbsettingdlg_base
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
public:
|
||||||
public:
|
|
||||||
CDbSettingsDlg(QWidget* parent,IDatabase* db, bool modal = FALSE, Qt::WFlags fl = 0 );
|
CDbSettingsDlg(QWidget* parent,IDatabase* db, bool modal = FALSE, Qt::WFlags fl = 0 );
|
||||||
~CDbSettingsDlg();
|
~CDbSettingsDlg();
|
||||||
virtual void showEvent(QShowEvent *);
|
virtual void paintEvent(QPaintEvent *);
|
||||||
/*$PUBLIC_FUNCTIONS$*/
|
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
/*$PUBLIC_SLOTS$*/
|
|
||||||
|
|
||||||
protected:
|
|
||||||
/*$PROTECTED_FUNCTIONS$*/
|
|
||||||
|
|
||||||
protected slots:
|
|
||||||
/*$PROTECTED_SLOTS$*/
|
|
||||||
|
|
||||||
public slots:
|
|
||||||
virtual void OnCancel();
|
virtual void OnCancel();
|
||||||
virtual void OnOK();
|
virtual void OnOK();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
IDatabase* database;
|
IKdbSettings* database;
|
||||||
|
QPixmap BannerPixmap;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -60,22 +60,6 @@
|
||||||
<string>Algorithm:</string>
|
<string>Algorithm:</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QPushButton" name="pushButton1" >
|
|
||||||
<property name="geometry" >
|
|
||||||
<rect>
|
|
||||||
<x>390</x>
|
|
||||||
<y>0</y>
|
|
||||||
<width>20</width>
|
|
||||||
<height>20</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text" >
|
|
||||||
<string>?</string>
|
|
||||||
</property>
|
|
||||||
<property name="shortcut" >
|
|
||||||
<string/>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QComboBox" name="ComboAlgo" >
|
<widget class="QComboBox" name="ComboAlgo" >
|
||||||
<property name="geometry" >
|
<property name="geometry" >
|
||||||
<rect>
|
<rect>
|
||||||
|
@ -110,22 +94,6 @@
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QLabel" name="Banner" >
|
|
||||||
<property name="geometry" >
|
|
||||||
<rect>
|
|
||||||
<x>0</x>
|
|
||||||
<y>0</y>
|
|
||||||
<width>440</width>
|
|
||||||
<height>51</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="pixmap" >
|
|
||||||
<pixmap>image0</pixmap>
|
|
||||||
</property>
|
|
||||||
<property name="scaledContents" >
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QPushButton" name="ButtonOK" >
|
<widget class="QPushButton" name="ButtonOK" >
|
||||||
<property name="geometry" >
|
<property name="geometry" >
|
||||||
<rect>
|
<rect>
|
||||||
|
|
|
@ -436,12 +436,15 @@ void KeepassMainWindow::OnFileNewKxdb(){
|
||||||
|
|
||||||
|
|
||||||
void KeepassMainWindow::OnFileOpen(){
|
void KeepassMainWindow::OnFileOpen(){
|
||||||
QString filename=QFileDialog::getOpenFileName(this,tr("Open Database..."),QDir::homePath(),"*.kdb");
|
QFileDialog FileDlg(this,tr("Open Database..."),QDir::homePath());
|
||||||
if(filename!=QString()){
|
FileDlg.setFilters(QStringList()<< tr("KeePass Databases (*.kdb)")<< tr("All Files (*)"));
|
||||||
|
FileDlg.setFileMode(QFileDialog::ExistingFile);
|
||||||
|
FileDlg.setAcceptMode(QFileDialog::AcceptOpen);
|
||||||
|
if(!FileDlg.exec())return;
|
||||||
|
if(!FileDlg.selectedFiles().size())return;
|
||||||
if(FileOpen)
|
if(FileOpen)
|
||||||
if(!closeDatabase())return;
|
if(!closeDatabase())return;
|
||||||
openDatabase(filename);
|
openDatabase(FileDlg.selectedFiles()[0]);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void KeepassMainWindow::OnFileClose(){
|
void KeepassMainWindow::OnFileClose(){
|
||||||
|
|
Loading…
Reference in New Issue