diff options
author | Paul Duncan <pabs@pablotron.org> | 2022-02-03 23:25:49 -0500 |
---|---|---|
committer | Paul Duncan <pabs@pablotron.org> | 2022-02-03 23:25:49 -0500 |
commit | c98ce3189a3171f0594075fe17cc86a40760bee2 (patch) | |
tree | 6aa5f2836751d6b9e70614af1961c983a69d6632 /internal/cpedict/cpedict.go | |
parent | 411b2ee7311c9e9b56bdf3d86b486397d90b4c54 (diff) | |
download | cvez-c98ce3189a3171f0594075fe17cc86a40760bee2.tar.bz2 cvez-c98ce3189a3171f0594075fe17cc86a40760bee2.zip |
add internal/cpedict
Diffstat (limited to 'internal/cpedict/cpedict.go')
-rw-r--r-- | internal/cpedict/cpedict.go | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/internal/cpedict/cpedict.go b/internal/cpedict/cpedict.go new file mode 100644 index 0000000..0b5f77b --- /dev/null +++ b/internal/cpedict/cpedict.go @@ -0,0 +1,46 @@ +// CPE 2.3 dictionary parser. +// +// The official NVD CPE dictionary is available here: +// https://nvd.nist.gov/products/cpe +package cpedict + +import "time" + +// Dictionary generator information. +type Generator struct { + ProductName string `xml:"product_name"` // Product name. + ProductVersion string `xml:"product_version"` // Product version. + SchemaVersion string `xml:"schema_version"` // Schema version. + Timestamp time.Time `xml:"timestamp"` // Generation timestamp. +} + +// Dictionary item title. +type Title struct { + Lang string `xml:"lang,attr"` // language code + Text string `xml:",chardata"` // value +} + +// Dictionary item reference. +type Reference struct { + Href string `xml:"href,attr"` // Link + Text string `xml:",chardata"` // Text +} + +// CPE 2.3 item attributes. +type Cpe23Item struct { + Name string `xml:"name,attr"` // CPE 2.3 formatting string. +} + +// Dictionary item. +type Item struct { + CpeUri string `xml:"name,attr"` // CPE URI. + Cpe23Item Cpe23Item `xml:"cpe23-item"` // CPE 2.3 formatting string. + Titles []Title `xml:"title"` // Item titles. + References []Reference `xml:"references>reference"` // References. +} + +// CPE dictionary. +type Dictionary struct { + Generator Generator `xml:"generator"` // Dictionary generator. + Items []Item `xml:"cpe-item"` // Dictionary items. +} |