Close #359: Symlink to PKCS#11 lib resolved
Some checks failed
CMake / build (build/xca-*-Linux.tar.gz, Unix Makefiles, linux, /usr, ubuntu, 5.15.2, ubuntu-latest) (push) Has been cancelled
CMake / build (build/xca-*-Linux.tar.gz, Unix Makefiles, linux, /usr, ubuntu, 6.6.2, ubuntu-latest) (push) Has been cancelled
CMake / build (build/xca-*.dmg, Unix Makefiles, mac, /opt/homebrew/opt/openssl, macos, 6.6.2, macos-latest) (push) Has been cancelled
CMake / build (build/xca-*.msi build/xca-portable-*.zip , MinGW Makefiles, windows, D:\msys2\msys64\mingw64, windows, 5.15.2, windows-2019, win64_mingw81) (push) Has been cancelled

Do not resolve symlinks of PKCS#11 library paths.

However the native file dialogs for example on MAC OS
do always resolve symbolic links.

In this case xca may be started with the --no-native-dialogs
commandline option when specifying new libraries.
This commit is contained in:
Christian Hohnstaedt 2024-09-09 18:42:03 +02:00
parent 070ad0521c
commit 307fbae89c
2 changed files with 5 additions and 3 deletions

View File

@ -16,6 +16,7 @@
#include <openssl/objects.h>
#include <QFileDialog>
#include <QToolTip>
#include <QDir>
Options::Options(QWidget *parent)
:QDialog(parent)
@ -173,14 +174,14 @@ void Options::on_addButton_clicked(void)
QString fname;
fname = QFileDialog::getOpenFileName(this, l.caption,
getLibDir(), l.filter);
getLibDir(), l.filter, nullptr, QFileDialog::DontResolveSymlinks);
addLib(fname);
}
void Options::addLib(QString fname)
{
fname = QFileInfo(fname).canonicalFilePath();
fname = QDir::cleanPath(fname);
pkcs11_lib *l = pkcs11::libraries.add_lib(fname);
if (searchP11 && l)

View File

@ -39,7 +39,8 @@ SearchPkcs11::~SearchPkcs11()
void SearchPkcs11::on_fileBut_clicked()
{
QString s = QFileDialog::getExistingDirectory(this, QString(XCA_TITLE),
filename->text());
filename->text(),
QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks);
if (!s.isEmpty())
filename->setText(nativeSeparator(s));