From 82eee1c548938df49e3d8bde9e5804b0b1084f3d Mon Sep 17 00:00:00 2001 From: Raul Metsma Date: Fri, 11 Oct 2024 09:05:52 +0300 Subject: [PATCH 1/2] Update version number and xmlsec to 1.3.6 IB-7927, Fixes #637, IB-8260 Signed-off-by: Raul Metsma --- .github/workflows/build.yml | 38 ++++----------- .gitmodules | 3 -- CMakeLists.txt | 25 ++++++---- ID.ico | Bin 0 -> 60177 bytes README.md | 2 +- RELEASE-NOTES.md | 6 +-- banner.bmp | Bin 0 -> 85894 bytes build.ps1 | 21 ++++----- cmake | 1 - cmake/modules/FindPKCS11.cmake | 21 +++++++++ dlgbmp.bmp | Bin 0 -> 461814 bytes etc/Doxyfile.in | 2 +- libdigidocpp.wxs | 4 +- prepare_osx_build_environment.sh | 2 +- src/CMakeLists.txt | 18 +++++++ src/XmlConf.cpp | 7 ++- test/CMakeLists.txt | 1 - vcpkg-ports/xmlsec/CMakeLists.txt | 44 ++++++++---------- vcpkg-ports/xmlsec/portfile.cmake | 3 +- .../xmlsec/unofficial-xmlsec-config.cmake | 4 ++ vcpkg-ports/xmlsec/vcpkg.json | 2 +- vcpkg.json | 4 +- 22 files changed, 112 insertions(+), 96 deletions(-) delete mode 100644 .gitmodules create mode 100644 ID.ico create mode 100644 banner.bmp delete mode 160000 cmake create mode 100644 cmake/modules/FindPKCS11.cmake create mode 100644 dlgbmp.bmp create mode 100644 vcpkg-ports/xmlsec/unofficial-xmlsec-config.cmake diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c53d1d5ee..109b3ed2e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -16,8 +16,6 @@ jobs: steps: - name: Checkout uses: actions/checkout@v4 - with: - submodules: recursive - name: Install dependencies run: | brew update @@ -79,7 +77,7 @@ jobs: container: fedora:${{ matrix.container }} strategy: matrix: - container: [39, 40] + container: [39, 40, 41] steps: - name: Install Deps run: | @@ -93,8 +91,6 @@ jobs: sh cmake-3.28.1-linux-x86_64.sh --skip-license --prefix=/usr/local - name: Checkout uses: actions/checkout@v4 - with: - submodules: recursive - name: Build run: | cmake -DCMAKE_INSTALL_SYSCONFDIR=/etc -B build -S . @@ -111,7 +107,7 @@ jobs: container: ubuntu:${{ matrix.container }} strategy: matrix: - container: ['20.04', '22.04', '24.04'] + container: ['20.04', '22.04', '24.04', '24.10'] env: DEBIAN_FRONTEND: noninteractive DEBFULLNAME: github-actions @@ -121,8 +117,6 @@ jobs: run: apt update -qq && apt install --no-install-recommends -y git lsb-release build-essential devscripts debhelper lintian pkg-config ${UBUNTU_DEPS} doxygen swig openjdk-11-jdk-headless libpython3-dev python3-setuptools libboost-test-dev - name: Checkout uses: actions/checkout@v4 - with: - submodules: recursive - name: Setup changelog run: | export VERSION=$(grep project CMakeLists.txt | egrep -o "([0-9]{1,}\.)+[0-9]{1,}") @@ -144,33 +138,28 @@ jobs: runs-on: ${{ matrix.image }} strategy: matrix: - toolset: [143, 142] + toolset: [143] platform: [x86, x64] include: - toolset: 143 image: windows-2022 vcvars: "C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise\\VC\\Auxiliary\\Build\\vcvarsall.bat" - - toolset: 142 - image: windows-2019 - vcvars: "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Enterprise\\VC\\Auxiliary\\Build\\vcvarsall.bat" env: VER_SUFFIX: .VS${{ matrix.toolset }} CXXFLAGS: '/D_DISABLE_CONSTEXPR_MUTEX_CONSTRUCTOR' # https://github.com/actions/runner-images/issues/10004 - VCPKG_INSTALLED_DIR: ${{ github.workspace }}/vcpkg_installed steps: - name: Checkout uses: actions/checkout@v4 - with: - submodules: recursive - name: Prepare vcpkg uses: lukka/run-vcpkg@v11 with: - vcpkgGitCommitId: 511d74f695bd45959d12b50b00f1b68f69e8f0b0 + vcpkgGitCommitId: e2edf52610d2c94d2038fe30b247ea5a26964e1b vcpkgJsonGlob: ./vcpkg.json runVcpkgInstall: true runVcpkgFormatString: "[`install`, `--recurse`, `--clean-after-build`, `--x-install-root`, `$[env.VCPKG_INSTALLED_DIR]`, `--triplet`, `$[env.VCPKG_DEFAULT_TRIPLET]`, `--x-feature`, `tests`]" env: VCPKG_DEFAULT_TRIPLET: ${{ matrix.platform }}-windows + VCPKG_INSTALLED_DIR: ${{ github.workspace }}/vcpkg_installed_${{ matrix.platform }} - name: Install dependencies run: choco install doxygen.install -y > $null - uses: actions/setup-python@v5 @@ -178,14 +167,9 @@ jobs: with: python-version: 3.12 architecture: x86 - - name: Install WiX - run: | - dotnet tool install -g wix --version 5.0.1 - wix extension -g add WixToolset.UI.wixext/5.0.1 - name: Build run: | & .\build.ps1 ` - -vcpkg_installed ${{ env.VCPKG_INSTALLED_DIR }} ` -vcvars "${{ matrix.vcvars }}" ` -platform ${{ matrix.platform }} ` -swig C:/ProgramData/chocolatey/bin/swig.exe ` @@ -199,14 +183,12 @@ jobs: pages: name: Deploy pages if: github.repository == 'open-eid/libdigidocpp' && contains(github.ref, 'master') - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 permissions: contents: write steps: - name: Checkout uses: actions/checkout@v4 - with: - submodules: recursive - name: Install dependencies run: sudo apt update -qq && sudo apt install --no-install-recommends -y doxygen ${UBUNTU_DEPS} - name: Build docs @@ -222,15 +204,13 @@ jobs: coverity: name: Run Coverity tests if: github.repository == 'open-eid/libdigidocpp' && contains(github.ref, 'coverity_scan') - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 env: TOKEN: ${{ secrets.COVERITY_SCAN_TOKEN }} PROJECTNAME: ${{ github.repository }} steps: - name: Checkout uses: actions/checkout@v4 - with: - submodules: recursive - name: Install dependencies run: sudo apt update -qq && sudo apt install --no-install-recommends -y curl ca-certificates ${UBUNTU_DEPS} - name: Download Coverity Build Tool @@ -257,14 +237,12 @@ jobs: codeql: name: Run CodeQL tests if: github.repository == 'open-eid/libdigidocpp' - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 permissions: security-events: write steps: - name: Checkout uses: actions/checkout@v4 - with: - submodules: recursive - name: Install dependencies run: sudo apt update -qq && sudo apt install --no-install-recommends -y ${UBUNTU_DEPS} - name: Initialize CodeQL diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index 188b55761..000000000 --- a/.gitmodules +++ /dev/null @@ -1,3 +0,0 @@ -[submodule "cmake"] - path = cmake - url = ../cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 53a7100d7..1b9f06e04 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,19 +1,22 @@ cmake_minimum_required(VERSION 3.16) -if(NOT EXISTS ${CMAKE_SOURCE_DIR}/cmake/modules/VersionInfo.cmake) - message(FATAL_ERROR "cmake submodule directory empty, did you 'git clone --recursive'?") -endif() - if(POLICY CMP0122) cmake_policy(SET CMP0122 NEW) endif() if(POLICY CMP0167) cmake_policy(SET CMP0167 NEW) endif() -project(libdigidocpp VERSION 4.0.0) +project(libdigidocpp VERSION 4.1.0) set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules) list(APPEND CMAKE_PREFIX_PATH ${CMAKE_INSTALL_PREFIX}) -include(VersionInfo) +macro(SET_ENV NAME DEF) + if(DEFINED ENV{${NAME}}) + set(${NAME} $ENV{${NAME}} ${ARGN}) + else() + set(${NAME} ${DEF} ${ARGN}) + endif() +endmacro() + include(GNUInstallDirs) set_env( TSL_URL "https://ec.europa.eu/tools/lotl/eu-lotl.xml" CACHE STRING "TSL trust list primary URL" ) @@ -32,6 +35,11 @@ set( BUILD_TOOLS YES CACHE BOOL "Build digidoc-tool" ) set( BUILD_SHARED_LIBS YES CACHE BOOL "Build library as SHARED or STATIC" ) set( SIGNCERT "" CACHE STRING "Common name of certificate to used sign binaries, empty skip signing" ) set( CROSSSIGNCERT "" CACHE STRING "Common name of certificate to used cross sign binaries, empty skip signing" ) +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED YES) +set(CMAKE_C_VISIBILITY_PRESET hidden) +set(CMAKE_CXX_VISIBILITY_PRESET hidden) +set(CMAKE_VISIBILITY_INLINES_HIDDEN YES) set(CMAKE_DEBUG_POSTFIX "d" CACHE STRING "Adds a postfix for debug-built libraries.") set(CPACK_PACKAGE_VERSION ${VERSION}) set(CPACK_GENERATOR RPM) @@ -64,10 +72,7 @@ if(UNIX) endif() else() find_package(unofficial-xmlsec REQUIRED) - target_link_libraries(xmlsec INTERFACE - unofficial::xmlsec::xmlsec1 - unofficial::xmlsec::xmlsec1-openssl - ) + target_link_libraries(xmlsec INTERFACE unofficial::xmlsec::xmlsec1-openssl) endif() find_package(SWIG) if(SWIG_FOUND) diff --git a/ID.ico b/ID.ico new file mode 100644 index 0000000000000000000000000000000000000000..40018f81a334b213cb87501da282125e42700ae3 GIT binary patch literal 60177 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℘(aJ~t%3dhjMSTyF@s73Eg~kPB2LkQ!BR8J%DR@`~wBtM&t$a$o`ca7HHR$e1 ziu{F}giJ9HN4R`7oEz2Znd zHN=fZKZ<@?-iw98vt%K$WRHI5m67KVXr6@5SE7B*F+H?Hf#m9Fe;wI6r;Im4ipGCZ z%6C&2_*(y;n18|hbkN*y?{dbYH~cN({IderuRv!b|7nlrx@gV|$A=(eDZphRNgwFC zZgxGAul^g}Wy7pGH0MWi{~=3(KR^EmIWV$a{?jZNSss#8OoblVE~LmQc1`%FvH1Pq zTPOSn!;9-d-stB|kmsmme!jN$^ZN^xc1x?;^qbvPu5C zmKR*G)9OQT;khtUWzka-yn_(;dFj!l*2a2LbNwgM^VFz;_mp@PLi;8pINu}H)l}m6 zAs7^o@IAkOOWy^@?KsZeT}0BEeVa&74-EHKGR!16R^hObJ$=gip&^{pkl_4=1jh>! zyu+IW$HC$79k!Av@Vkheq!X6wNpL*IJzR5;p#BW$>D}u%Y|8twLO6Dl0u2>OU*5mL z%fRvff53(QwHF}J#tb(R{S^c5l!Ra|48^9t<5C=-LeDl z;XW)0o{jqkKHO_3!Ly{K00VgvsykzS-;wY;+gnKidlZJir-Jaqzl9I$Zq1h-QvH_( z64d`AMR=Q&-n`8Hrv8kCUsdvg1n)l?fDhLiB&hTA4SZsEAIUDLon++MN{Y=Sl4?E? zVLj;n2L3TKRZ>M>4hin(1;_^2$nxBm_N&aOVvo`bEV*&7;3^EWk; z)NEQvg%v&Dz=!%~Bxp+j_XyWv^;49Jbot;O5?p_M7d|Ru!RAI%*7L4!;17j2^f%ng zCi&^fz<#H6)b@q=V|uuaG*`V5_lvcfNZEPaL;445*p5ef8dwh|kl-D?`1gWq?{E8u zA^lr^SvM&T@*er5oG#MW=3Y`$-ABmh8>GjHSHJP7z7^#plRj6M<87AGCQwM}-+XnY z3n}fbrw8`We}{*CC*qTz&hnRgrI}Xx=q@ined&4FAN?&J!a`#f8oPeK5&7?>2+o_( zUKsBGF31#kC`9ux4(L%xnTG|_{aq#fdvKiB@fn4=>U_HHYe_d|}H0pRO>wB|>?tD_Ct#nk;A8DI++ z;_x0aXutC0-gQ_oymJ|rh3hS%^BL%Qs6T4566&aJgt`qLc%FgvG=zE6-dq43bX&rZ{r~pem?}^{% zSo@}U*!LI;57{vdGE^LZcg$?nH~2k7rB{H}=4_oL1Z$OI8QO8Y3R=*9F8v_afjF>5IQ`}l>3 z#lgKK#HW$|q~$vN{zO#o2JCnCw~veNx?jlc7vA|!gdXad5xdB364`1Y!ge{*cXz?| zJ+l46HXi1>>$CG(ev@!FolmIk;rJq)f6}A82nOn_{=J^@*C+|Yn&24L^p}vKz(64y zuaH^;AM})QOa2$st_n6%KALdOs}r3Q_!*D#1Q{v?Cx!TQqJ9V6{f727P}ttmh~HO_ zo+-XO?*T63M`I9jXzWS6aJVz|N)W8)t#})U>v;^~gP&2^ufzrW3Z?;%?&(H0=a5c2 z+CN4P>2IU_o$y{kw6}-aFtR0z_A-#{A3dWzNOUF+=`N#Zv=13^*c7)x_~ZQKJ|5AO z8y^nuG$ijEq5Ug#m-^8B=#KSo%ZK|q&^{S*Xq+bB3kdK&umsvUr{qWD+_RKh__&M4 z-a-5a^P_fu!*4HM2HL+vXL%_3J7NEE<`xmVo!*F*7QM!0++_M8{;>h~%6+d4>?rhO~6a7z%#aws(YyJ!{+%Pb#RIc M`<iU)}YG$7hwG#cS%x|U@jp_n2_eb5j+ zw8kezZ9PbWp%sI~NI)f2F#(hW<zj=Y%%Jbp3=STfMgW0q5C|6Mf3SK?8umOK7BIndLo-zxdSm+yqb58pz^{rgv#&e(HX1Q0NFyye|j5=~Z>6bwasq{Smc zv1uJRuYKg!`ijR6d{H;p*PSHgbew`CfB*u{1xy`pdTnK5$7M~=`F07he6{>;%9U~= zzPWDQrT+#kYfi_Vk6%i9u7CgnIWOQ%$2CTIXi9hFY+}mkI2}g-0R)^2c-e8OdG+Eu zo_;Kg^ zi9b!&7;i$y={N!iAmCiU)NzS#wEO(thBr1mey6d&jyrDo!dvo_KYR5Bz4&z8`S=+J ziDd*3@TWjx$F;o5oAsPHv{#OrwZn7A9e?ZD`z>Lc>#OKE`9=T%1Y8g>b$s99E2qy* zdV3)4@LYQ_al6+$G@c~U>nsaL_wBTdxUBqX_owToADAxTIVz4?H(e zvu)UTcy8D6jZ5y9V`}{(FJf-@uyHNxZ$5LM9&uUVc-)17w3{$lj{pKWFOa0;TFte? z^Zvn!V{^NXPgm*ZuN&z&?M46r1l$prO2;MTk*>H~9j|@9Sl$Jcj=M8{)15-OJ^~2j zo`A<4U-#&37ytd!7;#zVyb4W6009J?3wYV_4Nu&4;q33Gh|_WBgO_`U75qjBAmBj2 zn~uwa(06R97>@NPMx2h*aRd-RAT0q?$G0|)=yz}G3va#`V zLpRD>Mts+}wXgFZ%YthwIj@q|5KetOxF!M!6&7URbJ>v06PsH~u-`a*^y}` zMgRc>vP6K6BY*$`2&gTf_TFd7WXNtHfB*s+6rke>Abj zbQ}Q$5I{g}0k!u&OD02h0|5jO$e;inM*sl?5Kvn{?Y+<71jwclKmdU(5uoD;AbfItQX0{;WThbjC3 literal 0 HcmV?d00001 diff --git a/build.ps1 b/build.ps1 index 4a0e86c83..a8b71976e 100644 --- a/build.ps1 +++ b/build.ps1 @@ -1,19 +1,18 @@ #powershell -ExecutionPolicy ByPass -File build.ps1 param( [string]$libdigidocpp = $PSScriptRoot, + [string]$platform = "x64", [string]$git = "git.exe", [string]$vcpkg = "vcpkg\vcpkg.exe", [string]$vcpkg_dir = (split-path -parent $vcpkg), [string]$vcpkg_installed = $libdigidocpp, [string]$vcpkg_installed_platform = "$vcpkg_installed\vcpkg_installed_$platform", [string]$build_number = $(if ($null -eq $env:BUILD_NUMBER) {"0"} else {$env:BUILD_NUMBER}), - [string]$msiversion = "4.0.0.$build_number", - [string]$platform = "x64", + [string]$msiversion = "4.1.0.$build_number", [string]$msi_name = "libdigidocpp-$msiversion$env:VER_SUFFIX.$platform.msi", [string]$cmake = "cmake.exe", [string]$generator = "NMake Makefiles", [string]$vcvars = "vcvarsall", - [string]$wix = "wix.exe", [string]$swig = $null, [string]$doxygen = $null, [switch]$boost = $false, @@ -21,17 +20,16 @@ param( ) Try { - & $wix > $null + & wix > $null } Catch { - & dotnet tool install --global --version 5.0.1 wix - & $wix extension add -g WixToolset.UI.wixext/5.0.1 + & dotnet tool install -g --version 5.0.2 wix + & wix extension add -g WixToolset.UI.wixext/5.0.2 } if(!(Test-Path -Path $vcpkg)) { & $git clone https://github.com/microsoft/vcpkg $vcpkg_dir & $vcpkg_dir\bootstrap-vcpkg.bat - & $vcpkg install --clean-after-build --triplet x64-windows --x-feature=tests --x-install-root=$vcpkg_installed_platform } $cmakeext = @() @@ -69,12 +67,11 @@ if($sign) { $vcpkg_installed_platform/$platform-windows/debug/bin/*.dll } -& $vcvars $platform "&&" $wix build -nologo -arch $platform -out $msi_name $wixext ` +& $vcvars $platform "&&" wix build -nologo -arch $platform -out $msi_name $wixext ` -ext WixToolset.UI.wixext ` - -bv "WixUIBannerBmp=$libdigidocpp/cmake/modules/banner.bmp" ` - -bv "WixUIDialogBmp=$libdigidocpp/cmake/modules/dlgbmp.bmp" ` - -d "ICON=$libdigidocpp/cmake/modules/ID.ico" ` - -d "MSI_VERSION=$msiversion" ` + -bv "WixUIBannerBmp=$libdigidocpp/banner.bmp" ` + -bv "WixUIDialogBmp=$libdigidocpp/dlgbmp.bmp" ` + -d "ICON=$libdigidocpp/ID.ico" ` -d "vcpkg=$vcpkg_installed_platform/$platform-windows" ` -d "libdigidocpp=$(Get-Location)/$platform" ` $libdigidocpp\libdigidocpp.wxs diff --git a/cmake b/cmake deleted file mode 160000 index 8ce75e605..000000000 --- a/cmake +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 8ce75e6057067ca51d7c619d34d88422bad201e5 diff --git a/cmake/modules/FindPKCS11.cmake b/cmake/modules/FindPKCS11.cmake new file mode 100644 index 000000000..dab04793b --- /dev/null +++ b/cmake/modules/FindPKCS11.cmake @@ -0,0 +1,21 @@ +# - Find pkcs11 +# Find the PKCS11 module +# +# PKCS11_MODULE - pkcs11 module path and name +# PKCS11_FOUND - True if pkcs11 module found. + +if(APPLE) + find_library(PKCS11_MODULE NAMES opensc-pkcs11.so HINTS /Library/OpenSC/lib) +elseif(WIN32) + if(NOT PKCS11_MODULE) + set(PKCS11_MODULE opensc-pkcs11.dll) + endif() +else() + if(NOT PKCS11_MODULE) + set(PKCS11_MODULE opensc-pkcs11.so) + endif() +endif() + +include(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(PKCS11 DEFAULT_MSG PKCS11_MODULE) +MARK_AS_ADVANCED(PKCS11) diff --git a/dlgbmp.bmp b/dlgbmp.bmp new file mode 100644 index 0000000000000000000000000000000000000000..e7b9c26be35b3f73d102d7c5e8e0950e035c4516 GIT binary patch literal 461814 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 U0UpmnfXB + Language="1033" Version="!(bind.FileVersion.digidocpp)" Manufacturer="RIA" InstallerVersion="500"> @@ -54,7 +54,7 @@ - + diff --git a/prepare_osx_build_environment.sh b/prepare_osx_build_environment.sh index d3c4a175e..1f6426a83 100755 --- a/prepare_osx_build_environment.sh +++ b/prepare_osx_build_environment.sh @@ -3,7 +3,7 @@ set -e OPENSSL_DIR=openssl-3.0.15 LIBXML2_DIR=libxml2-2.12.9 -XMLSEC_DIR=xmlsec1-1.3.5 +XMLSEC_DIR=xmlsec1-1.3.6 ANDROID_NDK=android-ndk-r26d FREETYPE_DIR=freetype-2.10.1 FONTCONFIG_DIR=fontconfig-2.13.1 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 01317a3d8..d457b3431 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -9,6 +9,22 @@ else() target_link_libraries(minizip ZLIB::ZLIB) endif() +if($ENV{BUILD_NUMBER}) + set(BUILD_VER $ENV{BUILD_NUMBER}) +elseif(PROJECT_VERSION_TWEAK) + set(BUILD_VER ${PROJECT_VERSION_TWEAK}) +else() + set(BUILD_VER 0) +endif() + +add_definitions( + -DMAJOR_VER=${PROJECT_VERSION_MAJOR} + -DMINOR_VER=${PROJECT_VERSION_MINOR} + -DRELEASE_VER=${PROJECT_VERSION_PATCH} + -DBUILD_VER=${BUILD_VER} +) +set(VERSION ${PROJECT_VERSION}.${BUILD_VER}) + configure_file( libdigidocpp.pc.cmake libdigidocpp.pc @ONLY ) configure_file( ${CMAKE_SOURCE_DIR}/etc/digidocpp.conf.cmake digidocpp.conf ) @@ -130,6 +146,8 @@ set_target_properties(digidocpp PROPERTIES FRAMEWORK_VERSION 1 FRAMEWORK "${FRAMEWORK}" MACOSX_FRAMEWORK_IDENTIFIER "ee.ria.digidocpp" + MACOSX_FRAMEWORK_SHORT_VERSION_STRING ${PROJECT_VERSION} + MACOSX_FRAMEWORK_BUNDLE_VERSION ${BUILD_VER} MACOSX_RPATH YES COMPILE_DEFINITIONS TARGET_NAME="$" POSITION_INDEPENDENT_CODE YES diff --git a/src/XmlConf.cpp b/src/XmlConf.cpp index d38446401..0dbd930a7 100644 --- a/src/XmlConf.cpp +++ b/src/XmlConf.cpp @@ -164,7 +164,7 @@ void XmlConf::Private::init(const string& path, bool global) optional lock; if(auto val = elem["lock"]; !val.empty()) lock = val == "true"; - auto setValue = [&](auto ¶m) { + auto setValue = [&](auto ¶m) constexpr { if(paramName != param.name) return false; if(global && lock.has_value()) param.locked = lock.value(); @@ -384,9 +384,12 @@ GET1(string, proxyUser) GET1(string, proxyPass) GET1(bool, proxyForceSSL) GET1(bool, proxyTunnelSSL) +DIGIDOCPP_WARNING_PUSH +DIGIDOCPP_WARNING_DISABLE_GCC("-Wdeprecated-declarations") GET1EX(string, PKCS12Cert, Conf::PKCS12Cert()) -GET1EX(string, PKCS12Pass, Conf::PKCS12Cert()) +GET1EX(string, PKCS12Pass, Conf::PKCS12Pass()) GET1EX(bool, PKCS12Disable, Conf::PKCS12Disable()) +DIGIDOCPP_WARNING_POP GET1(string, TSUrl) GET1(bool, TSLAutoUpdate) GET1(string, TSLCache) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 5f96be6ee..e5849555c 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -1,4 +1,3 @@ -set_env(RUN_TESTS "" CACHE STRING "Run tests on build") set_env(TEST_FORMAT XML CACHE STRING "Test result format (XML/JUNIT)") set( CMAKE_SKIP_RPATH OFF ) add_definitions( diff --git a/vcpkg-ports/xmlsec/CMakeLists.txt b/vcpkg-ports/xmlsec/CMakeLists.txt index 2d580ce55..bbd9ea9d2 100644 --- a/vcpkg-ports/xmlsec/CMakeLists.txt +++ b/vcpkg-ports/xmlsec/CMakeLists.txt @@ -60,12 +60,13 @@ set(CMAKE_STATIC_LIBRARY_PREFIX "lib") add_library(xmlsec1 ${SOURCESXMLSEC}) add_library(xmlsec1-openssl ${SOURCESXMLSECOPENSSL}) -include_directories(${CMAKE_CURRENT_BINARY_DIR}/include include) - -target_link_libraries(xmlsec1 PRIVATE LibXml2::LibXml2) -target_link_libraries(xmlsec1-openssl PRIVATE - LibXml2::LibXml2 OpenSSL::Crypto xmlsec1 +target_include_directories(xmlsec1 PUBLIC + $ + $ + $ ) +target_link_libraries(xmlsec1 PUBLIC LibXml2::LibXml2) +target_link_libraries(xmlsec1-openssl PUBLIC xmlsec1 OpenSSL::Crypto) add_compile_definitions(inline=__inline) add_compile_definitions(PACKAGE="xmlsec1") @@ -76,8 +77,6 @@ add_compile_definitions(HAVE_CTYPE_H) add_compile_definitions(HAVE_MALLOC_H) add_compile_definitions(HAVE_MEMORY_H) add_compile_definitions(XMLSEC_DEFAULT_CRYPTO="openssl") -add_compile_definitions(XMLSEC_NO_GOST) -add_compile_definitions(XMLSEC_NO_GOST2012) add_compile_definitions(UNICODE) add_compile_definitions(_UNICODE) add_compile_definitions(_MBCS) @@ -85,29 +84,27 @@ add_compile_definitions(_REENTRANT) set_target_properties(xmlsec1 xmlsec1-openssl PROPERTIES VERSION ${XMLSEC_VERSION_MAJOR}.${XMLSEC_VERSION_MINOR}) +set(XMLSEC_CORE_CFLAGS "") if(NOT BUILD_SHARED_LIBS) - set(XMLSEC_CORE_CFLAGS "-DLIBXML_STATIC -DLIBXSLT_STATIC -DXMLSEC_STATIC -DXMLSEC_NO_CRYPTO_DYNAMIC_LOADING") - set(XMLSEC_OPENSSL_CFLAGS ${XMLSEC_CORE_CFLAGS}) -else() - set(XMLSEC_CORE_CFLAGS "-DXMLSEC_DL_WIN32") - set(XMLSEC_OPENSSL_CFLAGS ${XMLSEC_CORE_CFLAGS}) + set(XMLSEC_CORE_CFLAGS "-DLIBXML_STATIC -DXMLSEC_STATIC -DXMLSEC_NO_CRYPTO_DYNAMIC_LOADING") + target_compile_definitions(xmlsec1 PUBLIC XMLSEC_STATIC XMLSEC_NO_CRYPTO_DYNAMIC_LOADING) endif() +set(XMLSEC_OPENSSL_CFLAGS ${XMLSEC_CORE_CFLAGS}) target_compile_definitions(xmlsec1 - PRIVATE ${XMLSEC_CORE_CFLAGS} + PRIVATE $<$:XMLSEC_DL_WIN32> PUBLIC XMLSEC_NO_XSLT XMLSEC_CRYPTO_OPENSSL ) -target_compile_definitions(xmlsec1-openssl PRIVATE ${XMLSEC_OPENSSL_CFLAGS}) +target_compile_definitions(xmlsec1-openssl PUBLIC XMLSEC_NO_GOST XMLSEC_NO_GOST2012) install(TARGETS xmlsec1 xmlsec1-openssl - EXPORT xmlsecExport + EXPORT unofficial-xmlsec-targets RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) -install(EXPORT xmlsecExport - FILE unofficial-xmlsec-config.cmake +install(EXPORT unofficial-xmlsec-targets NAMESPACE unofficial::xmlsec:: DESTINATION share/unofficial-xmlsec ) @@ -116,7 +113,7 @@ if(INSTALL_HEADERS_TOOLS) file(GLOB PUBLIC_HEADERS include/xmlsec/*.h include/xmlsec/openssl/*.h) - list(FILTER PUBLIC_HEADERS EXCLUDE REGEX "exports\\.h$") + list(FILTER PUBLIC_HEADERS EXCLUDE REGEX "exports\\.h$") foreach(file IN LISTS PUBLIC_HEADERS) get_filename_component(dir ${file} DIRECTORY) @@ -137,16 +134,13 @@ if(INSTALL_HEADERS_TOOLS) target_link_libraries(xmlsec PRIVATE crypt32.lib) endif() - target_link_libraries(xmlsec PRIVATE - ${LIBXML2_LIBRARIES} OpenSSL::Crypto xmlsec1 xmlsec1-openssl - ) + target_link_libraries(xmlsec PRIVATE xmlsec1-openssl) if(BUILD_SHARED_LIBS) target_compile_definitions(xmlsec PRIVATE -DXMLSEC_CRYPTO_DYNAMIC_LOADING) else() - find_package(Threads REQUIRED) - target_compile_definitions(xmlsec PRIVATE -DLIBXML_STATIC -DLIBXSLT_STATIC -DXMLSEC_STATIC) - target_link_libraries(xmlsec PUBLIC Threads::Threads) + find_package(Threads REQUIRED) + target_link_libraries(xmlsec PUBLIC Threads::Threads) endif() install(TARGETS xmlsec DESTINATION tools/xmlsec) endif() @@ -159,7 +153,7 @@ set(libdir ${prefix}/${CMAKE_INSTALL_LIBDIR}) set(includedir ${prefix}/${CMAKE_INSTALL_INCLUDEDIR}) set(VERSION ${XMLSEC_VERSION}) set(LIBXML_MIN_VERSION ${LIBXML2_VERSION_STRING}) -set(OPENSSL_LIBS "-lssl -lcrypto") +set(OPENSSL_LIBS "-lcrypto") set(XMLSEC_CORE_CFLAGS "${XMLSEC_CORE_CFLAGS} -DXMLSEC_DL_LIBLTDL=1 -I\${includedir}/xmlsec1 -DXMLSEC_CRYPTO_OPENSSL=1") set(XMLSEC_CORE_LIBS "-lxmlsec1 -lltdl") set(XMLSEC_OPENSSL_CFLAGS "${XMLSEC_OPENSSL_CFLAGS} -I\${includedir}/xmlsec1") diff --git a/vcpkg-ports/xmlsec/portfile.cmake b/vcpkg-ports/xmlsec/portfile.cmake index 0fa84067d..47b0d6577 100644 --- a/vcpkg-ports/xmlsec/portfile.cmake +++ b/vcpkg-ports/xmlsec/portfile.cmake @@ -5,7 +5,7 @@ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO lsh123/xmlsec REF "${release_tag}" - SHA512 8574eca37c0be55126e50a76322f96171c9d82dbdd793fdbc26430526488e69db8b41351f136f77bd36f8a3ea238c350bc62dd99214b8348b65dd8055a1c6148 + SHA512 6e41c35042e5a74e135cfb7468aa5c09b3c9ba684ab2431ecedce950f7c99c92fc8765c1c8c2ddfd87718bd00f4a287028227da1e987f2ef17ce2594356e81af HEAD_REF master PATCHES pkgconfig_fixes.patch @@ -28,5 +28,6 @@ vcpkg_copy_pdbs() # unofficial legacy usage file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/xmlsec-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") +file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/unofficial-xmlsec-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/unofficial-xmlsec") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(INSTALL "${SOURCE_PATH}/Copyright" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) diff --git a/vcpkg-ports/xmlsec/unofficial-xmlsec-config.cmake b/vcpkg-ports/xmlsec/unofficial-xmlsec-config.cmake new file mode 100644 index 000000000..3a2b0c952 --- /dev/null +++ b/vcpkg-ports/xmlsec/unofficial-xmlsec-config.cmake @@ -0,0 +1,4 @@ +include(CMakeFindDependencyMacro) +find_dependency(LibXml2) +find_dependency(OpenSSL) +include("${CMAKE_CURRENT_LIST_DIR}/unofficial-xmlsec-targets.cmake") diff --git a/vcpkg-ports/xmlsec/vcpkg.json b/vcpkg-ports/xmlsec/vcpkg.json index 8525d1249..c504e7733 100644 --- a/vcpkg-ports/xmlsec/vcpkg.json +++ b/vcpkg-ports/xmlsec/vcpkg.json @@ -1,6 +1,6 @@ { "name": "xmlsec", - "version": "1.3.5", + "version": "1.3.6", "description": "XML Security Library is a C library based on LibXML2. The library supports major XML security standards.", "homepage": "https://www.aleksey.com/xmlsec/", "license": "X11 AND MPL-1.1", diff --git a/vcpkg.json b/vcpkg.json index de815d66d..2d8f1954a 100644 --- a/vcpkg.json +++ b/vcpkg.json @@ -1,6 +1,6 @@ { "name": "libdigidocpp", - "version": "4.0.0", + "version": "4.1.0", "dependencies": [ { "name": "libxml2", @@ -12,7 +12,7 @@ "features": { "tests": { "description": "Build tests", "dependencies": ["boost-test"] } }, - "builtin-baseline": "0f8b6ddf49fa8ae66a7826234e9ba3fda5f46d3c", + "builtin-baseline": "e2edf52610d2c94d2038fe30b247ea5a26964e1b", "vcpkg-configuration": { "overlay-ports": [ "vcpkg-ports/openssl", From 709c601b5f229fa20c97fd1323a0481412df040f Mon Sep 17 00:00:00 2001 From: Raul Metsma Date: Tue, 17 Sep 2024 22:24:02 +0300 Subject: [PATCH 2/2] Keep existing filenames IB-8168 Signed-off-by: Raul Metsma --- src/ASiC_E.cpp | 61 ++++++++++++++++++++++----------------- src/ASiC_E.h | 13 +++++---- src/ASiC_S.cpp | 2 +- src/SignatureXAdES_B.cpp | 12 ++++---- src/SignatureXAdES_B.h | 4 +-- src/SignatureXAdES_LT.cpp | 6 ++-- src/SignatureXAdES_LT.h | 2 +- 7 files changed, 55 insertions(+), 45 deletions(-) diff --git a/src/ASiC_E.cpp b/src/ASiC_E.cpp index 5c69f5f03..18622b065 100644 --- a/src/ASiC_E.cpp +++ b/src/ASiC_E.cpp @@ -35,16 +35,19 @@ using namespace digidoc; using namespace digidoc::util; using namespace std; -const string_view ASiC_E::ASIC_TM_PROFILE = "time-mark"; -const string_view ASiC_E::ASIC_TS_PROFILE = "time-stamp"; -const string_view ASiC_E::ASIC_TSA_PROFILE = "time-stamp-archive"; -const string_view ASiC_E::ASIC_TMA_PROFILE = "time-mark-archive"; constexpr string_view MANIFEST_NS {"urn:oasis:names:tc:opendocument:xmlns:manifest:1.0"}; class ASiC_E::Private { public: + string unique_name() const + { + string file; + for(unsigned int i = 0; signatures.count(file = Log::format("META-INF/signatures%u.xml", i++)); ); + return file; + } vector metadata; + map signatures; }; /** @@ -57,7 +60,7 @@ ASiC_E::ASiC_E() } /** - * Opens BDOC container from a file + * Opens ASiC container from a file */ ASiC_E::ASiC_E(const string &path) : ASiContainer(MIMETYPE_ASIC_E) @@ -101,24 +104,28 @@ void ASiC_E::save(const string &path) s.addFile("mimetype", mimetype, zproperty("mimetype"), false); stringstream manifest; - createManifest(manifest); + if(!createManifest().save(manifest)) + THROW("Failed to create manifest XML"); s.addFile("META-INF/manifest.xml", manifest, zproperty("META-INF/manifest.xml")); for(const DataFile *file: dataFiles()) s.addFile(file->fileName(), *(static_cast(file)->m_is), zproperty(file->fileName())); std::set saved; - unsigned int i = 0; for(Signature *iter: signatures()) { - string file = Log::format("META-INF/signatures%u.xml", i++); - auto *signature = static_cast(iter); - if(!saved.insert(signature->signatures.get()).second) + auto *signatures = static_cast(iter)->signatures.get(); + if(!saved.insert(signatures).second) continue; + auto name = find_if(d->signatures.cbegin(), d->signatures.cend(), [signatures](const auto &k){ + return k.second == signatures; + }); + if(name == d->signatures.cend()) + THROW("Unkown signature object"); stringstream ofs; - if(!signature->signatures->save(ofs)) + if(!signatures->save(ofs)) THROW("Failed to create signature XML file."); - s.addFile(file, ofs, zproperty(file)); + s.addFile(name->first, ofs, zproperty(name->first)); } } @@ -142,12 +149,9 @@ void ASiC_E::addAdESSignature(istream &data) THROW("No documents in container, can not add signature."); if(mediaType() != MIMETYPE_ASIC_E) THROW("'%s' format is not supported", mediaType().c_str()); - try { - auto signatures = make_shared(data, this); - for(auto s = signatures->signature(); s; s++) - addSignature(make_unique(signatures, s, this)); + loadSignatures(data, d->unique_name()); } catch(const Exception &e) { @@ -164,14 +168,10 @@ unique_ptr ASiC_E::openInternal(const string &path) /** * Creates BDoc container manifest file and returns its path. * - * Note: If non-ascii characters are present in XML data, we depend on the LANG variable to be set properly - * (see iconv --list for the list of supported encoding values for libiconv). - * - * * @return returns created manifest file path. * @throws Exception exception is thrown if manifest file creation failed. */ -void ASiC_E::createManifest(ostream &os) +XMLDocument ASiC_E::createManifest() const { DEBUG("ASiC_E::createManifest()"); auto doc = XMLDocument::create("manifest", MANIFEST_NS, "manifest"); @@ -184,8 +184,15 @@ void ASiC_E::createManifest(ostream &os) add("/", mediaType()); for(const DataFile *file: dataFiles()) add(file->fileName(), file->mediaType()); - if(!doc.save(os)) - THROW("Failed to create manifest XML"); + return doc; +} + +void ASiC_E::loadSignatures(istream &data, const string &file) +{ + auto signatures = make_shared(data, mediaType()); + d->signatures.emplace(file, signatures.get()); + for(auto s = signatures->signature(); s; s++) + addSignature(make_unique(signatures, s, this)); } /** @@ -251,9 +258,7 @@ void ASiC_E::parseManifestAndLoadFiles(const ZipSerialize &z) try { auto data = z.extract(file); - auto signatures = make_shared(data, this); - for(auto s = signatures->signature(); s; s++) - addSignature(make_unique(signatures, s, this)); + loadSignatures(data, file); } catch(const Exception &e) { @@ -286,7 +291,9 @@ Signature* ASiC_E::prepareSignature(Signer *signer) THROW("No documents in container, can not sign container."); if(!signer) THROW("Null pointer in ASiC_E::sign"); - return addSignature(make_unique(newSignatureId(), this, signer)); + auto signatures = make_shared(); + d->signatures.emplace(d->unique_name(), signatures.get()); + return addSignature(make_unique(signatures, newSignatureId(), this, signer)); } Signature *ASiC_E::sign(Signer* signer) diff --git a/src/ASiC_E.h b/src/ASiC_E.h index 0a61ba87f..c7887d9fb 100644 --- a/src/ASiC_E.h +++ b/src/ASiC_E.h @@ -23,6 +23,8 @@ namespace digidoc { + struct XMLDocument; + /** * Implements the BDOC specification of the signed digital document container. * Container can contain several files and all these files can be signed using @@ -34,10 +36,10 @@ namespace digidoc class ASiC_E final : public ASiContainer { public: - static const std::string_view ASIC_TM_PROFILE; - static const std::string_view ASIC_TS_PROFILE; - static const std::string_view ASIC_TMA_PROFILE; - static const std::string_view ASIC_TSA_PROFILE; + static constexpr std::string_view ASIC_TM_PROFILE = "time-mark"; + static constexpr std::string_view ASIC_TS_PROFILE = "time-stamp"; + static constexpr std::string_view ASIC_TMA_PROFILE = "time-mark-archive"; + static constexpr std::string_view ASIC_TSA_PROFILE = "time-stamp-archive"; ~ASiC_E() final; void save(const std::string &path = {}) final; @@ -54,7 +56,8 @@ namespace digidoc ASiC_E(); ASiC_E(const std::string &path); DISABLE_COPY(ASiC_E); - void createManifest(std::ostream &os); + XMLDocument createManifest() const; + void loadSignatures(std::istream &data, const std::string &file); void parseManifestAndLoadFiles(const ZipSerialize &z); class Private; diff --git a/src/ASiC_S.cpp b/src/ASiC_S.cpp index 78fa9b51e..6cd83fc4a 100644 --- a/src/ASiC_S.cpp +++ b/src/ASiC_S.cpp @@ -61,7 +61,7 @@ ASiC_S::ASiC_S(const string &path): ASiContainer(MIMETYPE_ASIC_S) if(!signatures().empty()) THROW("Can not add signature to ASiC-S container which already contains a signature."); auto data = z.extract(file); - auto signatures = make_shared(data, this); + auto signatures = make_shared(data, mediaType()); for(auto s = signatures->signature(); s; s++) addSignature(make_unique(signatures, s, this)); } diff --git a/src/SignatureXAdES_B.cpp b/src/SignatureXAdES_B.cpp index aca9988c2..24d396b60 100644 --- a/src/SignatureXAdES_B.cpp +++ b/src/SignatureXAdES_B.cpp @@ -190,7 +190,7 @@ int initXmlSecCallback() return is; }, [](void *ctx, char *buf, int len) -> int { - auto *is = static_cast(ctx); + auto *is = static_cast(ctx); is->read(buf, len); return int(is->gcount()); }, @@ -207,7 +207,7 @@ Signatures::Signatures() addNS(XADES_NS, "xades"); } -Signatures::Signatures(istream &data, ASiContainer *container) +Signatures::Signatures(istream &data, string_view mediaType) : XMLDocument(openStream(data)) { /* http://www.etsi.org/deliver/etsi_ts/102900_102999/102918/01.03.01_60/ts_102918v010301p.pdf @@ -219,7 +219,7 @@ Signatures::Signatures(istream &data, ASiContainer *container) * Case container is ADoc 1.0 then handle document-signatures root element */ try { - if(container->mediaType() == ASiC_E::MIMETYPE_ADOC && name() == "document-signatures" && ns() == OPENDOCUMENT_NS) + if(mediaType == ASiC_E::MIMETYPE_ADOC && name() == "document-signatures" && ns() == OPENDOCUMENT_NS) validateSchema(File::path(Conf::instance()->xsdPath(), "OpenDocument_dsig.xsd")); else validateSchema(File::path(Conf::instance()->xsdPath(), "en_31916201v010101.xsd")); @@ -234,8 +234,8 @@ Signatures::Signatures(istream &data, ASiContainer *container) /** * Creates an empty BDOC-BES signature with mandatory XML nodes. */ -SignatureXAdES_B::SignatureXAdES_B(unsigned int id, ASiContainer *container, Signer *signer) - : signatures(make_shared()) +SignatureXAdES_B::SignatureXAdES_B(const shared_ptr &signatures, unsigned int id, ASiContainer *container, Signer *signer) + : signatures(signatures) , bdoc(container) { X509Cert c = signer->cert(); @@ -295,7 +295,7 @@ SignatureXAdES_B::SignatureXAdES_B(unsigned int id, ASiContainer *container, Sig * @param bdoc BDOC container * @throws SignatureException */ -SignatureXAdES_B::SignatureXAdES_B(const std::shared_ptr &signatures, XMLNode s, ASiContainer *container) +SignatureXAdES_B::SignatureXAdES_B(const shared_ptr &signatures, XMLNode s, ASiContainer *container) : signatures(signatures) , signature(s) , bdoc(container) diff --git a/src/SignatureXAdES_B.h b/src/SignatureXAdES_B.h index ee84bea9e..67605d1a0 100644 --- a/src/SignatureXAdES_B.h +++ b/src/SignatureXAdES_B.h @@ -43,7 +43,7 @@ namespace digidoc { public: explicit Signatures(); - Signatures(std::istream &data, ASiContainer *container); + Signatures(std::istream &data, std::string_view mediaType); constexpr XMLNode signature() const noexcept { @@ -55,7 +55,7 @@ namespace digidoc { public: - SignatureXAdES_B(unsigned int id, ASiContainer *bdoc, Signer *signer); + SignatureXAdES_B(const std::shared_ptr &signatures, unsigned int id, ASiContainer *bdoc, Signer *signer); SignatureXAdES_B(const std::shared_ptr &signatures, XMLNode s, ASiContainer *container); ~SignatureXAdES_B(); diff --git a/src/SignatureXAdES_LT.cpp b/src/SignatureXAdES_LT.cpp index e4ad59603..a69940d67 100644 --- a/src/SignatureXAdES_LT.cpp +++ b/src/SignatureXAdES_LT.cpp @@ -35,11 +35,11 @@ using namespace digidoc; using namespace std; -SignatureXAdES_LT::SignatureXAdES_LT(unsigned int id, ASiContainer *bdoc, Signer *signer) -: SignatureXAdES_T(id, bdoc, signer) +SignatureXAdES_LT::SignatureXAdES_LT(const shared_ptr &signatures, unsigned int id, ASiContainer *bdoc, Signer *signer) +: SignatureXAdES_T(signatures, id, bdoc, signer) {} -SignatureXAdES_LT::SignatureXAdES_LT(const std::shared_ptr &signatures, XMLNode s, ASiContainer *container) +SignatureXAdES_LT::SignatureXAdES_LT(const shared_ptr &signatures, XMLNode s, ASiContainer *container) : SignatureXAdES_T(signatures, s, container) { try { diff --git a/src/SignatureXAdES_LT.h b/src/SignatureXAdES_LT.h index 1cab1a7c3..47b345061 100644 --- a/src/SignatureXAdES_LT.h +++ b/src/SignatureXAdES_LT.h @@ -29,7 +29,7 @@ class OCSP; class SignatureXAdES_LT: public SignatureXAdES_T { public: - SignatureXAdES_LT(unsigned int id, ASiContainer *bdoc, Signer *signer); + SignatureXAdES_LT(const std::shared_ptr &signatures, unsigned int id, ASiContainer *bdoc, Signer *signer); SignatureXAdES_LT(const std::shared_ptr &signatures, XMLNode s, ASiContainer *container); std::string trustedSigningTime() const override;