@@ -84,3 +84,117 @@ if [ "${res}" != "${exp}" ]; then
8484 echo " Actual : ${res} "
8585 exit 1
8686fi
87+
88+ # Enter the model directory and sign and verify there
89+ pushd " ${TMPDIR} " & > /dev/null || exit 1
90+
91+ echo
92+ echo " Testing 'sign key' when in model directory"
93+
94+ if ! python -m model_signing \
95+ sign key \
96+ --signature " $( basename " ${sigfile} " ) " \
97+ --private_key " ${DIR} /keys/certificate/signing-key.pem" \
98+ --ignore-paths " $( basename " ${ignorefile} " ) " \
99+ . ; then
100+ echo " Error: 'sign key' failed"
101+ exit 1
102+ fi
103+
104+ if ! python -m model_signing \
105+ verify key \
106+ --signature " $( basename " ${sigfile} " ) " \
107+ --public_key " ${DIR} /keys/certificate/signing-key-pub.pem" \
108+ --ignore-paths " $( basename " ${ignorefile} " ) " \
109+ . ; then
110+ echo " Error: 'verify key' failed"
111+ exit 1
112+ fi
113+
114+ # Check which files are part of signature
115+ res=$( get_signed_files " ${sigfile} " )
116+ exp=' ["signme-1","signme-2"]'
117+ if [ " ${res} " != " ${exp} " ]; then
118+ echo " Error: Unexpected files were signed"
119+ echo " Expected: ${exp} "
120+ echo " Actual : ${res} "
121+ exit 1
122+ fi
123+
124+ echo
125+ echo " Testing 'sign/verify' certificate when in model directory"
126+
127+ if ! python -m model_signing \
128+ sign certificate \
129+ --signature " $( basename " ${sigfile} " ) " \
130+ --private_key " ${DIR} /keys/certificate/signing-key.pem" \
131+ --signing_certificate " ${DIR} /keys/certificate/signing-key-cert.pem" \
132+ --certificate_chain " ${DIR} /keys/certificate/int-ca-cert.pem" \
133+ --ignore-paths " $( basename " ${ignorefile} " ) " \
134+ . ; then
135+ echo " Error: 'sign key' failed"
136+ exit 1
137+ fi
138+
139+ if ! python -m model_signing \
140+ verify certificate \
141+ --signature " $( basename " ${sigfile} " ) " \
142+ --certificate_chain " ${DIR} /keys/certificate/ca-cert.pem" \
143+ --ignore-paths " $( basename " ${ignorefile} " ) " \
144+ . ; then
145+ echo " Error: 'sign key' failed"
146+ exit 1
147+ fi
148+
149+ # Check which files are part of signature
150+ res=$( get_signed_files " ${sigfile} " )
151+ exp=' ["signme-1","signme-2"]'
152+ if [ " ${res} " != " ${exp} " ]; then
153+ echo " Error: Unexpected files were signed"
154+ echo " Expected: ${exp} "
155+ echo " Actual : ${res} "
156+ exit 1
157+ fi
158+
159+ echo
160+ echo " Testing 'sign/verify' certificate when in subdir of model directory and using '..'"
161+
162+ rm -f " $( basename " ${sigfile} " ) "
163+ mkdir subdir
164+ pushd subdir 1> /dev/null || exit 1
165+
166+ if ! python -m model_signing \
167+ sign certificate \
168+ --signature " ../$( basename " ${sigfile} " ) " \
169+ --private_key " ${DIR} /keys/certificate/signing-key.pem" \
170+ --signing_certificate " ${DIR} /keys/certificate/signing-key-cert.pem" \
171+ --certificate_chain " ${DIR} /keys/certificate/int-ca-cert.pem" \
172+ --ignore-paths " ../$( basename " ${ignorefile} " ) " \
173+ .. ; then
174+ echo " Error: 'sign key' failed"
175+ exit 1
176+ fi
177+
178+ popd 1> /dev/null || exit 1 # exit subdir
179+
180+ if ! python -m model_signing \
181+ verify certificate \
182+ --signature " $( basename " ${sigfile} " ) " \
183+ --certificate_chain " ${DIR} /keys/certificate/ca-cert.pem" \
184+ --ignore-paths " $( basename " ${ignorefile} " ) " \
185+ . ; then
186+ echo " Error: 'sign key' failed"
187+ exit 1
188+ fi
189+
190+ # Check which files are part of signature
191+ res=$( get_signed_files " ${sigfile} " )
192+ exp=' ["signme-1","signme-2"]'
193+ if [ " ${res} " != " ${exp} " ]; then
194+ echo " Error: Unexpected files were signed"
195+ echo " Expected: ${exp} "
196+ echo " Actual : ${res} "
197+ exit 1
198+ fi
199+
200+ popd 1> /dev/null || exit 1
0 commit comments