aboutsummaryrefslogtreecommitdiff
path: root/tvsaver
diff options
context:
space:
mode:
authorspecter25 <ujjwalcoding012@gmail.com>2021-03-21 01:22:26 +0530
committerspecter25 <ujjwalcoding012@gmail.com>2021-03-21 01:22:26 +0530
commitaf976619f2cc0badd250fb12628a0ac42b5a18ca (patch)
treed6ba02d46b173ddde31e05e813c30d79f97b15c1 /tvsaver
parenta16d50ee155238df280a68252acc25e9afb7acea (diff)
downloadspdx-tools-af976619f2cc0badd250fb12628a0ac42b5a18ca.tar.gz
Create struct to store checksums
- Store the checksums in a struct with properties algorithm and value - Define permitted algorithm as constants Signed-off-by: specter25 <ujjwalcoding012@gmail.com>
Diffstat (limited to 'tvsaver')
-rw-r--r--tvsaver/saver2v2/save_document_test.go54
-rw-r--r--tvsaver/saver2v2/save_file.go17
-rw-r--r--tvsaver/saver2v2/save_file_test.go50
-rw-r--r--tvsaver/saver2v2/save_package.go17
-rw-r--r--tvsaver/saver2v2/save_package_test.go93
5 files changed, 172 insertions, 59 deletions
diff --git a/tvsaver/saver2v2/save_document_test.go b/tvsaver/saver2v2/save_document_test.go
index d6d112b..3656504 100644
--- a/tvsaver/saver2v2/save_document_test.go
+++ b/tvsaver/saver2v2/save_document_test.go
@@ -29,19 +29,31 @@ func TestSaver2_2DocumentSavesText(t *testing.T) {
f1 := &spdx.File2_2{
FileName: "/tmp/whatever1.txt",
FileSPDXIdentifier: spdx.ElementID("File1231"),
- FileChecksumSHA1: "85ed0817af83a24ad8da68c2b5094de69833983c",
- LicenseConcluded: "Apache-2.0",
- LicenseInfoInFile: []string{"Apache-2.0"},
- FileCopyrightText: "Copyright (c) Jane Doe",
+ // FileChecksumSHA1: "85ed0817af83a24ad8da68c2b5094de69833983c",
+ FileChecksums: map[spdx.ChecksumAlgorithm2_2]spdx.Checksum2_2{
+ spdx.SHA1: spdx.Checksum2_2{
+ Algorithm: spdx.SHA1,
+ Value: "85ed0817af83a24ad8da68c2b5094de69833983c",
+ },
+ },
+ LicenseConcluded: "Apache-2.0",
+ LicenseInfoInFile: []string{"Apache-2.0"},
+ FileCopyrightText: "Copyright (c) Jane Doe",
}
f2 := &spdx.File2_2{
FileName: "/tmp/whatever2.txt",
FileSPDXIdentifier: spdx.ElementID("File1232"),
- FileChecksumSHA1: "85ed0817af83a24ad8da68c2b5094de69833983d",
- LicenseConcluded: "MIT",
- LicenseInfoInFile: []string{"MIT"},
- FileCopyrightText: "Copyright (c) John Doe",
+ // FileChecksumSHA1: "85ed0817af83a24ad8da68c2b5094de69833983d",
+ FileChecksums: map[spdx.ChecksumAlgorithm2_2]spdx.Checksum2_2{
+ spdx.SHA1: spdx.Checksum2_2{
+ Algorithm: spdx.SHA1,
+ Value: "85ed0817af83a24ad8da68c2b5094de69833983d",
+ },
+ },
+ LicenseConcluded: "MIT",
+ LicenseInfoInFile: []string{"MIT"},
+ FileCopyrightText: "Copyright (c) John Doe",
}
unFiles := map[spdx.ElementID]*spdx.File2_2{
@@ -71,8 +83,15 @@ func TestSaver2_2DocumentSavesText(t *testing.T) {
f3 := &spdx.File2_2{
FileName: "/tmp/file-with-snippets.txt",
FileSPDXIdentifier: spdx.ElementID("FileHasSnippets"),
- FileChecksumSHA1: "85ed0817af83a24ad8da68c2b5094de69833983e",
- LicenseConcluded: "GPL-2.0-or-later AND WTFPL",
+ // FileChecksumSHA1: "85ed0817af83a24ad8da68c2b5094de69833983e",
+ FileChecksums: map[spdx.ChecksumAlgorithm2_2]spdx.Checksum2_2{
+ spdx.SHA1: spdx.Checksum2_2{
+ Algorithm: spdx.SHA1,
+ Value: "85ed0817af83a24ad8da68c2b5094de69833983e",
+ },
+ },
+
+ LicenseConcluded: "GPL-2.0-or-later AND WTFPL",
LicenseInfoInFile: []string{
"Apache-2.0",
"GPL-2.0-or-later",
@@ -88,10 +107,17 @@ func TestSaver2_2DocumentSavesText(t *testing.T) {
f4 := &spdx.File2_2{
FileName: "/tmp/another-file.txt",
FileSPDXIdentifier: spdx.ElementID("FileAnother"),
- FileChecksumSHA1: "85ed0817af83a24ad8da68c2b5094de69833983f",
- LicenseConcluded: "BSD-3-Clause",
- LicenseInfoInFile: []string{"BSD-3-Clause"},
- FileCopyrightText: "Copyright (c) Jane Doe LLC",
+ // FileChecksumSHA1: "85ed0817af83a24ad8da68c2b5094de69833983f",
+ FileChecksums: map[spdx.ChecksumAlgorithm2_2]spdx.Checksum2_2{
+ spdx.SHA1: spdx.Checksum2_2{
+ Algorithm: spdx.SHA1,
+ Value: "85ed0817af83a24ad8da68c2b5094de69833983f",
+ },
+ },
+
+ LicenseConcluded: "BSD-3-Clause",
+ LicenseInfoInFile: []string{"BSD-3-Clause"},
+ FileCopyrightText: "Copyright (c) Jane Doe LLC",
}
pkgWith := &spdx.Package2_2{
diff --git a/tvsaver/saver2v2/save_file.go b/tvsaver/saver2v2/save_file.go
index 8edacfc..e8c1d4d 100644
--- a/tvsaver/saver2v2/save_file.go
+++ b/tvsaver/saver2v2/save_file.go
@@ -20,15 +20,20 @@ func renderFile2_2(f *spdx.File2_2, w io.Writer) error {
for _, s := range f.FileType {
fmt.Fprintf(w, "FileType: %s\n", s)
}
- if f.FileChecksumSHA1 != "" {
- fmt.Fprintf(w, "FileChecksum: SHA1: %s\n", f.FileChecksumSHA1)
+
+ if f.FileChecksums[spdx.SHA1].Value != "" {
+ fmt.Fprintf(w, "FileChecksum: SHA1: %s\n", f.FileChecksums[spdx.SHA1].Value)
+
}
- if f.FileChecksumSHA256 != "" {
- fmt.Fprintf(w, "FileChecksum: SHA256: %s\n", f.FileChecksumSHA256)
+ if f.FileChecksums[spdx.SHA256].Value != "" {
+ fmt.Fprintf(w, "FileChecksum: SHA256: %s\n", f.FileChecksums[spdx.SHA256].Value)
+
}
- if f.FileChecksumMD5 != "" {
- fmt.Fprintf(w, "FileChecksum: MD5: %s\n", f.FileChecksumMD5)
+ if f.FileChecksums[spdx.MD5].Value != "" {
+ fmt.Fprintf(w, "FileChecksum: MD5: %s\n", f.FileChecksums[spdx.MD5].Value)
+
}
+
if f.LicenseConcluded != "" {
fmt.Fprintf(w, "LicenseConcluded: %s\n", f.LicenseConcluded)
}
diff --git a/tvsaver/saver2v2/save_file_test.go b/tvsaver/saver2v2/save_file_test.go
index 1fd4fca..0ee8374 100644
--- a/tvsaver/saver2v2/save_file_test.go
+++ b/tvsaver/saver2v2/save_file_test.go
@@ -18,10 +18,22 @@ func TestSaver2_2FileSavesText(t *testing.T) {
"TEXT",
"DOCUMENTATION",
},
- FileChecksumSHA1: "85ed0817af83a24ad8da68c2b5094de69833983c",
- FileChecksumSHA256: "11b6d3ee554eedf79299905a98f9b9a04e498210b59f15094c916c91d150efcd",
- FileChecksumMD5: "624c1abb3664f4b35547e7c73864ad24",
- LicenseConcluded: "Apache-2.0",
+ FileChecksums: map[spdx.ChecksumAlgorithm2_2]spdx.Checksum2_2{
+ spdx.SHA1: spdx.Checksum2_2{
+ Algorithm: spdx.SHA1,
+ Value: "85ed0817af83a24ad8da68c2b5094de69833983c",
+ },
+ spdx.SHA256: spdx.Checksum2_2{
+ Algorithm: spdx.SHA256,
+ Value: "11b6d3ee554eedf79299905a98f9b9a04e498210b59f15094c916c91d150efcd",
+ },
+ spdx.MD5: spdx.Checksum2_2{
+ Algorithm: spdx.MD5,
+ Value: "624c1abb3664f4b35547e7c73864ad24",
+ },
+ },
+
+ LicenseConcluded: "Apache-2.0",
LicenseInfoInFile: []string{
"Apache-2.0",
"Apache-1.1",
@@ -133,8 +145,14 @@ func TestSaver2_2FileSavesSnippetsAlso(t *testing.T) {
f := &spdx.File2_2{
FileName: "/tmp/whatever.txt",
FileSPDXIdentifier: spdx.ElementID("File123"),
- FileChecksumSHA1: "85ed0817af83a24ad8da68c2b5094de69833983c",
- LicenseConcluded: "Apache-2.0",
+ FileChecksums: map[spdx.ChecksumAlgorithm2_2]spdx.Checksum2_2{
+ spdx.SHA1: spdx.Checksum2_2{
+ Algorithm: spdx.SHA1,
+ Value: "85ed0817af83a24ad8da68c2b5094de69833983c",
+ },
+ },
+
+ LicenseConcluded: "Apache-2.0",
LicenseInfoInFile: []string{
"Apache-2.0",
},
@@ -182,8 +200,14 @@ func TestSaver2_2FileOmitsOptionalFieldsIfEmpty(t *testing.T) {
f := &spdx.File2_2{
FileName: "/tmp/whatever.txt",
FileSPDXIdentifier: spdx.ElementID("File123"),
- FileChecksumSHA1: "85ed0817af83a24ad8da68c2b5094de69833983c",
- LicenseConcluded: "Apache-2.0",
+ FileChecksums: map[spdx.ChecksumAlgorithm2_2]spdx.Checksum2_2{
+ spdx.SHA1: spdx.Checksum2_2{
+ Algorithm: spdx.SHA1,
+ Value: "85ed0817af83a24ad8da68c2b5094de69833983c",
+ },
+ },
+
+ LicenseConcluded: "Apache-2.0",
LicenseInfoInFile: []string{
"Apache-2.0",
},
@@ -218,8 +242,14 @@ func TestSaver2_2FileWrapsCopyrightMultiLine(t *testing.T) {
f := &spdx.File2_2{
FileName: "/tmp/whatever.txt",
FileSPDXIdentifier: spdx.ElementID("File123"),
- FileChecksumSHA1: "85ed0817af83a24ad8da68c2b5094de69833983c",
- LicenseConcluded: "Apache-2.0",
+ FileChecksums: map[spdx.ChecksumAlgorithm2_2]spdx.Checksum2_2{
+ spdx.SHA1: spdx.Checksum2_2{
+ Algorithm: spdx.SHA1,
+ Value: "85ed0817af83a24ad8da68c2b5094de69833983c",
+ },
+ },
+
+ LicenseConcluded: "Apache-2.0",
LicenseInfoInFile: []string{
"Apache-2.0",
},
diff --git a/tvsaver/saver2v2/save_package.go b/tvsaver/saver2v2/save_package.go
index 3a413cb..3fb9d7a 100644
--- a/tvsaver/saver2v2/save_package.go
+++ b/tvsaver/saver2v2/save_package.go
@@ -58,15 +58,20 @@ func renderPackage2_2(pkg *spdx.Package2_2, w io.Writer) error {
fmt.Fprintf(w, "PackageVerificationCode: %s (excludes %s)\n", pkg.PackageVerificationCode, pkg.PackageVerificationCodeExcludedFile)
}
}
- if pkg.PackageChecksumSHA1 != "" {
- fmt.Fprintf(w, "PackageChecksum: SHA1: %s\n", pkg.PackageChecksumSHA1)
+
+ if pkg.PackageChecksums[spdx.SHA1].Value != "" {
+ fmt.Fprintf(w, "PackageChecksum: SHA1: %s\n", pkg.PackageChecksums[spdx.SHA1].Value)
+
}
- if pkg.PackageChecksumSHA256 != "" {
- fmt.Fprintf(w, "PackageChecksum: SHA256: %s\n", pkg.PackageChecksumSHA256)
+ if pkg.PackageChecksums[spdx.SHA256].Value != "" {
+ fmt.Fprintf(w, "PackageChecksum: SHA256: %s\n", pkg.PackageChecksums[spdx.SHA256].Value)
+
}
- if pkg.PackageChecksumMD5 != "" {
- fmt.Fprintf(w, "PackageChecksum: MD5: %s\n", pkg.PackageChecksumMD5)
+ if pkg.PackageChecksums[spdx.MD5].Value != "" {
+ fmt.Fprintf(w, "PackageChecksum: MD5: %s\n", pkg.PackageChecksums[spdx.MD5].Value)
+
}
+
if pkg.PackageHomePage != "" {
fmt.Fprintf(w, "PackageHomePage: %s\n", pkg.PackageHomePage)
}
diff --git a/tvsaver/saver2v2/save_package_test.go b/tvsaver/saver2v2/save_package_test.go
index 466ff7f..8a10d02 100644
--- a/tvsaver/saver2v2/save_package_test.go
+++ b/tvsaver/saver2v2/save_package_test.go
@@ -59,12 +59,24 @@ func TestSaver2_2PackageSavesTextCombo1(t *testing.T) {
IsFilesAnalyzedTagPresent: true,
PackageVerificationCode: "0123456789abcdef0123456789abcdef01234567",
PackageVerificationCodeExcludedFile: "p1-0.1.0.spdx",
- PackageChecksumSHA1: "85ed0817af83a24ad8da68c2b5094de69833983c",
- PackageChecksumSHA256: "11b6d3ee554eedf79299905a98f9b9a04e498210b59f15094c916c91d150efcd",
- PackageChecksumMD5: "624c1abb3664f4b35547e7c73864ad24",
- PackageHomePage: "http://example.com/p1",
- PackageSourceInfo: "this is a source comment",
- PackageLicenseConcluded: "GPL-2.0-or-later",
+ PackageChecksums: map[spdx.ChecksumAlgorithm2_2]spdx.Checksum2_2{
+ spdx.SHA1: spdx.Checksum2_2{
+ Algorithm: spdx.SHA1,
+ Value: "85ed0817af83a24ad8da68c2b5094de69833983c",
+ },
+ spdx.SHA256: spdx.Checksum2_2{
+ Algorithm: spdx.SHA256,
+ Value: "11b6d3ee554eedf79299905a98f9b9a04e498210b59f15094c916c91d150efcd",
+ },
+ spdx.MD5: spdx.Checksum2_2{
+ Algorithm: spdx.MD5,
+ Value: "624c1abb3664f4b35547e7c73864ad24",
+ },
+ },
+
+ PackageHomePage: "http://example.com/p1",
+ PackageSourceInfo: "this is a source comment",
+ PackageLicenseConcluded: "GPL-2.0-or-later",
PackageLicenseInfoFromFiles: []string{
"Apache-1.1",
"Apache-2.0",
@@ -150,12 +162,23 @@ func TestSaver2_2PackageSavesTextCombo2(t *testing.T) {
FilesAnalyzed: true,
IsFilesAnalyzedTagPresent: false,
PackageVerificationCode: "0123456789abcdef0123456789abcdef01234567",
- PackageChecksumSHA1: "85ed0817af83a24ad8da68c2b5094de69833983c",
- PackageChecksumSHA256: "11b6d3ee554eedf79299905a98f9b9a04e498210b59f15094c916c91d150efcd",
- PackageChecksumMD5: "624c1abb3664f4b35547e7c73864ad24",
- PackageHomePage: "http://example.com/p1",
- PackageSourceInfo: "this is a source comment",
- PackageLicenseConcluded: "GPL-2.0-or-later",
+ PackageChecksums: map[spdx.ChecksumAlgorithm2_2]spdx.Checksum2_2{
+ spdx.SHA1: spdx.Checksum2_2{
+ Algorithm: spdx.SHA1,
+ Value: "85ed0817af83a24ad8da68c2b5094de69833983c",
+ },
+ spdx.SHA256: spdx.Checksum2_2{
+ Algorithm: spdx.SHA256,
+ Value: "11b6d3ee554eedf79299905a98f9b9a04e498210b59f15094c916c91d150efcd",
+ },
+ spdx.MD5: spdx.Checksum2_2{
+ Algorithm: spdx.MD5,
+ Value: "624c1abb3664f4b35547e7c73864ad24",
+ },
+ },
+ PackageHomePage: "http://example.com/p1",
+ PackageSourceInfo: "this is a source comment",
+ PackageLicenseConcluded: "GPL-2.0-or-later",
PackageLicenseInfoFromFiles: []string{
"Apache-1.1",
"Apache-2.0",
@@ -232,9 +255,21 @@ func TestSaver2_2PackageSavesTextCombo3(t *testing.T) {
// NOTE that verification code MUST be omitted from output
// since FilesAnalyzed is false
PackageVerificationCode: "0123456789abcdef0123456789abcdef01234567",
- PackageChecksumSHA1: "85ed0817af83a24ad8da68c2b5094de69833983c",
- PackageChecksumSHA256: "11b6d3ee554eedf79299905a98f9b9a04e498210b59f15094c916c91d150efcd",
- PackageChecksumMD5: "624c1abb3664f4b35547e7c73864ad24",
+ PackageChecksums: map[spdx.ChecksumAlgorithm2_2]spdx.Checksum2_2{
+ spdx.SHA1: spdx.Checksum2_2{
+ Algorithm: spdx.SHA1,
+ Value: "85ed0817af83a24ad8da68c2b5094de69833983c",
+ },
+ spdx.SHA256: spdx.Checksum2_2{
+ Algorithm: spdx.SHA256,
+ Value: "11b6d3ee554eedf79299905a98f9b9a04e498210b59f15094c916c91d150efcd",
+ },
+ spdx.MD5: spdx.Checksum2_2{
+ Algorithm: spdx.MD5,
+ Value: "624c1abb3664f4b35547e7c73864ad24",
+ },
+ },
+
PackageHomePage: "http://example.com/p1",
PackageSourceInfo: "this is a source comment",
PackageLicenseConcluded: "GPL-2.0-or-later",
@@ -351,19 +386,31 @@ func TestSaver2_2PackageSavesFilesIfPresent(t *testing.T) {
f1 := &spdx.File2_2{
FileName: "/tmp/whatever1.txt",
FileSPDXIdentifier: spdx.ElementID("File1231"),
- FileChecksumSHA1: "85ed0817af83a24ad8da68c2b5094de69833983c",
- LicenseConcluded: "Apache-2.0",
- LicenseInfoInFile: []string{"Apache-2.0"},
- FileCopyrightText: "Copyright (c) Jane Doe",
+ FileChecksums: map[spdx.ChecksumAlgorithm2_2]spdx.Checksum2_2{
+ spdx.SHA1: spdx.Checksum2_2{
+ Algorithm: spdx.SHA1,
+ Value: "85ed0817af83a24ad8da68c2b5094de69833983c",
+ },
+ },
+
+ LicenseConcluded: "Apache-2.0",
+ LicenseInfoInFile: []string{"Apache-2.0"},
+ FileCopyrightText: "Copyright (c) Jane Doe",
}
f2 := &spdx.File2_2{
FileName: "/tmp/whatever2.txt",
FileSPDXIdentifier: spdx.ElementID("File1232"),
- FileChecksumSHA1: "85ed0817af83a24ad8da68c2b5094de69833983d",
- LicenseConcluded: "MIT",
- LicenseInfoInFile: []string{"MIT"},
- FileCopyrightText: "Copyright (c) John Doe",
+ FileChecksums: map[spdx.ChecksumAlgorithm2_2]spdx.Checksum2_2{
+ spdx.SHA1: spdx.Checksum2_2{
+ Algorithm: spdx.SHA1,
+ Value: "85ed0817af83a24ad8da68c2b5094de69833983d",
+ },
+ },
+
+ LicenseConcluded: "MIT",
+ LicenseInfoInFile: []string{"MIT"},
+ FileCopyrightText: "Copyright (c) John Doe",
}
pkg := &spdx.Package2_2{