fix: only sign statements
This commit is contained in:
@@ -96,8 +96,9 @@ func layersFromImage(image v1.Image) ([]*Layer, error) {
|
|||||||
// copy original annotations
|
// copy original annotations
|
||||||
ann := maps.Clone(layerDesc.Annotations)
|
ann := maps.Clone(layerDesc.Annotations)
|
||||||
// only decode intoto statements
|
// only decode intoto statements
|
||||||
stmt := new(intoto.Statement)
|
var stmt *intoto.Statement
|
||||||
if mt == types.MediaType(intoto.PayloadType) {
|
if mt == types.MediaType(intoto.PayloadType) {
|
||||||
|
stmt = new(intoto.Statement)
|
||||||
err = json.NewDecoder(r).Decode(&stmt)
|
err = json.NewDecoder(r).Decode(&stmt)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("failed to decode statement layer contents: %w", err)
|
return nil, fmt.Errorf("failed to decode statement layer contents: %w", err)
|
||||||
|
|||||||
9
sign.go
9
sign.go
@@ -19,9 +19,12 @@ func SignStatements(ctx context.Context, idx v1.ImageIndex, signer dsse.SignerVe
|
|||||||
// sign every attestation layer in each manifest
|
// sign every attestation layer in each manifest
|
||||||
for _, manifest := range attestationManifests {
|
for _, manifest := range attestationManifests {
|
||||||
for _, layer := range manifest.OriginalLayers {
|
for _, layer := range manifest.OriginalLayers {
|
||||||
err = manifest.Add(ctx, signer, layer.Statement, opts)
|
// skip layers without statements
|
||||||
if err != nil {
|
if layer.Statement != nil {
|
||||||
return nil, fmt.Errorf("failed to sign attestation layer %w", err)
|
err = manifest.Add(ctx, signer, layer.Statement, opts)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("failed to sign attestation layer %w", err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user