From 4362c3ea38ac68af126adf7816b049bb3dea3809 Mon Sep 17 00:00:00 2001 From: Felix Geyer Date: Sat, 9 May 2015 23:38:04 +0200 Subject: [PATCH] Handle cipher errors in TransformKeyBenchmarkThread. --- src/gui/DatabaseSettingsWidget.cpp | 5 ++++- src/keys/CompositeKey.cpp | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/gui/DatabaseSettingsWidget.cpp b/src/gui/DatabaseSettingsWidget.cpp index bba11f9aa..007c44a08 100644 --- a/src/gui/DatabaseSettingsWidget.cpp +++ b/src/gui/DatabaseSettingsWidget.cpp @@ -130,7 +130,10 @@ void DatabaseSettingsWidget::reject() void DatabaseSettingsWidget::transformRoundsBenchmark() { QApplication::setOverrideCursor(QCursor(Qt::WaitCursor)); - m_ui->transformRoundsSpinBox->setValue(CompositeKey::transformKeyBenchmark(1000)); + int rounds = CompositeKey::transformKeyBenchmark(1000); + if (rounds != -1) { + m_ui->transformRoundsSpinBox->setValue(rounds); + } QApplication::restoreOverrideCursor(); } diff --git a/src/keys/CompositeKey.cpp b/src/keys/CompositeKey.cpp index 4fae5f915..a0f2373c8 100644 --- a/src/keys/CompositeKey.cpp +++ b/src/keys/CompositeKey.cpp @@ -186,7 +186,10 @@ void TransformKeyBenchmarkThread::run() t.start(); do { - Q_UNUSED(cipher.processInPlace(key, 100)); + if (!cipher.processInPlace(key, 100)) { + m_rounds = -1; + return; + } m_rounds += 100; } while (t.elapsed() < m_msec); }