module Convex.ThreatModel.All where
import Convex.ThreatModel (ThreatModel, getThreatModelName)
import Convex.ThreatModel.DatumBloat (datumByteBloatAttack, datumListBloatAttack)
import Convex.ThreatModel.DoubleSatisfaction (doubleSatisfaction)
import Convex.ThreatModel.DuplicateListEntry (duplicateListEntryAttack)
import Convex.ThreatModel.InputDuplication (inputDuplication)
import Convex.ThreatModel.InvalidDatumIndex (invalidDatumIndexAttack)
import Convex.ThreatModel.LargeData (largeDataAttack)
import Convex.ThreatModel.LargeValue (largeValueAttack)
import Convex.ThreatModel.MissingOutputDatum (missingOutputDatumAttack)
import Convex.ThreatModel.MutualExclusion (mutualExclusionAttack)
import Convex.ThreatModel.NegativeInteger (negativeIntegerAttack)
import Convex.ThreatModel.OutputDatumHashMissing (outputDatumHashMissingAttack)
import Convex.ThreatModel.RedeemerAssetSubstitution (redeemerAssetSubstitution)
import Convex.ThreatModel.SelfReferenceInjection (selfReferenceInjection)
import Convex.ThreatModel.SignatoryRemoval (signatoryRemoval)
import Convex.ThreatModel.TimeBoundManipulation (timeBoundManipulation)
import Convex.ThreatModel.TokenForgery (tokenForgeryAttack)
import Convex.ThreatModel.UnprotectedScriptOutput (unprotectedScriptOutput)
import Convex.ThreatModel.ValueUnderpayment (valueUnderpaymentAttack)
import Data.Maybe (mapMaybe)
allThreatModels :: [ThreatModel ()]
allThreatModels :: [ThreatModel ()]
allThreatModels =
[ ThreatModel ()
datumListBloatAttack
, ThreatModel ()
datumByteBloatAttack
, ThreatModel ()
doubleSatisfaction
, ThreatModel ()
duplicateListEntryAttack
, ThreatModel ()
inputDuplication
, ThreatModel ()
invalidDatumIndexAttack
, ThreatModel ()
largeDataAttack
, ThreatModel ()
largeValueAttack
, ThreatModel ()
missingOutputDatumAttack
, ThreatModel ()
mutualExclusionAttack
, ThreatModel ()
negativeIntegerAttack
, ThreatModel ()
outputDatumHashMissingAttack
, ThreatModel ()
redeemerAssetSubstitution
, ThreatModel ()
selfReferenceInjection
, ThreatModel ()
signatoryRemoval
, ThreatModel ()
timeBoundManipulation
, ThreatModel ()
tokenForgeryAttack
, ThreatModel ()
unprotectedScriptOutput
, ThreatModel ()
valueUnderpaymentAttack
]
allThreatModelsNames :: [String]
allThreatModelsNames :: [String]
allThreatModelsNames = (ThreatModel () -> Maybe String) -> [ThreatModel ()] -> [String]
forall a b. (a -> Maybe b) -> [a] -> [b]
mapMaybe ThreatModel () -> Maybe String
forall a. ThreatModel a -> Maybe String
getThreatModelName [ThreatModel ()]
allThreatModels