mirror of
https://github.com/keepassxreboot/keepassxc.git
synced 2025-07-25 15:55:38 -04:00
Merge branch 'release/2.4.1' into develop
This commit is contained in:
commit
1f28dc6013
57 changed files with 626 additions and 303 deletions
|
@ -78,7 +78,8 @@ bool Kdbx3Reader::readDatabaseImpl(QIODevice* device,
|
|||
QByteArray realStart = cipherStream.read(32);
|
||||
|
||||
if (realStart != m_streamStartBytes) {
|
||||
raiseError(tr("Wrong key or database file is corrupt."));
|
||||
raiseError(tr("Invalid credentials were provided, please try again.\n"
|
||||
"If this reoccurs, then your database file may be corrupt."));
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
@ -71,7 +71,8 @@ bool Kdbx4Reader::readDatabaseImpl(QIODevice* device,
|
|||
// clang-format off
|
||||
QByteArray hmacKey = KeePass2::hmacKey(m_masterSeed, db->transformedMasterKey());
|
||||
if (headerHmac != CryptoHash::hmac(headerData, HmacBlockStream::getHmacKey(UINT64_MAX, hmacKey), CryptoHash::Sha256)) {
|
||||
raiseError(tr("Wrong key or database file is corrupt. (HMAC mismatch)"));
|
||||
raiseError(tr("Invalid credentials were provided, please try again.\n"
|
||||
"If this reoccurs, then your database file may be corrupt.") + " " + tr("(HMAC mismatch)"));
|
||||
return false;
|
||||
}
|
||||
HmacBlockStream hmacStream(device, hmacKey);
|
||||
|
|
|
@ -1028,10 +1028,8 @@ bool KdbxXmlReader::readBool()
|
|||
|
||||
QDateTime KdbxXmlReader::readDateTime()
|
||||
{
|
||||
static QRegularExpression b64regex("^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$");
|
||||
QString str = readString();
|
||||
|
||||
if (b64regex.match(str).hasMatch()) {
|
||||
if (Tools::isBase64(str.toLatin1())) {
|
||||
QByteArray secsBytes = QByteArray::fromBase64(str.toUtf8()).leftJustified(8, '\0', true).left(8);
|
||||
qint64 secs = Endian::bytesToSizedInt<quint64>(secsBytes, KeePass2::BYTEORDER);
|
||||
return QDateTime(QDate(1, 1, 1), QTime(0, 0, 0, 0), Qt::UTC).addSecs(secs);
|
||||
|
|
|
@ -372,7 +372,8 @@ KeePass1Reader::testKeys(const QString& password, const QByteArray& keyfileData,
|
|||
}
|
||||
|
||||
if (!cipherStream) {
|
||||
raiseError(tr("Wrong key or database file is corrupt."));
|
||||
raiseError(tr("Invalid credentials were provided, please try again.\n"
|
||||
"If this reoccurs, then your database file may be corrupt."));
|
||||
}
|
||||
|
||||
return cipherStream.take();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue