aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdolfo García Veytia (Puerco) <puerco@chainguard.dev>2022-11-30 20:16:35 -0600
committerAdolfo García Veytia (Puerco) <puerco@chainguard.dev>2022-11-30 20:16:35 -0600
commitf988eaeabbef37e5c4a3dcb3f1775219e5ef1d66 (patch)
treefac2b6763199548577a7d17e7fbe430a44b72d0c
parent0f3173734ff2134dc3c98d06a80c326437ab57e5 (diff)
downloadspdx-tools-f988eaeabbef37e5c4a3dcb3f1775219e5ef1d66.tar.gz
Update 2.3 RDF parsers to support all algorithms
Signed-off-by: Adolfo García Veytia (Puerco) <puerco@chainguard.dev>
-rw-r--r--rdfloader/parser2v3/parse_file.go18
-rw-r--r--rdfloader/parser2v3/parse_package.go24
2 files changed, 38 insertions, 4 deletions
diff --git a/rdfloader/parser2v3/parse_file.go b/rdfloader/parser2v3/parse_file.go
index a0bc6fd..54c92c1 100644
--- a/rdfloader/parser2v3/parse_file.go
+++ b/rdfloader/parser2v3/parse_file.go
@@ -135,7 +135,23 @@ func (parser *rdfParser2_3) setFileChecksumFromNode(file *v2_3.File, checksumNod
file.Checksums = []common.Checksum{}
}
switch checksumAlgorithm {
- case common.MD5, common.SHA1, common.SHA256:
+ case common.SHA1,
+ common.SHA224,
+ common.SHA256,
+ common.SHA384,
+ common.SHA512,
+ common.MD2,
+ common.MD4,
+ common.MD5,
+ common.MD6,
+ common.SHA3_256,
+ common.SHA3_384,
+ common.SHA3_512,
+ common.BLAKE2b_256,
+ common.BLAKE2b_384,
+ common.BLAKE2b_512,
+ common.BLAKE3,
+ common.ADLER32:
file.Checksums = append(file.Checksums, common.Checksum{Algorithm: checksumAlgorithm, Value: checksumValue})
case "":
return fmt.Errorf("empty checksum algorithm and value")
diff --git a/rdfloader/parser2v3/parse_package.go b/rdfloader/parser2v3/parse_package.go
index f455fe9..0cdf68c 100644
--- a/rdfloader/parser2v3/parse_package.go
+++ b/rdfloader/parser2v3/parse_package.go
@@ -264,7 +264,8 @@ func (parser *rdfParser2_3) setFileToPackage(pkg *v2_3.Package, file *v2_3.File)
// given a supplierObject, sets the PackageSupplier attribute of the pkg.
// Args:
-// value: [NOASSERTION | [Person | Organization]: string]
+//
+// value: [NOASSERTION | [Person | Organization]: string]
func setPackageSupplier(pkg *v2_3.Package, value string) error {
value = strings.TrimSpace(value)
supplier := &common.Supplier{}
@@ -293,7 +294,8 @@ func setPackageSupplier(pkg *v2_3.Package, value string) error {
// given a OriginatorObject, sets the PackageOriginator attribute of the pkg.
// Args:
-// value: [NOASSERTION | [Person | Organization]: string]
+//
+// value: [NOASSERTION | [Person | Organization]: string]
func setPackageOriginator(pkg *v2_3.Package, value string) error {
value = strings.TrimSpace(value)
originator := &common.Originator{}
@@ -353,7 +355,23 @@ func (parser *rdfParser2_3) setPackageChecksum(pkg *v2_3.Package, node *gordfPar
pkg.PackageChecksums = make([]common.Checksum, 0, 1)
}
switch checksumAlgorithm {
- case common.MD5, common.SHA1, common.SHA256:
+ case common.SHA1,
+ common.SHA224,
+ common.SHA256,
+ common.SHA384,
+ common.SHA512,
+ common.MD2,
+ common.MD4,
+ common.MD5,
+ common.MD6,
+ common.SHA3_256,
+ common.SHA3_384,
+ common.SHA3_512,
+ common.BLAKE2b_256,
+ common.BLAKE2b_384,
+ common.BLAKE2b_512,
+ common.BLAKE3,
+ common.ADLER32:
pkg.PackageChecksums = append(pkg.PackageChecksums, common.Checksum{Algorithm: checksumAlgorithm, Value: checksumValue})
default:
return fmt.Errorf("unknown checksumAlgorithm %s while parsing a package", checksumAlgorithm)