Page Menu
Home
GnuPG
Search
Configure Global Search
Log In
Files
F34504784
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Size
2 KB
Subscribers
None
View Options
diff --git a/client/rootcagenerator/truststore_linux.cpp b/client/rootcagenerator/truststore_linux.cpp
index b214957..b0852dc 100644
--- a/client/rootcagenerator/truststore_linux.cpp
+++ b/client/rootcagenerator/truststore_linux.cpp
@@ -1,76 +1,49 @@
// SPDX-FileCopyrightText: 2024 g10 code GmbH
// SPDX-Contributor: Carl Schwan <carl.schwan@gnupg.com>
// SPDX-License-Identifier: GPL-2.0-or-later
#include "truststore_linux.h"
#include "controller.h"
#include <QFileInfo>
#include <QProcess>
#include <QStandardPaths>
#include <KAuth/ExecuteJob>
#include <unistd.h>
using namespace Qt::Literals::StringLiterals;
using namespace KAuth;
-std::unique_ptr<QProcess> commandWithSudo(const QStringList &command)
-{
- Q_ASSERT(!command.isEmpty());
-
- if (geteuid() == 0) {
- auto process = std::make_unique<QProcess>();
- process->start(command[0], command.sliced(1));
- return process;
- }
- if (QStandardPaths::findExecutable(u"sudo"_s).isEmpty()) {
- qWarning() << "Warning: \"sudo\" is not available, and mkcert is not running as root. The (un)install operation might fail. ⚠️";
- auto process = std::make_unique<QProcess>();
- process->start(command[0], command.sliced(1));
- return process;
- }
-
- auto commandWithPrompt = command;
- commandWithPrompt.prepend(u"--"_s);
- commandWithPrompt.prepend(u"--prompt=Sudo password:"_s);
-
- qWarning().noquote() << "sudo" << commandWithPrompt.join(u' ');
-
- auto process = std::make_unique<QProcess>();
- process->start(u"sudo"_s, commandWithPrompt);
- return process;
-}
-
LinuxTrustStore::LinuxTrustStore()
{
}
QString LinuxTrustStore::systemTrustFilename(const Controller &controller) const
{
return controller.caUniqueName().replace(u" "_s, u"_"_s);
}
bool LinuxTrustStore::install(const Controller &controller)
{
QVariantMap args;
args["caUniqueName"_L1] = systemTrustFilename(controller);
args["caCert"_L1] = controller.caCert();
Action installAction(u"com.gnupg.gpgolweb.truststore.install"_s);
installAction.setHelperId(u"com.gnupg.gpgolweb.truststore"_s);
installAction.setArguments(args);
ExecuteJob *job = installAction.execute();
if (!job->exec()) {
qDebug() << "KAuth returned an error code:" << job->error() << job->errorText();
} else {
QString contents = job->data()[u"contents"_s].toString();
qDebug() << "KAuth succeeded. Contents: " << contents;
}
return true;
}
bool LinuxTrustStore::uninstall(const Controller &controller)
{
return true;
}
File Metadata
Details
Attached
Mime Type
text/x-diff
Expires
Mon, Jan 12, 11:42 PM (21 h, 15 m)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
1b/74/d48fbd76e2efeace773a5d82b4ae
Attached To
rOJ GpgOL.js
Event Timeline
Log In to Comment