mirror of
https://git.code.sf.net/p/linux-ima/ima-evm-utils
synced 2025-07-01 13:21:12 +02:00
Install the swtpm package, if available
The "boot_aggregate.test" requires either a hardware or software TPM. Support using the swtpm, if packaged for the distro, in addition to tpm_server. Note: Some travis/<distro>.sh scripts are links to other scripts. Don't fail the build of the linked script if the swtpm package doesn't exist. Signed-off-by: Mimi Zohar <zohar@linux.ibm.com> Reviewed-by: Petr Vorel <pvorel@suse.cz> Acked-by: Bruno Meneguele <bmeneg@redhat.com>
This commit is contained in:
@ -75,4 +75,4 @@ before_install:
|
||||
script:
|
||||
- INSTALL="${DISTRO%%:*}"
|
||||
- INSTALL="${INSTALL%%/*}"
|
||||
- docker run -t ima-evm-utils /bin/sh -c "cd travis && if [ \"$VARIANT\" ]; then ARCH=\"$ARCH\" ./$INSTALL.$VARIANT.sh; fi && ARCH=\"$ARCH\" CC=\"$CC\" TSS=\"$TSS\" ./$INSTALL.sh && if [ ! \"$VARIANT\" ]; then which tpm_server || ../tests/install-swtpm.sh; fi && CC=\"$CC\" VARIANT=\"$VARIANT\" ../build.sh"
|
||||
- docker run -t ima-evm-utils /bin/sh -c "cd travis && if [ \"$VARIANT\" ]; then ARCH=\"$ARCH\" ./$INSTALL.$VARIANT.sh; fi && ARCH=\"$ARCH\" CC=\"$CC\" TSS=\"$TSS\" ./$INSTALL.sh && if [ ! \"$VARIANT\" ]; then which tpm_server || which swtpm || ../tests/install-swtpm.sh; fi && CC=\"$CC\" VARIANT=\"$VARIANT\" ../build.sh"
|
||||
|
@ -33,11 +33,15 @@ else
|
||||
ASCII_RUNTIME_MEASUREMENTS="./sample-ascii_runtime_measurements-pcrs-8-9"
|
||||
export TPM_INTERFACE_TYPE="socsim"
|
||||
export TPM_COMMAND_PORT=2321
|
||||
export TPM_PLATFORM_PORT=2322
|
||||
export TPM_SERVER_NAME="localhost"
|
||||
export TPM_SERVER_TYPE="raw"
|
||||
|
||||
fi
|
||||
|
||||
# Only stop this test's software TPM. Preferred method: "tsstpmcmd -stop"
|
||||
cleanup() {
|
||||
if [ ! -z "${SWTPM_PPID}" ]; then
|
||||
if [ -n "${SWTPM_PPID}" ]; then
|
||||
if [ -f "${TSSDIR}/tsstpmcmd" ]; then
|
||||
"${TSSDIR}/tsstpmcmd" -stop
|
||||
else
|
||||
@ -48,22 +52,36 @@ cleanup() {
|
||||
|
||||
# Try to start a software TPM if needed.
|
||||
swtpm_start() {
|
||||
local swtpm
|
||||
local swtpm swtpm1
|
||||
|
||||
swtpm="$(which tpm_server)"
|
||||
if [ -z "${swtpm}" ]; then
|
||||
echo "${CYAN}SKIP: Softare TPM (tpm_server) not found${NORM}"
|
||||
swtpm1="$(which swtpm)"
|
||||
if [ -z "${swtpm}" ] && [ -z "${swtpm1}" ]; then
|
||||
echo "${CYAN}SKIP: Softare TPM (tpm_server and swtpm) not found${NORM}"
|
||||
return "$SKIP"
|
||||
fi
|
||||
|
||||
pgrep tpm_server
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "INFO: Software TPM (tpm_server) already running"
|
||||
return 114
|
||||
else
|
||||
echo "INFO: Starting software TPM: ${swtpm}"
|
||||
${swtpm} > /dev/null 2>&1 &
|
||||
SWTPM_PPID=$!
|
||||
if [ -n "${swtpm1}" ]; then
|
||||
pgrep swtpm1
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "INFO: Software TPM (swtpm) already running"
|
||||
return 114
|
||||
else
|
||||
echo "INFO: Starting software TPM: ${swtpm1}"
|
||||
mkdir ./myvtpm
|
||||
${swtpm1} socket --tpmstate dir=./myvtpm --tpm2 --ctrl type=tcp,port=2322 --server type=tcp,port=2321 --flags not-need-init > /dev/null 2>&1 &
|
||||
SWTPM_PPID=$!
|
||||
fi
|
||||
elif [ -n "${swtpm}" ]; then
|
||||
pgrep swtpm
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "INFO: Software TPM (tpm_server) already running"
|
||||
return 114
|
||||
else
|
||||
echo "INFO: Starting software TPM: ${swtpm}"
|
||||
${swtpm} > /dev/null 2>&1 &
|
||||
SWTPM_PPID=$!
|
||||
fi
|
||||
fi
|
||||
return 0
|
||||
}
|
||||
|
@ -41,3 +41,4 @@ yum -y install \
|
||||
which
|
||||
|
||||
yum -y install docbook5-style-xsl || true
|
||||
yum -y install swtpm || true
|
||||
|
Reference in New Issue
Block a user