aboutsummaryrefslogtreecommitdiff
path: root/internal/feed/feed.go
diff options
context:
space:
mode:
authorPaul Duncan <pabs@pablotron.org>2022-02-01 14:42:44 -0500
committerPaul Duncan <pabs@pablotron.org>2022-02-01 14:42:44 -0500
commit3044aef20f4aecb7963e826b976c6d72a970cda1 (patch)
tree114295370dc27f17d5115f9cf4634e5e01fad20b /internal/feed/feed.go
parent68714974f6d2887f66101aa020e25faea1631467 (diff)
downloadcvez-3044aef20f4aecb7963e826b976c6d72a970cda1.tar.bz2
cvez-3044aef20f4aecb7963e826b976c6d72a970cda1.zip
internal/feed: add v2version, v3version, tests
Diffstat (limited to 'internal/feed/feed.go')
-rw-r--r--internal/feed/feed.go62
1 files changed, 2 insertions, 60 deletions
diff --git a/internal/feed/feed.go b/internal/feed/feed.go
index affa5d2..3a6e695 100644
--- a/internal/feed/feed.go
+++ b/internal/feed/feed.go
@@ -1,15 +1,5 @@
package feed
-import (
- "encoding/json"
- "fmt"
-)
-
-const (
- CvssVersion31 = iota // CVSS version 3.1
- CvssVersion20 // CVSS version 2.0
-)
-
// TODO: parse cpe, cve id
// CVE metadata
@@ -126,58 +116,10 @@ type ItemConfigurations struct {
Nodes []ConfigurationNode `json:"nodes"`
}
-// CVSS version.
-type CvssV3Version int
-
-// Unmarshal CVSS version from JSON.
-func (me *CvssV3Version) UnmarshalJSON(b []byte) error {
- // decode string, check for error
- var s string
- if err := json.Unmarshal(b, &s); err != nil {
- return err
- }
-
- // check value
- switch s {
- case "3.1":
- *me = CvssVersion31
- default:
- // return error
- return fmt.Errorf("unknown CVSS V3 version: %s", s)
- }
-
- // return success
- return nil
-}
-
-// CVSS V2 version.
-type CvssV2Version int
-
-// Unmarshal CVSS version from JSON.
-func (me *CvssV2Version) UnmarshalJSON(b []byte) error {
- // decode string, check for error
- var s string
- if err := json.Unmarshal(b, &s); err != nil {
- return err
- }
-
- // check value
- switch s {
- case "2.0":
- *me = CvssVersion20
- default:
- // return error
- return fmt.Errorf("unknown CVSS V2 version: %s", s)
- }
-
- // return success
- return nil
-}
-
// CVSS V3
type CvssV3 struct {
// CVSS V3 version
- Version CvssV3Version `json:"version"`
+ Version V3Version `json:"version"`
// CVSS V3 vector string (FIXME: add custom type)
VectorString string `json:"vectorString"`
@@ -220,7 +162,7 @@ type BaseMetricV3 struct {
// CVSS V2
type CvssV2 struct {
// CVSS V2 version
- Version CvssV2Version `json:"version"`
+ Version V2Version `json:"version"`
// CVSS V3 vector string (FIXME: add custom type)
VectorString string `json:"vectorString"`