diff --git a/src/gui/TotpSetupDialog.cpp b/src/gui/TotpSetupDialog.cpp index 1d403a17c..875dfcfd0 100644 --- a/src/gui/TotpSetupDialog.cpp +++ b/src/gui/TotpSetupDialog.cpp @@ -29,6 +29,7 @@ TotpSetupDialog::TotpSetupDialog(QWidget* parent, Entry* entry) { m_ui->setupUi(this); setAttribute(Qt::WA_DeleteOnClose); + setWindowFlag(Qt::WindowContextHelpButtonHint, false); setFixedSize(sizeHint()); connect(m_ui->buttonBox, SIGNAL(rejected()), SLOT(close())); diff --git a/src/gui/TotpSetupDialog.ui b/src/gui/TotpSetupDialog.ui index 5088d8bbf..ab15b8ea8 100644 --- a/src/gui/TotpSetupDialog.ui +++ b/src/gui/TotpSetupDialog.ui @@ -163,7 +163,7 @@ 1 - 60 + 86400 30 diff --git a/src/totp/totp.cpp b/src/totp/totp.cpp index 82d9bb832..dc58f158d 100644 --- a/src/totp/totp.cpp +++ b/src/totp/totp.cpp @@ -114,7 +114,7 @@ QSharedPointer Totp::parseSettings(const QString& rawSettings, c // Bound digits and step settings->digits = qBound(1u, settings->digits, 10u); - settings->step = qBound(1u, settings->step, 60u); + settings->step = qBound(1u, settings->step, 86400u); // Detect custom settings, used by setup GUI if (settings->encoder.shortName.isEmpty() diff --git a/tests/TestTotp.cpp b/tests/TestTotp.cpp index b83e7d296..bb3b55dbd 100644 --- a/tests/TestTotp.cpp +++ b/tests/TestTotp.cpp @@ -59,6 +59,12 @@ void TestTotp::testParseSecret() QCOMPARE(settings->step, 30u); QCOMPARE(settings->algorithm, Totp::Algorithm::Sha512); + // Max TOTP step of 24-hours + secret.replace("period=30", "period=90000"); + settings = Totp::parseSettings(secret); + QVERIFY(!settings.isNull()); + QCOMPARE(settings->step, 86400u); + // KeeOTP Parsing secret = "key=HXDMVJECJJWSRBY%3d&step=25&size=8&otpHashMode=Sha256"; settings = Totp::parseSettings(secret);