mirror of
https://github.com/keepassxreboot/keepassxc.git
synced 2025-12-04 15:39:34 +01:00
Add Polkit Quick Unlock Support
Closes #5991 Closes #3337 - Support fingerprint readers on Linux Polkit allows for authentication of many means, including fingerprint scanning. Furthermore, a common interface for Quick Unlocking has been implemented, and has been replaced throughout to make implementing other quick unlock strategies easier. Refactor QuickUnlock to use UUID stored in headers. This is a new feature using the KDBX 4 standard to store a randomly generated UUID in the public headers of the database. This enables identification of KDBX file without relying on path or filename and will eventually support persistent Quick Unlock.
This commit is contained in:
committed by
Jonathan White
parent
ddd2fcecea
commit
f93adaa854
@@ -113,6 +113,8 @@ bool Database::open(QSharedPointer<const CompositeKey> key, QString* error)
|
||||
* Unless `readOnly` is set to false, the database will be opened in
|
||||
* read-write mode and fall back to read-only if that is not possible.
|
||||
*
|
||||
* If key is provided as null, only headers will be read.
|
||||
*
|
||||
* @param filePath path to the file
|
||||
* @param key composite key for unlocking the database
|
||||
* @param error error message in case of failure
|
||||
@@ -996,3 +998,14 @@ void Database::stopModifiedTimer()
|
||||
{
|
||||
QMetaObject::invokeMethod(&m_modifiedTimer, "stop");
|
||||
}
|
||||
|
||||
QUuid Database::publicUuid()
|
||||
{
|
||||
|
||||
if (!publicCustomData().contains("KPXC_PUBLIC_UUID")) {
|
||||
publicCustomData().insert("KPXC_PUBLIC_UUID", QUuid::createUuid().toRfc4122());
|
||||
markAsModified();
|
||||
}
|
||||
|
||||
return QUuid::fromRfc4122(publicCustomData()["KPXC_PUBLIC_UUID"].toByteArray());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user