@@ -33,6 +33,21 @@ docker build ./ -f "$SCRIPT_DIR"/Dockerfile.cosign -t cosign
3333COSIGN_CMD=" docker run --user=$( id -u) :$( id -g) --rm -v $WORKDIR /:$WORKDIR / cosign"
3434CMD=" $COSIGN_CMD trusted-root create"
3535
36+ FULCIO_SIGNING_CONFIGS=" "
37+
38+ add_fulcio_to_signing_config () {
39+ if [ -n " $FULCIO_SIGNING_CONFIGS " ]; then
40+ FULCIO_SIGNING_CONFIGS=" $FULCIO_SIGNING_CONFIGS ,
41+ "
42+ fi
43+ FULCIO_SIGNING_CONFIGS=" $FULCIO_SIGNING_CONFIGS {
44+ \" url\" : \" $1 \" ,
45+ \" majorApiVersion\" : 1,
46+ \" validFor\" : { \" start\" : \" 2025-05-25T00:00:00Z\" },
47+ \" operator\" : \" scaffolding-setup-sigstore-env\"
48+ }"
49+ }
50+
3651REKOR_SIGNING_CONFIGS=" "
3752
3853add_rekor_to_signing_config () {
@@ -64,73 +79,75 @@ add_tsa_to_signing_config () {
6479}
6580
6681while [[ " $# " -gt 0 ]]; do
67- case $1 in
68- --fulcio)
69- FULCIO_URL=" $2 "
70- KEYFILE=" $3 "
71- shift
72- shift
73-
74- # copy to our WORKDIR to be mounted in our cosign container.
75- cp " $KEYFILE " " $WORKDIR " /
76- KEYFILE=$WORKDIR /$( basename " $KEYFILE " )
77-
78- FNAME=$( mktemp --tmpdir=" $WORKDIR " fulcio_cert.XXXX.pem)
79- curl --fail -o " $FNAME " " $FULCIO_URL " /api/v1/rootCert
80- CMD=" $CMD --certificate-chain $FNAME --fulcio-uri $FULCIO_URL "
81-
82- CMD=" $CMD --ctfe-key $KEYFILE "
83- ;;
84-
85- --rekor-v1-url)
86- URL=" $2 "
87- shift
88-
89- add_rekor_to_signing_config " $URL " 1
90-
91- FNAME=$( mktemp --tmpdir=" $WORKDIR " rekorv1_pub.XXXX.pem)
92- curl --fail -o " $FNAME " " $URL " /api/v1/log/publicKey
93- CMD=" $CMD --rekor-key $FNAME --rekor-url $URL "
94- ;;
95-
96- --rekor-v2)
97- URL=" $2 "
98- KEYFILE=" $3 "
99- HOST=" $4 "
100- shift
101- shift
102- shift
103-
104- add_rekor_to_signing_config " $URL " 2
105-
106- # copy to our WORKDIR to be mounted in our cosign container.
107- cp " $KEYFILE " " $WORKDIR " /
108- KEYFILE=$WORKDIR /$( basename " $KEYFILE " )
109-
110- CMD=" $CMD --rekor-key $KEYFILE ,$HOST --rekor-url http://$HOST "
111- ;;
112-
113- --timestamp-url)
114- URL=" $2 "
115- shift
116-
117- add_tsa_to_signing_config " $URL "
118-
119- FNAME=$( mktemp --tmpdir=" $WORKDIR " timestamp_certs.XXXX.pem)
120- curl --fail -o " $FNAME " " $URL " /api/v1/timestamp/certchain
121- CMD=" $CMD --timestamp-certificate-chain $FNAME --timestamp-uri $URL "
122- ;;
123-
124- --oidc-url)
125- OIDC_URL=" $2 "
126- shift
127- ;;
128-
129- * ) echo " Unknown parameter passed: $1 " ;
130- exit 1
131- ;;
132- esac
133- shift
82+ case $1 in
83+ --fulcio)
84+ FULCIO_URL=" $2 "
85+ KEYFILE=" $3 "
86+ shift
87+ shift
88+
89+ add_fulcio_to_signing_config " $FULCIO_URL "
90+
91+ # copy to our WORKDIR to be mounted in our cosign container.
92+ cp " $KEYFILE " " $WORKDIR " /
93+ KEYFILE=$WORKDIR /$( basename " $KEYFILE " )
94+
95+ FNAME=$( mktemp --tmpdir=" $WORKDIR " fulcio_cert.XXXX.pem)
96+ curl --fail -o " $FNAME " " $FULCIO_URL " /api/v1/rootCert
97+ CMD=" $CMD --certificate-chain $FNAME --fulcio-uri $FULCIO_URL "
98+
99+ CMD=" $CMD --ctfe-key $KEYFILE "
100+ ;;
101+
102+ --rekor-v1-url)
103+ URL=" $2 "
104+ shift
105+
106+ add_rekor_to_signing_config " $URL " 1
107+
108+ FNAME=$( mktemp --tmpdir=" $WORKDIR " rekorv1_pub.XXXX.pem)
109+ curl --fail -o " $FNAME " " $URL " /api/v1/log/publicKey
110+ CMD=" $CMD --rekor-key $FNAME --rekor-url $URL "
111+ ;;
112+
113+ --rekor-v2)
114+ URL=" $2 "
115+ KEYFILE=" $3 "
116+ HOST=" $4 "
117+ shift
118+ shift
119+ shift
120+
121+ add_rekor_to_signing_config " $URL " 2
122+
123+ # copy to our WORKDIR to be mounted in our cosign container.
124+ cp " $KEYFILE " " $WORKDIR " /
125+ KEYFILE=$WORKDIR /$( basename " $KEYFILE " )
126+
127+ CMD=" $CMD --rekor-key $KEYFILE ,$HOST --rekor-url http://$HOST "
128+ ;;
129+
130+ --timestamp-url)
131+ URL=" $2 "
132+ shift
133+
134+ add_tsa_to_signing_config " $URL "
135+
136+ FNAME=$( mktemp --tmpdir=" $WORKDIR " timestamp_certs.XXXX.pem)
137+ curl --fail -o " $FNAME " " $URL " /api/v1/timestamp/certchain
138+ CMD=" $CMD --timestamp-certificate-chain $FNAME --timestamp-uri $URL "
139+ ;;
140+
141+ --oidc-url)
142+ OIDC_URL=" $2 "
143+ shift
144+ ;;
145+
146+ * ) echo " Unknown parameter passed: $1 " ;
147+ exit 1
148+ ;;
149+ esac
150+ shift
134151done
135152
136153$CMD > trusted_root.json
@@ -140,12 +157,7 @@ cat << EOF > signing_config.json
140157{
141158 "mediaType": "application/vnd.dev.sigstore.signingconfig.v0.2+json",
142159 "caUrls": [
143- {
144- "url": "$FULCIO_URL ",
145- "majorApiVersion": 1,
146- "validFor": { "start": "2025-05-25T00:00:00Z" },
147- "operator": "scaffolding-setup-sigstore-env"
148- }
160+ $FULCIO_SIGNING_CONFIGS
149161 ],
150162 "oidcUrls": [
151163 {
0 commit comments