Class: CvssSuite::Cvss2Environmental

Inherits:
CvssMetric show all
Defined in:
lib/cvss_suite/cvss2/cvss2_environmental.rb

Overview

This class represents a CVSS Environmental metric in version 2.

Instance Attribute Summary collapse

Attributes inherited from CvssMetric

#properties

Instance Method Summary collapse

Methods inherited from CvssMetric

#count, #initialize, #valid?

Constructor Details

This class inherits a constructor from CvssSuite::CvssMetric

Instance Attribute Details

#collateral_damage_potentialObject (readonly)

Property of this metric



17
18
19
# File 'lib/cvss_suite/cvss2/cvss2_environmental.rb', line 17

def collateral_damage_potential
  @collateral_damage_potential
end

#security_requirements_arObject (readonly)

Property of this metric



17
18
19
# File 'lib/cvss_suite/cvss2/cvss2_environmental.rb', line 17

def security_requirements_ar
  @security_requirements_ar
end

#security_requirements_crObject (readonly)

Property of this metric



17
18
19
# File 'lib/cvss_suite/cvss2/cvss2_environmental.rb', line 17

def security_requirements_cr
  @security_requirements_cr
end

#security_requirements_irObject (readonly)

Property of this metric



17
18
19
# File 'lib/cvss_suite/cvss2/cvss2_environmental.rb', line 17

def security_requirements_ir
  @security_requirements_ir
end

#target_distributionObject (readonly)

Property of this metric



17
18
19
# File 'lib/cvss_suite/cvss2/cvss2_environmental.rb', line 17

def target_distribution
  @target_distribution
end

Instance Method Details

#score(base, temporal_score) ⇒ Object

Returns score of this metric



22
23
24
25
26
27
28
29
# File 'lib/cvss_suite/cvss2/cvss2_environmental.rb', line 22

def score(base, temporal_score)
  base_score = base.score(@security_requirements_cr.score,
                          @security_requirements_ir.score,
                          @security_requirements_ar.score).round(1)

  adjusted_temporal = (base_score * temporal_score.to_d).round(1).to_f
  (adjusted_temporal + (10 - adjusted_temporal) * @collateral_damage_potential.score) * @target_distribution.score
end