Add a custom sign process

This commit is contained in:
Julien Wadel 2022-03-15 11:27:00 +01:00
parent ce8099b7f0
commit e7612e692a
4 changed files with 33 additions and 9 deletions

View file

@ -9,7 +9,7 @@
SET PATH_TEMP=%PATH_TEMP:C:\Strawberry\perl\bin;=%
SET PATH_TEMP=%PATH_TEMP:C:\Program Files\NASM=%
SET Qt5_DIR=C:\Qt\5.14.2\msvc2017\lib\cmake
SET PATH=%PATH_TEMP%;C:\Qt\5.14.2\msvc2017\bin;C:\msys64;C:\msys64\usr\bin;C:\msys64\%MINGW_TYPE%\bin;
SET PATH=%PATH_TEMP%;C:\Qt\5.14.2\msvc2017\bin;C:\msys64;C:\msys64\usr\bin;C:\msys64\%MINGW_TYPE%\bin;%SIGNTOOL_ROOT%\x86
IF EXIST build RMDIR /S /Q build
mkdir build
cd build
@ -24,7 +24,7 @@
stage: build
tags: [ "windows" ]
variables:
CMAKE_OPTIONS: -DENABLE_LIME_X3DH=NO -DENABLE_UNIT_TESTS=ON -DLINPHONE_WINDOWS_SIGNING_DIR=$WINDOWS_SIGNING_DIRECTORY -DENABLE_G729=ON
CMAKE_OPTIONS: -DENABLE_LIME_X3DH=NO -DENABLE_UNIT_TESTS=ON -DLINPHONE_WINDOWS_SIGN_TOOL=$WINDOWS_SIGN_TOOL -DLINPHONE_WINDOWS_SIGN_TIMESTAMP_URL=$WINDOWS_SIGN_TIMESTAMP_URL -DENABLE_G729=ON
MINGW_TYPE: mingw32
script:
- *build_all_windows_script
@ -82,7 +82,7 @@ job-windows-vs2017-package:
- $PACKAGE_WINDOWS
- $DEPLOY_WINDOWS
variables:
CMAKE_OPTIONS: -DENABLE_APP_PACKAGING=YES -DLINPHONE_WINDOWS_SIGNING_DIR=$WINDOWS_SIGNING_DIRECTORY -DENABLE_G729=ON
CMAKE_OPTIONS: -DENABLE_APP_PACKAGING=YES -DLINPHONE_WINDOWS_SIGN_TOOL=$WINDOWS_SIGN_TOOL -DLINPHONE_WINDOWS_SIGN_TIMESTAMP_URL=$WINDOWS_SIGN_TIMESTAMP_URL -DENABLE_G729=ON
MINGW_TYPE: mingw32
script:
- *build_all_windows_script

View file

@ -453,7 +453,17 @@ if(${ENABLE_APP_PACKAGING})
# TODO: Deal with install/uninstall.nsi
endif ()
if(LINPHONE_WINDOWS_SIGNING_DIR)
if(LINPHONE_WINDOWS_SIGN_TOOL AND LINPHONE_WINDOWS_SIGN_TIMESTAMP_URL)
find_program(SIGNTOOL ${LINPHONE_WINDOWS_SIGN_TOOL})
set(TIMESTAMP_URL ${LINPHONE_WINDOWS_SIGN_TIMESTAMP_URL})
if (SIGNTOOL)
set(SIGNTOOL_COMMAND ${SIGNTOOL})
message("Found requested signtool")
set(PERFORM_SIGNING 1)
else ()
message(STATUS "Could not find requested signtool! Code signing disabled (${LINPHONE_WINDOWS_SIGN_TOOL})")
endif ()
elseif(LINPHONE_WINDOWS_SIGNING_DIR)
# Sign the installer.
set(TIMESTAMP_URL "http://timestamp.digicert.com")
set(PFX_FILE "${LINPHONE_WINDOWS_SIGNING_DIR}/linphone.pfx")

View file

@ -69,10 +69,17 @@ if (NOT "${CMAKE_INSTALL_PREFIX}" MATCHES .*/_CPack_Packages/.*)
endif()
endif()
if (@PERFORM_SIGNING@)
execute_process(
COMMAND "@CMAKE_CURRENT_SOURCE_DIR@/../../tools/sign_package.bat" "@PASSPHRASE_FILE@" "@SIGNTOOL_COMMAND@" "@PFX_FILE@" "@TIMESTAMP_URL@" @CPACK_PACKAGE_FILE_NAME@.@PACKAGE_EXT@
RESULT_VARIABLE SIGNING_RESULT WORKING_DIRECTORY "@CPACK_PACKAGE_DIRECTORY@"
)
if(@PASSPHRASE_FILE@)
execute_process(
COMMAND "@CMAKE_CURRENT_SOURCE_DIR@/../../tools/sign_package.bat" "@PASSPHRASE_FILE@" "@SIGNTOOL_COMMAND@" "@PFX_FILE@" "@TIMESTAMP_URL@" @CPACK_PACKAGE_FILE_NAME@.@PACKAGE_EXT@
RESULT_VARIABLE SIGNING_RESULT WORKING_DIRECTORY "@CPACK_PACKAGE_DIRECTORY@"
)
else()
execute_process(
COMMAND "@CMAKE_CURRENT_SOURCE_DIR@/../../tools/sign_package.bat" "@SIGNTOOL_COMMAND@" "@TIMESTAMP_URL@" @CPACK_PACKAGE_FILE_NAME@.@PACKAGE_EXT@
RESULT_VARIABLE SIGNING_RESULT WORKING_DIRECTORY "@CPACK_PACKAGE_DIRECTORY@"
)
endif()
if(SIGNING_RESULT)
message(FATAL_ERROR "Failed to sign the package! ${SIGNING_RESULT} ${RESULT_VARIABLE}")
endif()

View file

@ -1,3 +1,10 @@
@echo off
if [%5]==[] goto simple
set /p passphrase=<%1
%2 sign /f %3 /fd SHA256 /p %passphrase% /t %4 %5
%2 sign /f %3 /fd SHA256 /p %passphrase% /t %4 %5
goto :eof
:simple
%1 sign /fd SHA256 /t %2 %3
:eof