go-cvss - Common Vulnerability Scoring System (CVSS) Version 3

Sample Code
package main
import (
"flag"
"fmt"
"io"
"os"
cvssv3 "github.com/spiegel-im-spiegel/go-cvss/v3"
"golang.org/x/text/language"
)
func main() {
tf := flag.String("t", "", "template file")
flag.Parse()
if flag.NArg() != 1 {
fmt.Fprintln(os.Stderr, os.ErrInvalid)
return
}
vector := flag.Arg(0)
var tr io.Reader
if len(*tf) > 0 {
file, err := os.Open(*tf)
if err != nil {
fmt.Fprintln(os.Stderr, err)
return
}
defer file.Close()
tr = file
}
m := cvssv3.New()
if err := m.ImportBaseVector(vector); err != nil {
fmt.Fprintln(os.Stderr, err)
return
}
severity := m.Base.GetSeverity()
//lang := language.English
lang := language.Japanese
fmt.Printf("%s: %v (%.1f)\n\n", severity.Title(lang), severity.NameOfValue(lang), m.Base.Score())
if r, err := m.Base.Report(tr, lang); err != nil {
fmt.Fprintln(os.Stderr, err)
} else {
io.Copy(os.Stdout, r)
}
}
ref: sample.go
Bookmark