• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

common/H27-Mar-2018-1,2211,025

examples/H27-Mar-2018-3631

matching/H27-Mar-2018-658573

naming/H27-Mar-2018-1,2671,074

testing/H27-Mar-2018-643,423514,744

.gitignoreH A D27-Mar-2018299 1913

.travis.ymlH A D27-Mar-20181,000 1716

GNUmakefileH A D27-Mar-2018896 5743

Gopkg.lockH A D27-Mar-20181,011 4032

Gopkg.tomlH A D27-Mar-2018534 2220

LICENSEH A D27-Mar-20181 KiB2217

README.mdH A D27-Mar-20182.3 KiB7253

coverage.shH A D27-Mar-2018344 1811

README.md

1# go-cpe
2
3[![Build Status](https://travis-ci.org/knqyf263/go-cpe.svg?branch=master)](https://travis-ci.org/knqyf263/go-cpe)
4[![Coverage Status](https://coveralls.io/repos/github/knqyf263/go-cpe/badge.svg?branch=initial)](https://coveralls.io/github/knqyf263/go-cpe?branch=initial)
5[![Go Report Card](https://goreportcard.com/badge/github.com/knqyf263/go-cpe)](https://goreportcard.com/report/github.com/knqyf263/go-cpe)
6[![GoDoc](https://godoc.org/github.com/knqyf263/go-cpe?status.svg)](https://godoc.org/github.com/knqyf263/go-cpe)
7[![MIT License](http://img.shields.io/badge/license-MIT-blue.svg?style=flat)](/LICENSE)
8
9A Go library for [CPE(A Common Platform Enumeration 2.3)](https://cpe.mitre.org/specification/)
10
11`go-cpe` is a implementation of the CPE Naming and Matching algorithms, as described in NIST IRs [7695](https://csrc.nist.gov/publications/detail/nistir/7695/final) and [7696](https://csrc.nist.gov/publications/detail/nistir/7696/final).
12
13For the reference Java implementation, see: https://cpe.mitre.org/specification/CPE_Reference_Implementation_Sep2011.zipx
14
15# Installation and Usage
16
17Installation can be done with a normal go get:
18
19```
20$ go get github.com/knqyf263/go-cpe/...
21```
22
23## Compare
24See [example](/examples)
25
26```
27package main
28
29import (
30	"fmt"
31
32	"github.com/knqyf263/go-cpe/matching"
33	"github.com/knqyf263/go-cpe/naming"
34)
35
36func main() {
37	wfn, err := naming.UnbindURI("cpe:/a:microsoft:internet_explorer%01%01%01%01:8%02:beta")
38	if err != nil {
39		fmt.Println(err)
40		return
41	}
42	wfn2, err := naming.UnbindFS(`cpe:2.3:a:microsoft:internet_explorer:8.0.6001:beta:*:*:*:*:*:*`)
43	if err != nil {
44		fmt.Println(err)
45		return
46	}
47	fmt.Println(matching.IsDisjoint(wfn, wfn2))
48	fmt.Println(matching.IsEqual(wfn, wfn2))
49	fmt.Println(matching.IsSubset(wfn, wfn2))
50	fmt.Println(matching.IsSuperset(wfn, wfn2))
51}
52```
53
54# Contribute
55
561. fork a repository: github.com/knqyf263/go-cpe to github.com/you/repo
572. get original code: `go get github.com/knqyf263/go-cpe`
583. work on original code
594. add remote to your repo: git remote add myfork https://github.com/you/repo.git
605. push your changes: git push myfork
616. create a new Pull Request
62
63- see [GitHub and Go: forking, pull requests, and go-getting](http://blog.campoy.cat/2014/03/github-and-go-forking-pull-requests-and.html)
64
65----
66
67# License
68MIT
69
70# Author
71Teppei Fukuda
72