QKDLite Plugin For strongSwan can be co-located together with the strongSwan gateway
in a higher trust zone to provide a quantum-safe connection to the QKDLite node either
locally or over the internet. As shown in diagram above, the connections from the QKDLite
to the plugin are quantum-safe connections.
charon {...plugins {add a qkdlite entry under pluginsqkdlite {# add a global entryglobal {# replace below parameters with existing ETSI API endpoint# and the certs to connect to the endpoint# https of QKDLite ETSI serverkey_source_url=https://localhost:8080# Paired/Remote key source IDremote_key_source_id=SAE_B# certificates to connect to the ETSI endpointcacert=/path/to/CA.crtclientcert=/path/to/client.crtclientkey=/path/to/client.key}}}...# load the plugin in charonload=... qkdlite}
For the following guide we assume that you have 2 strongSwan instances that have installed
the plugin, and you want to connect the 2 instance. We will refer the initiator instance
as alice (the one who will initiate the connection), and responder instance as bob
(the one who will receive the connection).
For the alice instance,
Add ppk configuration for a connection in /etc/swanctl/swanctl.conf.
charon {start-scripts {...}# example configfilelog {stderr {default=1# for more verbose logscfg=2# ...}}# to use for charon-systemdcharon-systemd {journal {default=1# for more verbose logscfg=2# ...}}...}
The plugin is not able to connect to the ETSI API endpoint, it could be a
firewall issue, or invalid/wrong certificates between the strongSwan plugin and
the endpoint. Do a basic curl to the ETSI API endpoint to verify the external cause: