Module v2

Module v2 

Source
Expand description

CVSS v2 parsing and scoring.

§Examples

Parse vector string and get Metric by Name:

// parse vector string
let v: Vector = "AV:N/AC:L/Au:N/C:C/I:C/A:C".parse()?;

// get metric
let metric = v.get(Name::AccessVector);

// check result
assert_eq!(metric, Metric::AccessVector(AccessVector::Network));

Build Vec of metric names:

// parse vector string
let v: Vector = "AV:N/AC:L/Au:N/C:C/I:C/A:C".parse()?;

// get metric names
let names: Vec<Name> = v.into_iter().map(Name::from).collect();

// check result
assert_eq!(names, vec!(
  Name::AccessVector,
  Name::AccessComplexity,
  Name::Authentication,
  Name::Confidentiality,
  Name::Integrity,
  Name::Availability,
));

Get CVSS v2 vector score:

// parse CVSS v2 vector string
let v: Vector = "AV:N/AC:L/Au:N/C:N/I:N/A:C".parse()?;

// get score
let score = Score::from(v);

// check result
assert_eq!(score, Score::from(7.8));

Structs§

Scores
Base, temporal, and environmental scores for a CVSS v2 vector.
Vector
CVSS v2 vector.
VectorIterator
Vector iterator.

Enums§

AccessComplexity
Metric::AccessComplexity (AC) values.
AccessVector
Metric::AccessVector (AV) values.
Authentication
Metric::Authentication (Au) values.
CollateralDamagePotential
Metric::CollateralDamagePotential (CDP) values.
Exploitability
Metric::Exploitability (E) values.
Group
Metric group.
Impact
Impact metric (C, I, A) values.
Metric
Vector component.
Name
Metric name.
RemediationLevel
Metric::RemediationLevel (RL) values.
ReportConfidence
Metric::ReportConfidence (RC) values.
Requirement
Requirement metric (CR, IR, AR) values.
TargetDistribution
Metric::TargetDistribution (TD) values.

Functions§

round1
Round value to nearest 10th of a decimal.