diff --git a/src/Cvss.elm b/src/Cvss.elm index 61ba757..ca04b7a 100644 --- a/src/Cvss.elm +++ b/src/Cvss.elm @@ -1,4 +1,4 @@ -module Cvss exposing (..) +module Cvss exposing (AttackComplexity(..), AttackVector(..), AvailabilityImpact(..), ConfidentialityImpact(..), IntegrityImpact(..), PrivilegesRequired(..), Scope(..), Severity(..), UserInteraction(..), Vector, calculateBaseScore, getMatchingVector, initVector, minPrecision, randomVector, toSeverityVector, toStringSeverity, toStringVector) import Random import Random.Extra exposing (andMap) @@ -12,6 +12,7 @@ import Round exposing (ceilingNum) {-| The minimal precision when a vector score is seen as valid. The value is needed, because there are some ranges where there are no matching vectors. -} +minPrecision : Float minPrecision = 1.0 @@ -82,6 +83,11 @@ type Severity | SNone +initVector : Vector +initVector = + Vector AvNetwork AcLow PrNone UiNone SUnchanged CNone INone ANone + + -- CVSSV3 CALCULATION @@ -485,6 +491,10 @@ randomAvailabilityImpact = Random.uniform ANone [ ALow, AHigh ] + +-- SEVERITY + + toSeverityVector : Vector -> Severity toSeverityVector vector = let diff --git a/src/Main.elm b/src/Main.elm index 893806b..996da28 100644 --- a/src/Main.elm +++ b/src/Main.elm @@ -3,8 +3,7 @@ module Main exposing (Model, Msg(..), init, main, update, view) import Browser import Browser.Dom exposing (Viewport, getViewport) import Browser.Events exposing (onResize) -import Cvss exposing (..) -import Dict exposing (Dict) +import Cvss exposing (Severity(..), Vector, calculateBaseScore, getMatchingVector, initVector, minPrecision, randomVector, toSeverityVector, toStringSeverity, toStringVector) import Element exposing (Color, Device, DeviceClass(..), Element, Orientation(..), alignRight, behindContent, centerX, centerY, classifyDevice, column, el, fill, height, layout, link, none, padding, px, rgb, rgb255, rgba, row, shrink, spacing, text, width, wrappedRow) import Element.Background as Background import Element.Border as Border @@ -12,7 +11,6 @@ import Element.Font as Font import Element.Input as Input import Element.Region as Region import Html exposing (Html) -import Maybe.Extra exposing (values) import Random exposing (generate) import Task @@ -21,14 +19,17 @@ import Task -- CONSTANTS +cvssv3MinimumScore : Float cvssv3MinimumScore = 0.0 +cvssv3MaximumScore : Float cvssv3MaximumScore = 10.0 +firstOrgCvssPrefix : String firstOrgCvssPrefix = "https://www.first.org/cvss/calculator/3.1#" @@ -52,6 +53,7 @@ lightGrey = -- MAIN +main : Program () Model Msg main = Browser.document { init = init @@ -84,11 +86,6 @@ init _ = ) -initVector : Vector -initVector = - Vector AvNetwork AcLow PrNone UiNone SUnchanged CNone INone ANone - - -- SUBSCRIPTIONS