// 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" json:"lang"` // language code Text string `xml:",chardata" json:"text"` // value } // Dictionary item reference. type Reference struct { Href string `xml:"href,attr" json:"href"` // Link Text string `xml:",chardata" json:"text"` // 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. }