|
53 | 53 | if [ "$VERDICT" = "VERIFIED" ] && [ "$ADMISSION" = "ADMIT" ]; then |
54 | 54 | [ "$VERIFIED" = "true" ] || { echo "Consistency violation: VERIFIED+ADMIT must have verified=true" >&2; exit 1; } |
55 | 55 | fi |
| 56 | + if [ "$VERIFIED" = "true" ]; then |
| 57 | + [ "$VERDICT" = "VERIFIED" ] || { echo "Consistency violation: verified=true requires verdict=VERIFIED" >&2; exit 1; } |
| 58 | + [ "$ADMISSION" = "ADMIT" ] || { echo "Consistency violation: verified=true requires admission=ADMIT" >&2; exit 1; } |
| 59 | + fi |
56 | 60 | fi |
57 | 61 | fi |
58 | 62 |
|
@@ -166,14 +170,17 @@ jobs: |
166 | 170 | if [[ ! "$VC_PROOF_REF" =~ ^sha256:[a-f0-9]{64}$ ]]; then |
167 | 171 | echo "Invalid proof_ref format: $VC_PROOF_REF" >&2; exit 1 |
168 | 172 | fi |
| 173 | + else |
| 174 | + [ -z "$VC_PROOF_REF" ] || { echo "$VC_VERDICT must have an empty proof_ref" >&2; exit 1; } |
169 | 175 | fi |
170 | | - if [ -n "$VERDICT" ]; then |
171 | | - [ "$VERDICT" = "$VC_VERDICT" ] || { echo "Scalar verdict ($VERDICT) != VC verdict ($VC_VERDICT)" >&2; exit 1; } |
172 | | - fi |
173 | | - if [ -n "$ADMISSION" ]; then |
174 | | - [ "$ADMISSION" = "$VC_ADMISSION" ] || { echo "Scalar admission ($ADMISSION) != VC admission ($VC_ADMISSION)" >&2; exit 1; } |
175 | | - fi |
176 | | - if [ -n "$PROOF_REF" ]; then |
177 | | - [ "$PROOF_REF" = "$VC_PROOF_REF" ] || { echo "Scalar proof_ref != VC proof_ref" >&2; exit 1; } |
| 176 | + EXPECTED_VERIFIED="false" |
| 177 | + if [ "$VC_VERDICT" = "VERIFIED" ] && [ "$VC_ADMISSION" = "ADMIT" ]; then |
| 178 | + EXPECTED_VERIFIED="true" |
178 | 179 | fi |
| 180 | + [ "$VERIFIED" = "$EXPECTED_VERIFIED" ] || { echo "Consistency violation: verified=$VERIFIED but expected $EXPECTED_VERIFIED for verdict=$VC_VERDICT admission=$VC_ADMISSION" >&2; exit 1; } |
| 181 | + [ -n "$VERDICT" ] || { echo "Missing scalar verdict when VC is present" >&2; exit 1; } |
| 182 | + [ -n "$ADMISSION" ] || { echo "Missing scalar admission when VC is present" >&2; exit 1; } |
| 183 | + [ "$VERDICT" = "$VC_VERDICT" ] || { echo "Scalar verdict ($VERDICT) != VC verdict ($VC_VERDICT)" >&2; exit 1; } |
| 184 | + [ "$ADMISSION" = "$VC_ADMISSION" ] || { echo "Scalar admission ($ADMISSION) != VC admission ($VC_ADMISSION)" >&2; exit 1; } |
| 185 | + [ "$PROOF_REF" = "$VC_PROOF_REF" ] || { echo "Scalar proof_ref ($PROOF_REF) != VC proof_ref ($VC_PROOF_REF)" >&2; exit 1; } |
179 | 186 | echo "VC v1.0 contract validated — all checks passed" |
0 commit comments