@@ -230,11 +230,15 @@ func Verify(layoutEnvelope, layoutKeys, attestations, now) {
230
230
stepAttestations := attestationsForStep(step.Name, attestations)
231
231
for _, predicate := range step.ExpectedPredicates {
232
232
predicateAttestations := attestationsForStepPredicate(predicate.Type, stepAttestations)
233
- verifyAttestationSignatures(predicate.Functionaries, predicate.Threshold, predicateAttestations)
234
- for _, attestation := range predicateAttestations {
235
- applyMaterialRules(predicate.ExpectedMaterials, attestation)
236
- applyProductRules(predicate.ExpectedProducts, attestation)
237
- applyAttributeRules(predicate.ExpectedAttributes, attestation)
233
+ if predicate.Type == LAYOUT {
234
+ Verify(predicateAttestations[0], predicate.Functionaries, predicateAttestations[1:], now)
235
+ } else {
236
+ verifyAttestationSignatures(predicate.Functionaries, predicate.Threshold, predicateAttestations)
237
+ for _, attestation := range predicateAttestations {
238
+ applyMaterialRules(predicate.ExpectedMaterials, attestation)
239
+ applyProductRules(predicate.ExpectedProducts, attestation)
240
+ applyAttributeRules(predicate.ExpectedAttributes, attestation)
241
+ }
238
242
}
239
243
}
240
244
}
0 commit comments