diff options
author | Paul Duncan <pabs@pablotron.org> | 2022-01-31 14:36:08 -0500 |
---|---|---|
committer | Paul Duncan <pabs@pablotron.org> | 2022-01-31 14:36:08 -0500 |
commit | 566e511c9e5cbe6530dcd8212533f11f5d8ecb7a (patch) | |
tree | 51fca0ce6a97d4aac9d409dc8dad99e1ff4da40e /internal/cvss/cvss.go | |
parent | a88d56a8287a3ed56c7f7d893682332a9ba0f015 (diff) | |
download | cvez-566e511c9e5cbe6530dcd8212533f11f5d8ecb7a.tar.bz2 cvez-566e511c9e5cbe6530dcd8212533f11f5d8ecb7a.zip |
mv internal/cvss/v3{,0}metric.go, add internal/cvss/v31metric.go
Diffstat (limited to 'internal/cvss/cvss.go')
-rw-r--r-- | internal/cvss/cvss.go | 122 |
1 files changed, 0 insertions, 122 deletions
diff --git a/internal/cvss/cvss.go b/internal/cvss/cvss.go index 6f1cafe..0e18656 100644 --- a/internal/cvss/cvss.go +++ b/internal/cvss/cvss.go @@ -1,128 +1,6 @@ // CVSS vector parser. package cvss -import ( - "strings" -) - -// CVSS v3.0 prefix -var v30Prefix = "CVSS:3.0/" - -// CVSS 3.0 vector. -type v30Vector []v3Metric - -// Convert vector to string -func (v v30Vector) String() string { - // convert to slice of metrics - metrics := []v3Metric(v) - - // build vector - r := make([]string, len(metrics)) - for i, m := range(metrics) { - r[i] = m.String() - } - - // build and return string - return v30Prefix + strings.Join(r, "/") -} - -// Return CVSS version. -func (v30Vector) Version() Version { - return V30 -} - -// Return metrics in this vector. -func (v v30Vector) Metrics() []Metric { - // build result - r := make([]Metric, len(v)) - for i, m := range(v) { - r[i] = m - } - - // return result - return r -} - -// create CVSS 3.0 vector from string -func newV30Vector(s string) (Vector, error) { - strs := strings.Split(s, "/") - r := make([]v3Metric, len(strs)) - - // walk metric strings - for i, ms := range(strs) { - // convert metric string to metric - m, err := getV3Metric(V30, ms) - if err != nil { - return nil, err - } - - // add to results - r[i] = m - } - - // build and return vector - return v30Vector(r), nil -} - -// CVSS v3.1 prefix -var v31Prefix = "CVSS:3.1/" - -// CVSS 3.1 vector. -type v31Vector []v3Metric - -// Convert vector to string -func (v v31Vector) String() string { - // convert to slice of metrics - metrics := []v3Metric(v) - - // build vector - r := make([]string, len(metrics)) - for i, m := range(metrics) { - r[i] = m.String() - } - - // build and return string - return v31Prefix + strings.Join(r, "/") -} - -// Return CVSS version. -func (v31Vector) Version() Version { - return V31 -} - -// Return metrics in this vector. -func (v v31Vector) Metrics() []Metric { - // build result - r := make([]Metric, len(v)) - for i, m := range(v) { - r[i] = m - } - - // return result - return r -} - -// create CVSS 3.1 vector from string -func newV31Vector(s string) (Vector, error) { - strs := strings.Split(s, "/") - r := make([]v3Metric, len(strs)) - - // walk metric strings - for i, ms := range(strs) { - // get metric from string - m, err := getV3Metric(V31, ms) - if err != nil { - return nil, err - } - - // add to results - r[i] = m - } - - // build and return vector - return v31Vector(r), nil -} - // Metric key. type Key interface { // Get full name. |