diff options
author | Adolfo García Veytia (Puerco) <puerco@chainguard.dev> | 2022-11-30 20:16:35 -0600 |
---|---|---|
committer | Adolfo García Veytia (Puerco) <puerco@chainguard.dev> | 2022-11-30 20:16:35 -0600 |
commit | f988eaeabbef37e5c4a3dcb3f1775219e5ef1d66 (patch) | |
tree | fac2b6763199548577a7d17e7fbe430a44b72d0c | |
parent | 0f3173734ff2134dc3c98d06a80c326437ab57e5 (diff) | |
download | spdx-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.go | 18 | ||||
-rw-r--r-- | rdfloader/parser2v3/parse_package.go | 24 |
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) |