Skip to content
Snippets Groups Projects
Unverified Commit 317e88db authored by Andrew Block's avatar Andrew Block Committed by GitHub
Browse files

Correct Helm index keys (#474)

parent 0c2b37c1
No related branches found
No related tags found
No related merge requests found
...@@ -20,6 +20,7 @@ import ( ...@@ -20,6 +20,7 @@ import (
"os" "os"
"testing" "testing"
"github.com/sigstore/rekor/pkg/generated/models"
"github.com/sigstore/rekor/pkg/pki" "github.com/sigstore/rekor/pkg/pki"
"github.com/sigstore/rekor/pkg/pki/pgp" "github.com/sigstore/rekor/pkg/pki/pgp"
) )
...@@ -37,12 +38,16 @@ func TestProvenance(t *testing.T) { ...@@ -37,12 +38,16 @@ func TestProvenance(t *testing.T) {
t.Fatalf("unmarshal error: %v", err) t.Fatalf("unmarshal error: %v", err)
} }
checksum, err := provenance.GetChartHash() algorithm, checksum, err := provenance.GetChartAlgorithmHash()
if err != nil { if err != nil {
t.Fatalf("Error retrieving chart hash: %v", err) t.Fatalf("Error retrieving chart hash: %v", err)
} }
if models.HelmV001SchemaChartHashAlgorithmSha256 != algorithm {
t.Fatalf("Unexpected checksum algorithm. Expected %s, found %s", models.HelmV001SchemaChartHashAlgorithmSha256, algorithm)
}
if len(checksum) == 0 { if len(checksum) == 0 {
t.Fatal("Empty checksum") t.Fatal("Empty checksum")
} }
......
...@@ -94,10 +94,10 @@ func (p *Provenance) parseMessageBlock(data []byte) error { ...@@ -94,10 +94,10 @@ func (p *Provenance) parseMessageBlock(data []byte) error {
return nil return nil
} }
func (p *Provenance) GetChartHash() (string, error) { func (p *Provenance) GetChartAlgorithmHash() (string, string, error) {
if p.SumCollection == nil || p.SumCollection.Files == nil { if p.SumCollection == nil || p.SumCollection.Files == nil {
return "", errors.New("Unable to locate chart hash") return "", "", errors.New("Unable to locate chart hash")
} }
...@@ -108,13 +108,13 @@ func (p *Provenance) GetChartHash() (string, error) { ...@@ -108,13 +108,13 @@ func (p *Provenance) GetChartHash() (string, error) {
parts := strings.Split(value, ":") parts := strings.Split(value, ":")
if len(parts) != 2 { if len(parts) != 2 {
return "", errors.New("Invalid hash found in Provenance file") return "", "", errors.New("Invalid hash found in Provenance file")
} }
return parts[1], nil return parts[0], parts[1], nil
} }
// Return error if no keys found // Return error if no keys found
return "", errors.New("No checksums found") return "", "", errors.New("No checksums found")
} }
...@@ -87,16 +87,15 @@ func (v V001Entry) IndexKeys() []string { ...@@ -87,16 +87,15 @@ func (v V001Entry) IndexKeys() []string {
result = append(result, v.keyObj.EmailAddresses()...) result = append(result, v.keyObj.EmailAddresses()...)
chartHash, err := v.provenanceObj.GetChartHash() algorithm, chartHash, err := v.provenanceObj.GetChartAlgorithmHash()
if err != nil { if err != nil {
log.Logger.Error(err) log.Logger.Error(err)
} else { } else {
result = append(result, chartHash) hashKey := strings.ToLower(fmt.Sprintf("%s:%s", algorithm, chartHash))
result = append(result, hashKey)
} }
//TODO: Store signature as index
return result return result
} }
...@@ -274,16 +273,14 @@ func (v *V001Entry) Canonicalize(ctx context.Context) ([]byte, error) { ...@@ -274,16 +273,14 @@ func (v *V001Entry) Canonicalize(ctx context.Context) ([]byte, error) {
canonicalEntry.Chart = &models.HelmV001SchemaChart{} canonicalEntry.Chart = &models.HelmV001SchemaChart{}
chartHash, err := v.provenanceObj.GetChartHash() algorithm, chartHash, err := v.provenanceObj.GetChartAlgorithmHash()
if err != nil { if err != nil {
return nil, err return nil, err
} }
sha256 := models.AlpineV001SchemaPackageHashAlgorithmSha256
canonicalEntry.Chart.Hash = &models.HelmV001SchemaChartHash{} canonicalEntry.Chart.Hash = &models.HelmV001SchemaChartHash{}
canonicalEntry.Chart.Hash.Algorithm = &sha256 canonicalEntry.Chart.Hash.Algorithm = &algorithm
canonicalEntry.Chart.Hash.Value = &chartHash canonicalEntry.Chart.Hash.Value = &chartHash
canonicalEntry.Chart.Provenance = &models.HelmV001SchemaChartProvenance{} canonicalEntry.Chart.Provenance = &models.HelmV001SchemaChartProvenance{}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment