Handle cipher errors in TransformKeyBenchmarkThread.

This commit is contained in:
Felix Geyer 2015-05-09 23:38:04 +02:00
parent e0d4b4b625
commit 4362c3ea38
2 changed files with 8 additions and 2 deletions

View file

@ -130,7 +130,10 @@ void DatabaseSettingsWidget::reject()
void DatabaseSettingsWidget::transformRoundsBenchmark() void DatabaseSettingsWidget::transformRoundsBenchmark()
{ {
QApplication::setOverrideCursor(QCursor(Qt::WaitCursor)); 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(); QApplication::restoreOverrideCursor();
} }

View file

@ -186,7 +186,10 @@ void TransformKeyBenchmarkThread::run()
t.start(); t.start();
do { do {
Q_UNUSED(cipher.processInPlace(key, 100)); if (!cipher.processInPlace(key, 100)) {
m_rounds = -1;
return;
}
m_rounds += 100; m_rounds += 100;
} while (t.elapsed() < m_msec); } while (t.elapsed() < m_msec);
} }