strongswan/testing/tkm/Dockerfile
2025-09-18 11:13:32 +02:00

60 lines
1.8 KiB
Docker

# Container for TKM testing
#
# Build and usage (called from repository root):
#
# docker build -t strongswan-tkm -f testing/tkm/Dockerfile testing
#
# docker run -it --rm --cap-add net_admin -v $PWD:/strongswan strongswan-tkm
#
# In the container, this may be used to configure strongSwan with TKM support:
#
# /strongswan/configure --disable-defaults --enable-silent-rules --enable-ikev2 --enable-kernel-netlink --enable-pem --enable-pkcs1 --enable-random --enable-sha1 --enable-socket-default --enable-swanctl --enable-tkm
#
# The following script can be used to generate private key, CA cert and example
# config for TKM:
#
# /usr/local/share/tkm/generate-config.sh
#
# Run TKM in the background with:
#
# tkm_keymanager -c tkm.conf -k key.der -r ca.der:1 >/tmp/tkm.log &
#
# Then tests for charon-tkm can be run against TKM:
#
# make -j check TESTS_RUNNERS=tkm TESTS_TKM=1
FROM debian:trixie
ARG packages="autoconf automake bison build-essential ca-certificates ccache \
flex git gperf libssl-dev libtool pkg-config \
gnat gprbuild libahven-dev libxmlada-schema-dev libgmpada-dev \
libalog-dev"
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -qq -y \
--no-install-recommends \
$packages \
&& rm -rf /var/lib/apt/lists/*
COPY scripts/recipes/*.mk /tmp/recipes/
RUN cd /tmp/recipes \
&& make -f 004_spark-crypto.mk \
&& make -f 005_anet.mk \
&& make -f 006_tkm-rpc.mk \
&& make -f 007_x509-ada.mk \
&& make -f 008_xfrm-ada.mk \
&& make -f 009_xfrm-proxy.mk \
&& make -f 010_tkm.mk \
&& rm -rf /tmp/recipes
ENV ADA_PROJECT_PATH=/usr/local/ada/lib/gnat
ENV PATH=/usr/lib/ccache:$PATH
COPY tkm/generate-config.sh /usr/local/share/tkm/
COPY tests/tkm/host2host-initiator/hosts/moon/etc/tkm/tkm.conf /usr/local/share/tkm/
WORKDIR /build
CMD [ "bash" ]