Skip to content

Commit bc518d4

Browse files
authored
Use libxml2/xmsec1 for TSL parsing and validation (#604)
IB-7947 Signed-off-by: Raul Metsma <[email protected]>
1 parent 0adcc6b commit bc518d4

37 files changed

+1391
-1994
lines changed

.github/workflows/build.yml

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ permissions:
55
env:
66
BUILD_NUMBER: ${{ github.run_number }}
77
CMAKE_BUILD_PARALLEL_LEVEL: 4
8-
UBUNTU_DEPS: cmake xsdcxx libxml-security-c-dev libxml2-dev zlib1g-dev
8+
UBUNTU_DEPS: cmake xsdcxx libxml-security-c-dev libxml2-dev libxmlsec1-dev zlib1g-dev
99
jobs:
1010
macos:
1111
name: Build on macOS for ${{ matrix.target }}
@@ -47,6 +47,9 @@ jobs:
4747
- name: Build libxml2
4848
if: steps.cache.outputs.cache-hit != 'true'
4949
run: ./prepare_osx_build_environment.sh libxml2 ${{ matrix.target }}
50+
- name: Build xmlsec1
51+
if: steps.cache.outputs.cache-hit != 'true'
52+
run: ./prepare_osx_build_environment.sh xmlasec ${{ matrix.target }}
5053
- name: Move to cache
5154
if: steps.cache.outputs.cache-hit != 'true'
5255
run: |
@@ -86,7 +89,7 @@ jobs:
8689
- name: Install Deps
8790
run: |
8891
dnf install -y --setopt=install_weak_deps=False \
89-
git gcc-c++ cmake rpm-build xml-security-c-devel libxml2-devel zlib-devel doxygen boost-test swig python3-devel java-17-openjdk-devel xsd minizip-devel
92+
git gcc-c++ cmake rpm-build xml-security-c-devel libxml2-devel xmlsec1-openssl-devel libtool-ltdl-devel zlib-devel doxygen boost-test swig python3-devel java-17-openjdk-devel xsd minizip-devel
9093
- name: Install CMake
9194
if: matrix.container == 39
9295
run: |
@@ -113,14 +116,14 @@ jobs:
113116
container: ubuntu:${{ matrix.container }}
114117
strategy:
115118
matrix:
116-
container: ['20.04', '22.04', '23.10', '24.04']
119+
container: ['20.04', '22.04', '24.04']
117120
env:
118121
DEBIAN_FRONTEND: noninteractive
119122
DEBFULLNAME: github-actions
120123
121124
steps:
122125
- name: Install dependencies
123-
run: apt update -qq && apt install --no-install-recommends -y git lsb-release build-essential devscripts debhelper ${UBUNTU_DEPS} doxygen swig openjdk-11-jdk-headless libpython3-dev python3-setuptools libboost-test-dev lintian
126+
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
124127
- name: Checkout
125128
uses: actions/checkout@v4
126129
with:
@@ -217,7 +220,7 @@ jobs:
217220
cmake -B build -S .
218221
cmake --build build --target docs
219222
- name: Deploy
220-
uses: peaceiris/actions-gh-pages@v3
223+
uses: peaceiris/actions-gh-pages@v4
221224
with:
222225
github_token: ${{ secrets.GITHUB_TOKEN }}
223226
publish_dir: ./build/doc

CMakeLists.txt

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,12 @@ endif()
66
if(POLICY CMP0122)
77
cmake_policy(SET CMP0122 NEW)
88
endif()
9+
if(POLICY CMP0167)
10+
cmake_policy(SET CMP0167 NEW)
11+
endif()
912
project(libdigidocpp VERSION 3.18.0)
1013
set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules)
14+
list(APPEND CMAKE_PREFIX_PATH ${CMAKE_INSTALL_PREFIX})
1115

1216
include(VersionInfo)
1317
include(GNUInstallDirs)
@@ -52,9 +56,20 @@ find_package(XmlSecurityC REQUIRED)
5256
find_package(XSD 4.0 REQUIRED)
5357
find_package(ZLIB REQUIRED)
5458
find_package(MiniZip 1 QUIET)
55-
if(UNIX AND NOT APPLE)
59+
add_library(xmlsec INTERFACE)
60+
if(UNIX)
5661
find_package(PkgConfig)
57-
pkg_check_modules(MINIZIP minizip IMPORTED_TARGET)
62+
pkg_check_modules(XMLSEC1_OPENSSL xmlsec1-openssl REQUIRED IMPORTED_TARGET)
63+
target_link_libraries(xmlsec INTERFACE PkgConfig::XMLSEC1_OPENSSL)
64+
if(NOT APPLE)
65+
pkg_check_modules(MINIZIP minizip IMPORTED_TARGET)
66+
endif()
67+
else()
68+
find_package(unofficial-xmlsec REQUIRED)
69+
target_link_libraries(xmlsec INTERFACE
70+
unofficial::xmlsec::xmlsec1
71+
unofficial::xmlsec::xmlsec1-openssl
72+
)
5873
endif()
5974
find_package(SWIG)
6075
if(SWIG_FOUND)

debian/control

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,12 @@ Priority: optional
44
Maintainer: RIA <[email protected]>
55
Build-Depends:
66
debhelper-compat (= 12),
7+
pkg-config,
78
cmake,
89
libxml-security-c-dev,
910
xsdcxx (>= 4.0) | xsd (>= 4.0),
1011
libxml2-dev,
12+
libxmlsec1-dev,
1113
doxygen,
1214
swig,
1315
java11-sdk-headless,

etc/schema/ts_119612v020101_additionaltypes_xsd.xsd

Lines changed: 0 additions & 43 deletions
This file was deleted.

etc/schema/ts_119612v020101_additionaltypes_xsd.xsd.orig

Lines changed: 0 additions & 43 deletions
This file was deleted.

etc/schema/ts_119612v020101_sie_xsd.xsd

Lines changed: 0 additions & 92 deletions
This file was deleted.

0 commit comments

Comments
 (0)