Fix work with PKCS12 TempFile

This commit is contained in:
Mykola Baibuz 2024-08-20 22:45:06 +03:00
parent 2d3b9c2752
commit fb63cdf7e9

View file

@ -181,11 +181,13 @@ ErrorCode Ikev2Protocol::start()
QByteArray cert = QByteArray::fromBase64(m_config[config_key::cert].toString().toUtf8()); QByteArray cert = QByteArray::fromBase64(m_config[config_key::cert].toString().toUtf8());
setConnectionState(Vpn::ConnectionState::Connecting); setConnectionState(Vpn::ConnectionState::Connecting);
QTemporaryFile certFile; QTemporaryFile * certFile = new QTemporaryFile;
certFile.setAutoRemove(false); certFile->setAutoRemove(false);
certFile.open(); certFile->open();
certFile.write(cert); QString m_filename = certFile->fileName();
certFile.close(); certFile->write(cert);
certFile->close();
delete certFile;
{ {
auto certInstallProcess = IpcClient::CreatePrivilegedProcess(); auto certInstallProcess = IpcClient::CreatePrivilegedProcess();
@ -203,14 +205,11 @@ ErrorCode Ikev2Protocol::start()
} }
certInstallProcess->setProgram(PermittedProcess::CertUtil); certInstallProcess->setProgram(PermittedProcess::CertUtil);
QString password = QString("-p \"%1\"").arg(m_config[config_key::password].toString()); QStringList arguments({"-f", "-importpfx", "-p", m_config[config_key::password].toString(),
QDir::toNativeSeparators(m_filename), "NoExport"
QStringList arguments({"-f", "-importpfx", password,
QDir::toNativeSeparators(certFile.fileName()), "NoExport"
}); });
certInstallProcess->setArguments(arguments); certInstallProcess->setArguments(arguments);
certInstallProcess->start(); certInstallProcess->start();
} }
// /* // /*