qCInfo(lcCse()) << "Returning the certificate";
qCInfo(lcCse()) << output;
+ writeMnemonic(account);
+ writeKeyPair(account);
+
sendSignRequestCSR(account, std::move(keyPair), output);
}
job->start();
}
+bool ClientSideEncryption::writeKeyPair(const AccountPtr &account,
+ const PKey &keyPair)
+{
+ const QString kck = AbstractCredentials::keychainKey(
+ account->url().toString(),
+ account->credentials()->user() + e2e_private,
+ account->id()
+ );
+
+ auto *job = new WritePasswordJob(Theme::instance()->appName());
+ job->setInsecureFallback(false);
+ job->setKey(kck);
+ job->setBinaryData(_privateKey);
+ connect(job, &WritePasswordJob::finished, [](Job *incoming) {
+ Q_UNUSED(incoming);
+ qCInfo(lcCse()) << "Private key stored in keychain";
+ });
+ job->start();
+}
+
void ClientSideEncryption::encryptPrivateKey(const AccountPtr &account)
{
QStringList list = WordList::getRandomWords(12);
private:
void generateCSR(const AccountPtr &account, PKey keyPair);
void sendSignRequestCSR(const AccountPtr &account, PKey keyPair, const QByteArray &csrContent);
+ [[nodiscard]] bool writeKeyPair(const AccountPtr &account,
+ const PKey &keyPair);
[[nodiscard]] bool checkPublicKeyValidity(const AccountPtr &account) const;
[[nodiscard]] bool checkServerPublicKeyValidity(const QByteArray &serverPublicKeyString) const;