aboutsummaryrefslogtreecommitdiff
path: root/internal/cpematch/cpematch.go
blob: 0bae62290c2198da3f4ec19e5ca20cef2b8978af (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// CPE match feed 1.0 parser.
//
// Latest CPE match feed available from here:
// https://nvd.nist.gov/vuln/data-feeds#cpeMatch
//
// JSON schema available here:
// https://csrc.nist.gov/schema/cpematch/feed/1.0/nvd_cpematch_feed_json_1.0.schema
package cpematch

// CPE name
type Name struct {
  Cpe22Uri string `json:"cpe22Uri"`
  Cpe23Uri string `json:"cpe23Uri"`
}

// CPE match string or range
type Match struct {
  Vulnerable *bool `json:"vulnerable"`
  Cpe22Uri string `json:"cpe22Uri"`
  Cpe23Uri string `json:"cpe23Uri"`
  VersionStartExcluding string `json:"versionStartExcluding"`
  VersionStartIncluding string `json:"versionStartIncluding"`
  VersionEndExcluding string `json:"versionEndExcluding"`
  VersionEndIncluding string `json:"versionEndIncluding"`
  Names []Name `json:"cpe_name"` // CPE match strings
}

// CPE matches
type Matches struct {
  Matches []Match `json:"matches"` // Array of CPE matches
}