in pkg/generator/cef/cef.go [100:129]
func (c *CEF) randomize() {
c.CEFVersion = randInt(c.CEFVersions)
c.Vendor = randString(c.Vendors)
c.Product = randString(c.Products)
c.Version = randString(c.Versions)
c.Class = randString(c.Classes)
c.Name = randString(c.Names)
c.Severity = randInt(c.Severities)
c.Extensions = c.Extensions[:0]
if c.Max == 0 {
return
}
have := make(map[string]bool)
for _, x := range c.Exclude {
have[x] = true
}
for _, m := range c.Must {
c.addExtension(m, have)
}
perm := rand.Perm(len(extensions))
max := rand.Intn(c.Max)
for _, p := range perm {
if len(c.Extensions) >= max {
break
}
c.addExtension(extensions[p], have)
}
rand.Shuffle(len(c.Extensions), func(i, j int) { c.Extensions[i], c.Extensions[j] = c.Extensions[j], c.Extensions[i] })
}