@@ -30,13 +30,18 @@ func (m *Merger) Merge(ubuntuPath, nixPath string) (*spdx.Document, error) {
3030 return nil , fmt .Errorf ("failed to load Nix SBOM: %w" , err )
3131 }
3232
33+ uuid , err := spdx .GenerateUUID ()
34+ if err != nil {
35+ return nil , fmt .Errorf ("failed to generate UUID: %w" , err )
36+ }
37+
3338 // Create merged document
3439 mergedDoc := & spdx.Document {
3540 SPDXVersion : "SPDX-2.3" ,
3641 DataLicense : "CC0-1.0" ,
3742 SPDXID : "SPDXRef-DOCUMENT" ,
3843 Name : fmt .Sprintf ("Ubuntu-Nix-System-SBOM-%s" , time .Now ().Format ("2006-01-02" )),
39- DocumentNamespace : fmt .Sprintf ("https://sbom.ubuntu-nix.system/%s" , generateUUID () ),
44+ DocumentNamespace : fmt .Sprintf ("https://sbom.ubuntu-nix.system/%s" , uuid ),
4045 CreationInfo : spdx.CreationInfo {
4146 Created : time .Now ().UTC ().Format (time .RFC3339 ),
4247 Creators : m .mergeCreators (ubuntuDoc , nixDoc ),
@@ -307,14 +312,3 @@ func sanitizeCPEComponent(component string) string {
307312
308313 return component
309314}
310-
311- func generateUUID () string {
312- // Simple UUID v4 generation
313- b := make ([]byte , 16 )
314- for i := range b {
315- b [i ] = byte (time .Now ().UnixNano () & 0xff )
316- }
317-
318- return fmt .Sprintf ("%x-%x-%x-%x-%x" ,
319- b [0 :4 ], b [4 :6 ], b [6 :8 ], b [8 :10 ], b [10 :])
320- }
0 commit comments