stats

package
v0.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 3, 2019 License: BSD-3-Clause Imports: 15 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (

	//NamedCurves are named elliptic curve
	//see https://www.iana.org/assignments/tls-parameters/tls-parameters.xml#tls-parameters-8
	NamedCurves = map[uint16]string{
		0:     "Reserved",
		1:     "sect163k1",
		2:     "sect163r1",
		3:     "sect163r2",
		4:     "sect193r1",
		5:     "sect193r2",
		6:     "sect233k1",
		7:     "sect233r1",
		8:     "sect239k1",
		9:     "sect283k1",
		10:    "sect283r1",
		11:    "sect409k1",
		12:    "sect409r1",
		13:    "sect571k1",
		14:    "sect571r1",
		15:    "secp160k1",
		16:    "secp160r1",
		17:    "secp160r2",
		18:    "secp192k1",
		19:    "secp192r1",
		20:    "secp224k1",
		21:    "secp224r1",
		22:    "secp256k1",
		23:    "secp256r1",
		24:    "secp384r1",
		25:    "secp521r1",
		26:    "brainpoolP256r1",
		27:    "brainpoolP384r1",
		28:    "brainpoolP512r1",
		29:    "x25519",
		30:    "x448",
		256:   "ffdhe2048",
		257:   "ffdhe3072",
		258:   "ffdhe4096",
		259:   "ffdhe6144",
		260:   "ffdhe8192",
		65281: "arbitrary_explicit_prime_curves",
		65282: "arbitrary_explicit_char2_curves",
	}

	// CipherSuiteMap - list of ciphersuites based on: http://www.iana.org/assignments/tls-parameters/tls-parameters.xml
	// For CSV: https://www.iana.org/assignments/tls-parameters/tls-parameters-4.csv
	// reserved/unknown items are excluded.
	CipherSuiteMap = map[uint16]string{}/* 334 elements not displayed */

)
View Source
var BrowserStats = "https://analytics.wikimedia.org/datasets/periodic/reports/metrics/browser/all_sites_by_os_and_browser.tsv"

BrowserStats Wikipedia OS and Browser counts

View Source
var DeviceDetails = "https://api.ssllabs.com/api/v3/getClients"

DeviceDetails SSLLabs clients cipher and protocol support information

Functions

func DownloadData

func DownloadData(force bool) error

DownloadData downloads data needed to calculate cipher support probabilities

func PrintStats

func PrintStats(forceDownload bool)

PrintStats prints cipher/protocol usage statistics using Wikipedia visitor data

Types

type Browser

type Browser struct {
	Date                time.Time
	BrowserFamily       string
	BrowserMajorVersion string
	OSFamily            string
	OSMajorVersion      string
	Count               int64
}

Browser models a Browser and OS along with the count of how many times it shows up

func (Browser) String

func (b Browser) String() string

type Device

type Device struct {
	Name            string
	Platform        string
	Version         string
	LowestProtocol  int
	HighestProtocol int
	SuiteIds        []int
	SuiteNames      []string
	EllipticCurves  []int
}

Device models a device and its supported ciphers and protocols

type Entry

type Entry struct {
	ID      int
	Percent float64
	Name    string
}

Entry TLS statistic entry

type MappedTLSStatistics

type MappedTLSStatistics struct {
	Protocols map[int]Entry
	Ciphers   map[int]Entry
	Curves    map[int]Entry
}

MappedTLSStatistics is a version of TLSStatistics in 'Map' form

type TLSStatistics

type TLSStatistics struct {
	GenerationDate time.Time //date this stats was generated
	StartDate      time.Time //the date of first entry used to calculate the stats
	EndDate        time.Time //the date of last entry used to calculate the stats
	Protocols      []Entry
	Ciphers        []Entry
	Curves         []Entry
}

TLSStatistics for JSON output

func GetStats

func GetStats(forceDownload bool) (statistics TLSStatistics, e error)

GetStats generates cipher/protocol usage statistics using Wikipedia visitor data

func (TLSStatistics) ToMapped

func (t TLSStatistics) ToMapped() (m MappedTLSStatistics)

ToMapped generates a version of TLSStatistics with easy 'lookup'

type TLSStats

type TLSStats struct {
	Protocols map[int]int64
	Ciphers   map[int]int64
	Curves    map[int]int64
	Total     int64 //Total number of browsers/devices used in these stats
	// contains filtered or unexported fields
}

TLSStats contains statistics about TLS usage in the last year or so

func (TLSStats) String

func (stats TLSStats) String() (out string)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL