mirror of
https://github.com/chris2511/xca.git
synced 2026-09-12 19:51:05 +05:00
Update Windows build to install legacy.dll
Enable legacy provider to allow loading keys encrypted with an ancient, insecure algorithm like "pbeWithSHA1And40BitRC2-CBC" for PKCS#12/PFX Install the dynamic.dll in the portable app and WIX installer.
This commit is contained in:
parent
44be50a42f
commit
a20e810405
@ -249,7 +249,7 @@ elseif(WIN32)
|
||||
${CMAKE_BINARY_DIR}/doc/documentation.wxs
|
||||
${CMAKE_BINARY_DIR}/misc/misc.wxs
|
||||
${CMAKE_BINARY_DIR}/misc/dynamic.wxs
|
||||
)
|
||||
)
|
||||
target_link_options(${CMAKE_PROJECT_NAME} PRIVATE -mwindows -MD)
|
||||
install(DIRECTORY
|
||||
${CMAKE_BINARY_DIR}/platforms
|
||||
@ -269,6 +269,10 @@ elseif(WIN32)
|
||||
${OPENSSL_ROOT_DIR}/bin/libcrypto-${OPENSSL_LIBRARY_MAJOR}-x64.dll
|
||||
DESTINATION ${RUNTIME_DEST}
|
||||
)
|
||||
if (OPENSSL_LIBRARY_MAJOR EQUAL 3)
|
||||
install(FILES ${OPENSSL_ROOT_DIR}/lib/ossl-modules/legacy.dll
|
||||
DESTINATION ${RUNTIME_DEST})
|
||||
endif()
|
||||
install(CODE "execute_process(COMMAND cmake -E chdir \${CMAKE_INSTALL_PREFIX} tar cvf ${RUNTIME_DEST}.zip --format=zip -- ${RUNTIME_DEST})")
|
||||
set(CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR})
|
||||
|
||||
|
||||
18
lib/main.cpp
18
lib/main.cpp
@ -103,12 +103,6 @@ int main(int argc, char *argv[])
|
||||
signal(SIGSEGV, segv_handler_gui);
|
||||
#endif
|
||||
|
||||
#if (OPENSSL_VERSION_NUMBER >= 0x30000000L)
|
||||
if (OSSL_PROVIDER_try_load(0, "legacy", 1))
|
||||
qDebug() << "Legacy provider loaded";
|
||||
else
|
||||
qWarning() << "Legacy provider NOT loaded";
|
||||
#endif
|
||||
bool console_only = arguments::is_console(argc, argv);
|
||||
XcaApplication *gui = nullptr;
|
||||
QCoreApplication *coreApp = nullptr;
|
||||
@ -124,6 +118,18 @@ int main(int argc, char *argv[])
|
||||
is_gui_app = true;
|
||||
}
|
||||
|
||||
#if (OPENSSL_VERSION_NUMBER >= 0x30000000L)
|
||||
#if defined(Q_OS_WIN32)
|
||||
OSSL_PROVIDER_set_default_search_path(NULL,
|
||||
QCoreApplication::applicationDirPath().toUtf8().data());
|
||||
qDebug() << "OSSL_PROVIDER_set_default_search_path"
|
||||
<< QCoreApplication::applicationDirPath();
|
||||
#endif
|
||||
if (OSSL_PROVIDER_try_load(0, "legacy", 1))
|
||||
qDebug() << "Legacy provider loaded";
|
||||
else
|
||||
qWarning() << "Legacy provider NOT loaded";
|
||||
#endif
|
||||
QSharedPointer<UI_METHOD> uimeth(
|
||||
UI_create_method("xca-method"), UI_destroy_method);
|
||||
UI_method_set_writer(uimeth.data(), uiwriter);
|
||||
|
||||
@ -5,6 +5,9 @@
|
||||
<DirectoryRef Id="INSTALLDIR">
|
||||
<Component Id="Clibcrypto11x64" Guid="44133d17-96b5-4aee-8a24-9c722482add5">
|
||||
<File Id="libcrypto11x64.dll" Source="@OPENSSL_ROOT_DIR@/bin/libcrypto-@OPENSSL_LIBRARY_MAJOR@-x64.dll" KeyPath="yes"/>
|
||||
<?if @OPENSSL_LIBRARY_MAJOR@ = 3 ?>
|
||||
<File Id="libcryptolegacy.dll" Source="@OPENSSL_ROOT_DIR@/lib/ossl-modules/legacy.dll"/>
|
||||
<?endif?>
|
||||
</Component>
|
||||
<Component Id="Cvcruntime140" Guid="f0b03b2a-14f7-4631-bfe3-d4c6c9b57e1d">
|
||||
<File Id="vcruntime140.dll" Source="@SYSTEM32@/vcruntime140.dll" KeyPath="yes"/>
|
||||
|
||||
@ -8,27 +8,26 @@ do_openssl() {
|
||||
test -f "$OSSL".tar.gz || curl -O https://www.openssl.org/source/"$OSSL".tar.gz
|
||||
test -d "$OSSL" || tar zxf "$OSSL".tar.gz
|
||||
cd "$OSSL"
|
||||
./Configure mingw64 --prefix=/c/OpenSSL --libdir=lib
|
||||
./Configure mingw64 --prefix=$INSTALL_DIR --libdir=lib
|
||||
make -j4
|
||||
make install
|
||||
}
|
||||
|
||||
BUILD=build
|
||||
OSSL="openssl-3.1.4"
|
||||
OSSL="openssl-3.1.5"
|
||||
XCA_DIR="$(cd `dirname $0`/.. && pwd)"
|
||||
TOP_DIR="`dirname $XCA_DIR`"
|
||||
QT_DIR="$TOP_DIR/6.5.3/mingw_64"
|
||||
|
||||
QT_DIR="$TOP_DIR/QT/6.6.0/mingw_64"
|
||||
BUILDDIR="$TOP_DIR/w64-release"
|
||||
|
||||
INSTALL_DIR="/c/OpenSSL"
|
||||
JOBS=7
|
||||
|
||||
cd $TOP_DIR
|
||||
PATH="$TOP_DIR/QT/Tools/mingw1120_64/bin:$INSTALL_DIR/bin:$PATH"
|
||||
|
||||
cd $TOP_DIR
|
||||
do_openssl
|
||||
|
||||
cmake -B "$BUILDDIR" -G "MinGW Makefiles" -DCMAKE_PREFIX_PATH="$QT_DIR" xca
|
||||
cd $TOP_DIR
|
||||
cmake -B "$BUILDDIR" -G "MinGW Makefiles" -DCMAKE_PREFIX_PATH="$QT_DIR:$INSTALL_DIR" xca
|
||||
cmake --build "$BUILDDIR" -j5
|
||||
cmake --build "$BUILDDIR" -t install
|
||||
cd "$BUILDDIR" && cpack
|
||||
|
||||
Loading…
Reference in New Issue
Block a user