Skip to content

Commit 50586ce

Browse files
committed
Enable password encryption
Signed-off-by: Raul Metsma <raul@metsma.ee>
1 parent f8b65fb commit 50586ce

3 files changed

Lines changed: 14 additions & 17 deletions

File tree

client/CryptoDoc.cpp

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,9 @@
2929
#include "dialogs/FileDialog.h"
3030
#include "dialogs/WarningDialog.h"
3131

32-
#include <QtCore/QDebug>
3332
#include <QtCore/QDir>
3433
#include <QtCore/QFileInfo>
3534
#include <QtCore/QRegularExpression>
36-
#include <QtCore/QtEndian>
3735
#include <QtCore/QThread>
3836
#include <QtCore/QUrl>
3937
#include <QtCore/QUrlQuery>
@@ -114,7 +112,7 @@ struct CryptoDoc::Private
114112
writer_last_error = writer->getLastErrorStr();
115113
std::filesystem::remove(std::filesystem::path(fileName.toStdString()));
116114
}
117-
qDebug() << "Encryption result: " << result << " " << QString::fromStdString(writer->getLastErrorStr());
115+
qCDebug(CRYPTO) << "Encryption result: " << result << " " << QString::fromStdString(writer->getLastErrorStr());
118116
delete writer;
119117
ofs.close();
120118
if (result == libcdoc::OK) {
@@ -332,9 +330,8 @@ bool CryptoDoc::canDecrypt(const QSslCertificate &cert) {
332330
if (!d->reader)
333331
return false;
334332
QByteArray der = cert.toDer();
335-
libcdoc::Lock lock;
336333
return d->reader->getLockForCert(
337-
std::vector<uint8_t>(der.cbegin(), der.cend())) >= 0;
334+
std::vector<uint8_t>(der.cbegin(), der.cend())) >= 0;
338335
}
339336

340337
void CryptoDoc::clear( const QString &file )
@@ -456,22 +453,21 @@ bool CryptoDoc::encrypt( const QString &filename, const QString& label, const QB
456453
}
457454
// I think the correct semantics is to fail if container is already encrypted
458455
if(d->reader) return false;
459-
if (secret.isEmpty()) {
460-
// Encrypt for address list
461-
if(d->keys.empty())
462-
{
463-
WarningDialog::create()
464-
->withTitle(tr("Failed to encrypt document"))
465-
->withText(tr("No keys specified"))
466-
->open();
467-
return false;
468-
}
469-
} else {
456+
if (!secret.isEmpty()) {
470457
// Encrypt with symmetric key
471458
d->label = label;
472459
d->crypto.secret.assign(secret.cbegin(), secret.cend());
473460
d->kdf_iter = kdf_iter;
474461
}
462+
// Encrypt for address list
463+
else if(d->keys.empty())
464+
{
465+
WarningDialog::create()
466+
->withTitle(tr("Failed to encrypt document"))
467+
->withText(tr("No keys specified"))
468+
->open();
469+
return false;
470+
}
475471
libcdoc::result_t result = d->encrypt();
476472
d->label.clear();
477473
d->crypto.secret.clear();

client/QPKCS11.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
#include "dialogs/PinPopup.h"
2929

3030
#include <QtCore/QDebug>
31+
#include <QtCore/QtEndian>
3132

3233
#include <cdoc/utils/memory.h>
3334

client/widgets/ContainerPage.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -332,7 +332,7 @@ void ContainerPage::transition(CryptoDoc *container, const QSslCertificate &cert
332332
if (hasUnsupported)
333333
emit warning({UnsupportedCDocWarning});
334334
ui->leftPane->setModel(container->documentModel());
335-
updatePanes(container->state(), nullptr);
335+
updatePanes(container->state(), container);
336336
}
337337

338338
void ContainerPage::transition(DigiDoc* container)

0 commit comments

Comments
 (0)