Increase Argon2 warning threshold and set parallelism default value to number of available processors

This commit is contained in:
Janek Bevendorff 2018-01-10 00:49:04 +01:00 committed by Jonathan White
parent c51585c279
commit d327c16904
No known key found for this signature in database
GPG Key ID: 440FC65F2E0C6E01
2 changed files with 6 additions and 3 deletions

View File

@ -21,7 +21,6 @@
#include <argon2.h>
#include "format/KeePass2.h"
#include "crypto/CryptoHash.h"
/**
* KeePass' Argon2 implementation supports all parameters that are defined in the official specification,
@ -34,7 +33,7 @@ Argon2Kdf::Argon2Kdf()
: Kdf::Kdf(KeePass2::KDF_ARGON2)
, m_version(0x13)
, m_memory(1 << 16)
, m_parallelism(2)
, m_parallelism(static_cast<quint32>(QThread::idealThreadCount()))
{
m_rounds = 1;
}

View File

@ -23,6 +23,7 @@
#include <QMessageBox>
#include <QPushButton>
#include <QThread>
#include "core/Global.h"
#include "core/FilePath.h"
@ -118,6 +119,9 @@ void DatabaseSettingsWidget::load(Database* db)
kdfChanged(kdfIndex);
}
// properly initialize parallelism spin box (may be overwritten by actual KDF values)
m_uiEncryption->parallelismSpinBox->setValue(QThread::idealThreadCount());
// Setup kdf parameters
auto kdf = m_db->kdf();
m_uiEncryption->transformRoundsSpinBox->setValue(kdf->rounds());
@ -134,7 +138,7 @@ void DatabaseSettingsWidget::save()
{
// first perform safety check for KDF rounds
auto kdf = KeePass2::uuidToKdf(Uuid(m_uiEncryption->kdfComboBox->currentData().toByteArray()));
if (kdf->uuid() == KeePass2::KDF_ARGON2 && m_uiEncryption->transformRoundsSpinBox->value() > 1000) {
if (kdf->uuid() == KeePass2::KDF_ARGON2 && m_uiEncryption->transformRoundsSpinBox->value() > 10000) {
QMessageBox warning;
warning.setIcon(QMessageBox::Warning);
warning.setWindowTitle(tr("Number of rounds too high"));