InformationFlowAnalysis

class InformationFlowAnalysis

Associates Variables with their Labels.

Types

Companion
Link copied to clipboard
object Companion : AnalysisProvider<InformationFlowAnalysis>

Functions

check
Link copied to clipboard
fun check()

Asserts that the program does not violate information flow security, and throws (a subclass of) InformationFlowError otherwise.

fun ExpressionNode.check(solver: ConstraintSolver<InformationFlowError>, parameterMap: Map<String, Label>, pcLabel: AtomicLabelTerm)

Generate information flow constraints for an expression.

fun StatementNode.check(solver: ConstraintSolver<InformationFlowError>, parameterMap: Map<String, Label>, pcLabel: AtomicLabelTerm)

Generate information flow constraints for a statement.

exportConstraintGraph
Link copied to clipboard
fun exportConstraintGraph(output: Writer)

Outputs a DOT representation of the program's constraint graph to output.

label
Link copied to clipboard
fun label(node: DeclarationNode): Label
fun label(node: ObjectDeclarationArgumentNode): Label
fun label(node: ParameterNode): Label

Returns the inferred security label of the ObjectVariable declared by node.

fun label(node: ExpressionNode): Label

Returns the inferred security label of the result of node.

fun label(node: LetNode): Label

Returns the inferred security label of the Temporary defined by node.

pcLabel
Link copied to clipboard
fun pcLabel(node: Node): Label

Returns the label of the program counter at the node's program point.