mirror of
https://git.code.sf.net/p/linux-ima/ima-evm-utils
synced 2025-04-30 07:33:37 +02:00

Keep in sync with the kernel IMA, IMA signature tool supports SM2/3 algorithm combination. Because in the current version of OpenSSL 1.1.1, the SM2 algorithm and the public key using the EC algorithm share the same ID 'EVP_PKEY_EC', and the specific algorithm can only be distinguished by the curve name used. This patch supports this feature. Secondly, the openssl 1.1.1 tool does not fully support the signature of SM2/3 algorithm combination, so the openssl3 tool is used in the test case, and there is no this problem with directly calling the openssl 1.1.1 API in evmctl. Signed-off-by: Tianjia Zhang <tianjia.zhang@linux.alibaba.com> [zohar@linux.ibm.com: "COMPILE_SSL: " -> "COMPILE_SSL=" in .travis.yml Reviewed-by: Petr Vorel <pvorel@suse.cz> Signed-off-by: Mimi Zohar <zohar@linux.ibm.com>
101 lines
3.6 KiB
YAML
101 lines
3.6 KiB
YAML
# Copyright (c) 2017-2021 Petr Vorel <pvorel@suse.cz>
|
|
|
|
dist: bionic
|
|
language: C
|
|
services:
|
|
- docker
|
|
|
|
matrix:
|
|
include:
|
|
# 32 bit build
|
|
- os: linux
|
|
env: DISTRO=debian:stable VARIANT=i386 ARCH=i386 TSS=tpm2-tss COMPILE_SSL=openssl-3.0.0-beta1
|
|
compiler: gcc
|
|
|
|
# cross compilation builds
|
|
- os: linux
|
|
env: DISTRO=debian:stable VARIANT=cross-compile ARCH=ppc64el TSS=ibmtss
|
|
compiler: powerpc64le-linux-gnu-gcc
|
|
|
|
- os: linux
|
|
env: DISTRO=debian:stable VARIANT=cross-compile ARCH=arm64 TSS=tpm2-tss
|
|
compiler: aarch64-linux-gnu-gcc
|
|
|
|
- os: linux
|
|
env: DISTRO=debian:stable VARIANT=cross-compile ARCH=s390x TSS=ibmtss
|
|
compiler: s390x-linux-gnu-gcc
|
|
|
|
# musl
|
|
- os: linux
|
|
env: DISTRO=alpine:latest TSS=tpm2-tss
|
|
compiler: gcc
|
|
|
|
# glibc (gcc/clang)
|
|
- os: linux
|
|
env: DISTRO=opensuse/tumbleweed TSS=ibmtss CONTAINER=podman CONTAINER_ARGS="--runtime=/usr/bin/runc --network=host" COMPILE_SSL=openssl-3.0.0-beta1
|
|
compiler: clang
|
|
|
|
- os: linux
|
|
env: DISTRO=opensuse/leap TSS=tpm2-tss
|
|
compiler: gcc
|
|
|
|
- os: linux
|
|
env: DISTRO=ubuntu:groovy TSS=ibmtss COMPILE_SSL=openssl-3.0.0-beta1
|
|
compiler: gcc
|
|
|
|
- os: linux
|
|
env: DISTRO=ubuntu:xenial TSS=tpm2-tss
|
|
compiler: clang
|
|
|
|
- os: linux
|
|
env: DISTRO=fedora:latest TSS=ibmtss
|
|
compiler: clang
|
|
|
|
- os: linux
|
|
env: DISTRO=centos:7 TSS=tpm2-tss
|
|
compiler: gcc
|
|
|
|
- os: linux
|
|
env: DISTRO=centos:latest TSS=tpm2-tss
|
|
compiler: clang
|
|
|
|
- os: linux
|
|
env: DISTRO=debian:testing TSS=tpm2-tss
|
|
compiler: clang
|
|
|
|
- os: linux
|
|
env: DISTRO=debian:stable TSS=ibmtss
|
|
compiler: gcc
|
|
|
|
- os: linux
|
|
env: DISTRO=alt:sisyphus TSS=libtpm2-tss-devel
|
|
compiler: gcc
|
|
|
|
before_install:
|
|
# Tumbleweed requires podman and newest runc due docker incompatible with glibc 2.33 (faccessat2)
|
|
- CONTAINER="${CONTAINER:-docker}"
|
|
- >
|
|
if [ "$CONTAINER" = "podman" ]; then
|
|
# podman
|
|
. /etc/os-release
|
|
sudo sh -c "echo 'deb http://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_${VERSION_ID}/ /' > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list"
|
|
wget -nv https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable/xUbuntu_${VERSION_ID}/Release.key -O- | sudo apt-key add -
|
|
sudo apt update
|
|
sudo apt -y install podman slirp4netns
|
|
|
|
# runc
|
|
sudo curl -L https://github.com/opencontainers/runc/releases/download/v1.0.0-rc93/runc.amd64 -o /usr/bin/runc
|
|
sudo chmod +x /usr/bin/runc
|
|
fi
|
|
- $CONTAINER info
|
|
|
|
- DIR="/usr/src/ima-evm-utils"
|
|
- printf "FROM $DISTRO\nRUN mkdir -p $DIR\nWORKDIR $DIR\nCOPY . $DIR\n" > Dockerfile
|
|
- cat Dockerfile
|
|
- $CONTAINER build $CONTAINER_ARGS -t ima-evm-utils .
|
|
|
|
script:
|
|
- INSTALL="${DISTRO%%:*}"
|
|
- INSTALL="${INSTALL%%/*}"
|
|
- $CONTAINER run $CONTAINER_ARGS -t ima-evm-utils /bin/sh -c "if [ \"$VARIANT\" ]; then ARCH=\"$ARCH\" ./ci/$INSTALL.$VARIANT.sh; fi && ARCH=\"$ARCH\" CC=\"$CC\" TSS=\"$TSS\" ./ci/$INSTALL.sh && if [ "$COMPILE_SSL" ]; then COMPILE_SSL="$COMPILE_SSL" ./tests/install-openssl3.sh; fi && if [ ! \"$VARIANT\" ]; then which tpm_server || which swtpm || if which tssstartup; then ./tests/install-swtpm.sh; fi; fi && CC=\"$CC\" VARIANT=\"$VARIANT\" ./build.sh"
|