MCPcopy Create free account
hub / github.com/XmirrorSecurity/OpenSCA-cli / swidZip

Function swidZip

cmd/format/swid.go:18–76  ·  view source on GitHub ↗
(out string, report Report, writeFunc func(tag *swid.SoftwareIdentity, w io.Writer) error)

Source from the content-addressed store, hash-verified

16)
17
18func swidZip(out string, report Report, writeFunc func(tag *swid.SoftwareIdentity, w io.Writer) error) {
19 outWrite(out+".zip", func(writer io.Writer) error {
20
21 zf := zip.NewWriter(writer)
22 defer zf.Close()
23
24 var werr error
25
26 report.DepDetailGraph.ForEach(func(n *detail.DepDetailGraph) bool {
27
28 if n.Name == "" {
29 return true
30 }
31
32 tag, err := swid.NewTag(n.Dep.Key(), n.Name, n.Version)
33 if err != nil {
34 logs.Warn(err)
35 return true
36 }
37
38 tag.TagVersion = 1
39 tag.SoftwareName = n.Name
40 tag.SoftwareVersion = n.Version
41 tag.VersionScheme = &swid.VersionScheme{}
42 tag.VersionScheme.SetCode(1)
43
44 if n.Vendor != "" {
45 e := swid.Entity{
46 RegID: n.Vendor,
47 EntityName: "The vendor of component",
48 Roles: swid.Roles{},
49 }
50 e.Roles.Set("softwareCreator")
51 tag.AddEntity(e)
52 }
53
54 name := []string{}
55 if n.Vendor != "" {
56 name = append(name, n.Vendor)
57 }
58 name = append(name, n.Name)
59 if n.Version != "" {
60 name = append(name, n.Version)
61 }
62
63 w, err := zf.Create(strings.Join(name, "-") + filepath.Ext(out))
64 if err != nil {
65 logs.Warn(err)
66 return true
67 }
68
69 werr = errors.Join(werr, writeFunc(tag, w))
70
71 return true
72 })
73
74 return werr
75 })

Callers 2

SwidJsonFunction · 0.85
SwidXmlFunction · 0.85

Calls 5

WarnFunction · 0.92
outWriteFunction · 0.85
KeyMethod · 0.80
CloseMethod · 0.45
ForEachMethod · 0.45

Tested by

no test coverage detected