diff options
author | specter25 <ujjwalcoding012@gmail.com> | 2021-03-21 01:22:26 +0530 |
---|---|---|
committer | specter25 <ujjwalcoding012@gmail.com> | 2021-03-21 01:22:26 +0530 |
commit | af976619f2cc0badd250fb12628a0ac42b5a18ca (patch) | |
tree | d6ba02d46b173ddde31e05e813c30d79f97b15c1 /tvsaver | |
parent | a16d50ee155238df280a68252acc25e9afb7acea (diff) | |
download | spdx-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.go | 54 | ||||
-rw-r--r-- | tvsaver/saver2v2/save_file.go | 17 | ||||
-rw-r--r-- | tvsaver/saver2v2/save_file_test.go | 50 | ||||
-rw-r--r-- | tvsaver/saver2v2/save_package.go | 17 | ||||
-rw-r--r-- | tvsaver/saver2v2/save_package_test.go | 93 |
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{ |