mirror of
https://github.com/keepassxreboot/keepassxc.git
synced 2025-08-17 02:31:15 -04:00
Add sharing of groups between databases
* Add source folder keeshare for sharing with corresponding define WITH_XC_KEESHARE * Move common crypto parts to src/crypto/ssh * Extended OpenSSHKey * Move filewatching to own file (currently in two related classes DelayedFileWatcher and BulkFileWatcher) * Small improvements for style and code in several classes * Sharing is secured using RSA-Keys which are generated on demand * Publisher signs the container using their private key * Client can verify the signed container and choose to decline an import, import only once or trust the publisher and automatically import all data of this source henceforth * Integration of settings into Group-Settings, Database-Settings and Application-Settings * Introduced dependency QuaZip as dependency to allow combined export of key container and the (custom format) certificate
This commit is contained in:
parent
c1e9f45df9
commit
eca9c658f4
106 changed files with 5828 additions and 503 deletions
|
@ -80,13 +80,12 @@ int SymmetricCipherGcrypt::gcryptMode(SymmetricCipher::Mode mode)
|
|||
}
|
||||
}
|
||||
|
||||
void SymmetricCipherGcrypt::setErrorString(gcry_error_t err)
|
||||
void SymmetricCipherGcrypt::setError(const gcry_error_t& err)
|
||||
{
|
||||
const char* gcryptError = gcry_strerror(err);
|
||||
const char* gcryptErrorSource = gcry_strsource(err);
|
||||
|
||||
m_errorString =
|
||||
QString("%1/%2").arg(QString::fromLocal8Bit(gcryptErrorSource), QString::fromLocal8Bit(gcryptError));
|
||||
m_error = QString("%1/%2").arg(QString::fromLocal8Bit(gcryptErrorSource), QString::fromLocal8Bit(gcryptError));
|
||||
}
|
||||
|
||||
bool SymmetricCipherGcrypt::init()
|
||||
|
@ -99,7 +98,7 @@ bool SymmetricCipherGcrypt::init()
|
|||
gcry_cipher_close(m_ctx);
|
||||
error = gcry_cipher_open(&m_ctx, m_algo, m_mode, 0);
|
||||
if (error != 0) {
|
||||
setErrorString(error);
|
||||
setError(error);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -112,7 +111,7 @@ bool SymmetricCipherGcrypt::setKey(const QByteArray& key)
|
|||
gcry_error_t error = gcry_cipher_setkey(m_ctx, m_key.constData(), m_key.size());
|
||||
|
||||
if (error != 0) {
|
||||
setErrorString(error);
|
||||
setError(error);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -131,7 +130,7 @@ bool SymmetricCipherGcrypt::setIv(const QByteArray& iv)
|
|||
}
|
||||
|
||||
if (error != 0) {
|
||||
setErrorString(error);
|
||||
setError(error);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -154,7 +153,7 @@ QByteArray SymmetricCipherGcrypt::process(const QByteArray& data, bool* ok)
|
|||
}
|
||||
|
||||
if (error != 0) {
|
||||
setErrorString(error);
|
||||
setError(error);
|
||||
*ok = false;
|
||||
} else {
|
||||
*ok = true;
|
||||
|
@ -176,7 +175,7 @@ bool SymmetricCipherGcrypt::processInPlace(QByteArray& data)
|
|||
}
|
||||
|
||||
if (error != 0) {
|
||||
setErrorString(error);
|
||||
setError(error);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -197,7 +196,7 @@ bool SymmetricCipherGcrypt::processInPlace(QByteArray& data, quint64 rounds)
|
|||
error = gcry_cipher_decrypt(m_ctx, rawData, size, nullptr, 0);
|
||||
|
||||
if (error != 0) {
|
||||
setErrorString(error);
|
||||
setError(error);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
@ -206,7 +205,7 @@ bool SymmetricCipherGcrypt::processInPlace(QByteArray& data, quint64 rounds)
|
|||
error = gcry_cipher_encrypt(m_ctx, rawData, size, nullptr, 0);
|
||||
|
||||
if (error != 0) {
|
||||
setErrorString(error);
|
||||
setError(error);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
@ -221,13 +220,13 @@ bool SymmetricCipherGcrypt::reset()
|
|||
|
||||
error = gcry_cipher_reset(m_ctx);
|
||||
if (error != 0) {
|
||||
setErrorString(error);
|
||||
setError(error);
|
||||
return false;
|
||||
}
|
||||
|
||||
error = gcry_cipher_setiv(m_ctx, m_iv.constData(), m_iv.size());
|
||||
if (error != 0) {
|
||||
setErrorString(error);
|
||||
setError(error);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -258,7 +257,7 @@ int SymmetricCipherGcrypt::blockSize() const
|
|||
return blockSizeT;
|
||||
}
|
||||
|
||||
QString SymmetricCipherGcrypt::errorString() const
|
||||
QString SymmetricCipherGcrypt::error() const
|
||||
{
|
||||
return m_errorString;
|
||||
return m_error;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue