-
Notifications
You must be signed in to change notification settings - Fork 151
/
Copy pathtypes.go
186 lines (153 loc) · 3.03 KB
/
types.go
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
package redhatoval
import "github.com/aquasecurity/trivy-db/pkg/types"
type redhatOVAL struct {
Class string
ID string
Version string
Metadata ovalMetadata
Criteria criteria
}
type ovalMetadata struct {
Title string
AffectedList []affected
References []reference
Description string
Advisory ovalAdvisory
}
type ovalAdvisory struct {
From string
Severity string
Rights string
Issued issued
Updated updated
Cves []ovalCVE
Bugzilla []bugzilla
AffectedCpeList []string
Affected affectedState
}
type criteria struct {
Operator string
Criterias []criteria
Criterions []criterion
}
type criterion struct {
TestRef string
Comment string
}
type affected struct {
Family string
Platforms []string
}
type affectedState struct {
Resolution affectedResolution
}
type affectedResolution struct {
State string
}
type reference struct {
Source string
RefID string
RefURL string
}
type issued struct {
Date string
}
type updated struct {
Date string
}
type ovalCVE struct {
CveID string
Cvss2 string
Cvss3 string
Cwe string
Impact string
Href string
Public string
}
type bugzilla struct {
ID string
Href string
}
type ovalTests struct {
RpminfoTests []rpminfoTest
}
type ovalObjects struct {
RpminfoObjects []rpminfoObject
}
type ovalStates struct {
RpminfoState []rpminfoState
}
type ovalstate struct {
Text string
StateRef string
}
type ovalObject struct {
Text string
ObjectRef string
}
type rpminfoTest struct {
Check string
Comment string
ID string
Version string
CheckExistence string
Object ovalObject
State ovalstate
}
type rpminfoObject struct {
ID string
Version string
Name string
}
type rpminfoState struct {
ID string
Version string
Arch arch
Evr evr
SignatureKeyID signatureKeyID
}
type signatureKeyID struct {
Text string
Operation string
}
type arch struct {
Text string
Datatype string
Operation string
}
type evr struct {
Text string
Datatype string
Operation string
}
type pkg struct {
Name string
FixedVersion string
Arches []string
}
type bucket struct {
pkgName string
vulnID string
}
type Advisory struct {
Entries []Entry `json:",omitempty"`
}
type Definition struct {
Entry Entry `json:",omitempty"`
}
// Entry holds the unique advisory information per platform.
type Entry struct {
FixedVersion string `json:",omitempty"`
Cves []CveEntry
Arches []string `json:",omitempty"`
State string `json:",omitempty"`
// For DB size optimization, CPE names will not be stored.
// CPE indices are stored instead.
AffectedCPEList []string `json:"-"`
AffectedCPEIndices []int `json:"Affected,omitempty"`
}
type CveEntry struct {
ID string `json:",omitempty"`
// Severity may differ depending on platform even though the advisories resolve the same CVE-ID.
Severity types.Severity `json:",omitempty"`
}