summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-crypt/tpm2-openssl/files/tpm2-openssl-1.2.0-tests-run-with-simulator-in-container.patch')
-rw-r--r--app-crypt/tpm2-openssl/files/tpm2-openssl-1.2.0-tests-run-with-simulator-in-container.patch132
1 files changed, 132 insertions, 0 deletions
diff --git a/app-crypt/tpm2-openssl/files/tpm2-openssl-1.2.0-tests-run-with-simulator-in-container.patch b/app-crypt/tpm2-openssl/files/tpm2-openssl-1.2.0-tests-run-with-simulator-in-container.patch
new file mode 100644
index 000000000000..33b51b6b1028
--- /dev/null
+++ b/app-crypt/tpm2-openssl/files/tpm2-openssl-1.2.0-tests-run-with-simulator-in-container.patch
@@ -0,0 +1,132 @@
+diff --git a/home/salahx/Downloads/run-with-simulator b/home/salahx/Downloads/run-with-simulator
+new file mode 100755
+index 000000000000..e29b591f8d8b
+--- /dev/null
++++ b/test/run-with-simulator
+@@ -0,0 +1,126 @@
++#!/bin/bash
++# SPDX-License-Identifier: BSD-3-Clause
++
++SIM_PORT_DATA=2321
++SIM_PORT_CMD=$((SIM_PORT_DATA+1))
++
++# Run from top dir of this repository
++SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
++TOP_DIR="$(realpath "$SCRIPT_DIR/..")"
++cd "$TOP_DIR" || { echo "Error: cd to cd $TOP_DIR failed"; exit 1; }
++
++
++verify_simulator_is_running() {
++ local pid_tpm=$1
++
++ sleep 1
++ ss -lntp4 2> /dev/null | grep "${pid_tpm}" | grep -q "${SIM_PORT_DATA}"
++ ret_data=$?
++ ss -lntp4 2> /dev/null | grep "${pid_tpm}" | grep -q "${SIM_PORT_CMD}"
++ ret_cmd=$?
++ if [ $ret_data -eq 0 ] && [ $ret_cmd -eq 0 ]; then
++ echo "Simulator with PID ${pid_tpm} bound to port ${SIM_PORT_DATA} and ${SIM_PORT_CMD} successfully."
++ return 0
++ else
++ echo "Error: Port conflict? Cleaning up PID: ${pid_tpm}"
++ return 1
++ fi
++}
++
++build_tpm2_simulator_ibm() (
++ test -d ibmtpm && return
++ echo "---> compiling IBM tpm simulator"
++ mkdir ibmtpm
++ curl -Ls https://downloads.sourceforge.net/project/ibmswtpm2/ibmtpm1682.tar.gz | tar xz -C ibmtpm
++ cd ibmtpm/src && make
++)
++
++start_tpm2_simulator_ibm () {
++ build_tpm2_simulator_ibm || return 1
++
++ echo "---> starting IBM tpm simulator"
++ ibmtpm/src/tpm_server &
++ pid_tpm=$!
++ verify_simulator_is_running $pid_tpm
++}
++
++start_tpm2_simulator_swtpm () {
++ echo "---> starting swtpm simulator"
++ swtpm socket --tpm2 \
++ --server port=$SIM_PORT_DATA \
++ --ctrl type=tcp,port=$SIM_PORT_CMD \
++ --flags not-need-init \
++ --tpmstate dir="$PWD" \
++ --seccomp action=none &
++ pid_tpm=$!
++ verify_simulator_is_running $pid_tpm
++}
++
++start_dbusd () {
++ echo "---> starting dbus daemon"
++ dbus-daemon --session --print-address > /tmp/bus-socket-path.txt &
++ sleep 1
++ DBUS_SESSION_BUS_ADDRESS="$(tail -n1 /tmp/bus-socket-path.txt)"
++ export DBUS_SESSION_BUS_ADDRESS
++}
++
++start_tpm2_abrmd() {
++ local tabrmd_tcti=$1
++
++ echo "---> starting abrmd"
++ local tabrmd_name="com.intel.tss2.Tabrmd${SIM_PORT_DATA}"
++ tpm2-abrmd --session --dbus-name="${tabrmd_name}" --tcti "${tabrmd_tcti}:host=localhost,port=${SIM_PORT_DATA}" &
++ TCTI_ADDRESS="tabrmd:bus_name=${tabrmd_name},bus_type=session"
++ TPM2TOOLS_TCTI="$TCTI_ADDRESS"
++ TPM2OPENSSL_TCTI="$TCTI_ADDRESS"
++ export TPM2TOOLS_TCTI
++ export TPM2OPENSSL_TCTI
++ sleep 1
++# busctl --address="${DBUS_SESSION_BUS_ADDRESS}" list | grep "$tabrmd_name"
++}
++
++start_tpm2_sim_env() {
++ local sim_type=$1
++
++ start_dbusd
++
++ if [ "$sim_type" = "swtpm" ]; then
++ start_tpm2_simulator_swtpm || return 1
++ start_tpm2_abrmd swtpm || return 1
++ elif [ "$sim_type" = "ibm" ]; then
++ start_tpm2_simulator_ibm || return 1
++ start_tpm2_abrmd mssim || return 1
++ else
++ echo "invalid tpm simulator typ"
++ return 1
++ fi
++}
++
++make_check () {
++ echo "Running make check"
++ openssl version
++ tpm2_getcap properties-fixed | head -n 20
++ make check
++}
++
++function cleanup()
++{
++ pkill -P $$
++}
++trap cleanup EXIT
++
++build_tpm2_openssl() {
++ ./bootstrap
++ ./configure CC=gcc --enable-op-digest --enable-op-cipher
++ make
++}
++
++SIM_TYPE=${1:-swtpm}
++SKIP_BUILD=${2:-build}
++if [ "$SKIP_BUILD" = "skip-build" ]; then
++ echo "Skipping the build"
++else
++ build_tpm2_openssl || { echo "Compiling tpm2-openssl failed"; exit 1; }
++fi
++start_tpm2_sim_env "${SIM_TYPE}" || { echo "Starting tpm2 simulator failed ($SIM_TYPE)"; exit 1; }
++make_check || { echo "tpm2-openssl make check failed"; exit 1; }