Skip to content

Commit 1b48cea

Browse files
authored
Merge pull request #2 from mohamed-arm/mohamed_parsec_docker
Add Dockerfile to build parsec-tool
2 parents 7bb416c + 0a7a03d commit 1b48cea

File tree

8 files changed

+216
-0
lines changed

8 files changed

+216
-0
lines changed
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
diff --git a/Cargo.toml b/Cargo.toml
2+
index 488b688..a8cec81 100644
3+
--- a/Cargo.toml
4+
+++ b/Cargo.toml
5+
@@ -13,7 +13,7 @@ documentation = "https://docs.rs/crate/parsec-tool"
6+
rust-version = "1.66.0"
7+
8+
[dependencies]
9+
-parsec-client = "0.16.0"
10+
+parsec-client = { git = "https://github.com/mohamed-arm/parsec-client.git" }
11+
structopt = { version = "0.3.17", default-features = false }
12+
thiserror = "1.0.20"
13+
env_logger = "0.10.0"

docker/Dockerfile

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
# docker image for developing and testing DPU provisioning
2+
#
3+
# AUTHORS
4+
#
5+
# The Veracruz Development Team.
6+
from ${DOCKER_ARCH}golang:1.19 AS go_builder
7+
8+
RUN set -eux; \
9+
echo "iteration 0"; \
10+
git clone https://github.com/veracruz-project/proxy_attestation_server.git --branch main --tags ; \
11+
cd proxy_attestation_server; \
12+
git checkout v0.2.1; \
13+
go build -o ./vts/vts -ldflags "-X 'github.com/veraison/services/config.SchemeLoader=builtin'" github.com/veraison/services/vts/cmd/vts-service; \
14+
go build -o ./provisioning/provisioning -ldflags "-X 'github.com/veraison/services/config.SchemeLoader=builtin'" github.com/veraison/services/provisioning/cmd/provisioning-service; \
15+
go build .; \
16+
ls
17+
18+
from ${DOCKER_ARCH}golang:1.19 AS corim_builder
19+
20+
RUN set -eux; \
21+
go install github.com/veraison/corim/cocli@latest
22+
23+
COPY MyComidPsaIak.json /go/
24+
COPY corimMini.json /go/
25+
RUN cocli comid create --template MyComidPsaIak.json
26+
RUN cocli corim create -m MyComidPsaIak.cbor -t corimMini.json -o psa_corim.cbor
27+
28+
FROM ${DOCKER_ARCH}ubuntu:22.04
29+
30+
ARG VERSION="latest"
31+
32+
ARG USER=root
33+
34+
# Update package lists and install necessary dependencies
35+
RUN apt-get update && \
36+
apt-get install -y wget curl vim && \
37+
apt-get clean
38+
39+
40+
ENV RUSTUP_HOME=/usr/local/rustup \
41+
CARGO_HOME=/usr/local/cargo \
42+
PATH=/usr/local/cargo/bin:$PATH \
43+
RUST_VERSION=1.70.0
44+
45+
RUN set -eux; \
46+
dpkgArch="$(dpkg --print-architecture)"; \
47+
case "${dpkgArch##*-}" in \
48+
amd64) rustArch='x86_64-unknown-linux-gnu'; rustupSha256='3dc5ef50861ee18657f9db2eeb7392f9c2a6c95c90ab41e45ab4ca71476b4338' ;; \
49+
arm64) rustArch='aarch64-unknown-linux-gnu'; rustupSha256='32a1532f7cef072a667bac53f1a5542c99666c4071af0c9549795bbdb2069ec1' ;; \
50+
*) echo >&2 "unsupported architecture: ${dpkgArch}"; exit 1 ;; \
51+
esac; \
52+
url="https://static.rust-lang.org/rustup/archive/1.24.3/${rustArch}/rustup-init"; \
53+
wget "$url"; \
54+
echo "${rustupSha256} *rustup-init" | sha256sum -c -; \
55+
chmod +x rustup-init; \
56+
./rustup-init -y --no-modify-path --profile minimal --default-toolchain $RUST_VERSION --default-host ${rustArch}; \
57+
rm rustup-init; \
58+
rm -rf /usr/local/cargo/registry/*/github.com-*
59+
60+
61+
COPY 1000-use-local-parsec-client.patch /
62+
63+
USER root
64+
RUN mkdir -p ~/src ; \
65+
git clone https://github.com/parallaxsecond/parsec-tool.git ~/src/parsec-tool; \
66+
cd ~/src/parsec-tool; \
67+
git apply /1000-use-local-parsec-client.patch; \
68+
rustup install stable; \
69+
rustup default stable; \
70+
cd ~/src/parsec-tool; \
71+
cargo build; \
72+
mkdir -p /tmp/dpu; \
73+
cp ~/src/parsec-tool/target/debug/parsec-tool /tmp/dpu/parsec_app; \
74+
rm -r ~/src/parsec-tool;
75+
76+
RUN mkdir /opt/veraison/; \
77+
mkdir /opt/veraison/vts; \
78+
mkdir /opt/veraison/vts/plugins; \
79+
mkdir /opt/veraison/provisioning; \
80+
mkdir /opt/veraison/provisioning/plugins; \
81+
mkdir ~/example/
82+
83+
COPY --from=go_builder /go/proxy_attestation_server/vts /opt/veraison/vts/
84+
COPY --from=go_builder /go/proxy_attestation_server/provisioning /opt/veraison/provisioning/
85+
COPY --from=go_builder /go/proxy_attestation_server/proxy_attestation_server /opt/veraison/
86+
COPY --from=corim_builder /go/psa_corim.cbor /opt/veraison/
87+
88+
COPY vts_config.yaml /opt/veraison/vts/config.yaml
89+
COPY --from=go_builder /go/proxy_attestation_server/vts/skey.jwk /opt/veraison/vts/
90+
COPY provisioning_config.yaml /opt/veraison/provisioning/config.yaml

docker/Makefile

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
2+
VERSION = v1.0
3+
CONTAINER_NAME = dpu_build
4+
5+
DOCKER_BUILD_CMD = DOCKER_BUILDKIT=1 docker build
6+
DOCKER_CREATE_CMD = docker create
7+
DOCKER_BUILD_ARGS = --build-arg ARCH=aarch64 --build-arg DOCKER_ARCH=arm64v8/ --build-arg VERSION=$(VERSION)
8+
9+
10+
build:
11+
$(DOCKER_BUILD_CMD) $(DOCKER_BUILD_ARGS) -t $(CONTAINER_NAME):$(VERSION) -f Dockerfile .
12+
13+
exec:
14+
docker run -ti -v `pwd`/..:/work $(CONTAINER_NAME):v1.0

docker/MyComidPsaIak.json

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
{
2+
"lang": "en-GB",
3+
"tag-identity": {
4+
"id": "366D0A0A-5988-45ED-8488-2F2A544F6242",
5+
"version": 0
6+
},
7+
"entities": [
8+
{
9+
"name": "ACME Ltd.",
10+
"regid": "https://acme.example",
11+
"roles": [
12+
"tagCreator",
13+
"creator",
14+
"maintainer"
15+
]
16+
}
17+
],
18+
"triples": {
19+
"attester-verification-keys": [
20+
{
21+
"environment": {
22+
"class": {
23+
"id": {
24+
"type": "psa.impl-id",
25+
"value": "YWNtZS1pbXBsZW1lbnRhdGlvbi1pZC0wMDAwMDAwMDE="
26+
},
27+
"vendor": "ACME",
28+
"model": "RoadRunner"
29+
},
30+
"instance": {
31+
"type": "ueid",
32+
"value": "AUPrpZ0QYvwASGLQxlP3km/UKvWLBi5bSilQndDQphu7"
33+
}
34+
},
35+
"verification-keys": [
36+
{
37+
"key": "-----BEGIN PUBLIC KEY-----\nMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEXwVdOdmtYInxM35s+VcOb4QlXxb4zZzkoKKNek+35NNgNyqBTwfCWiSFv0e8hEdAxZv//9J2MoJNdk20UO6fIg==\n-----END PUBLIC KEY-----"
38+
}
39+
]
40+
}
41+
]
42+
}
43+
}

docker/ca-cert.conf

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
[req]
2+
default_bits = 2048
3+
prompt = no
4+
default_md = sha256
5+
x509_extensions = v3_req
6+
distinguished_name = dn
7+
8+
[dn]
9+
C = Mx
10+
ST = Veracruz
11+
L = Veracruz
12+
O = Zibble Zabble
13+
emailAddress = [email protected]
14+
CN = zibblezabble
15+
16+
[v3_req]
17+
subjectAltName = @alt_names
18+
19+
[alt_names]
20+
DNS.1 = zabble.zibble
21+
DNS.2 = www.zabble.zibble

docker/corimMini.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"corim-id": "5c57e8f4-46cd-421b-91c9-08cf93e13cfc",
3+
"profiles": [
4+
"http://amazon.com"
5+
]
6+
}

docker/provisioning_config.yaml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
provisioning:
2+
listen-addr: 127.0.0.1:8888
3+
plugin:
4+
backend: builtin
5+
go-plugin:
6+
dir: ./plugins/
7+
vts:
8+
server-addr: 127.0.0.1:50051
9+
logging:
10+
level: debug

docker/vts_config.yaml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
plugin:
2+
backend: go-plugin
3+
go-plugin:
4+
dir: ./plugins/
5+
ta-store:
6+
backend: memory
7+
en-store:
8+
backend: memory
9+
po-store:
10+
backend: memory
11+
po-agent:
12+
backend: opa
13+
vts:
14+
server-addr: 127.0.0.1:50051
15+
ear-signer:
16+
alg: ES256
17+
key: ./skey.jwk
18+
logging:
19+
level: debug

0 commit comments

Comments
 (0)