Class NonInterference
- java.lang.Object
-
- it.unive.lisa.analysis.BaseLattice<T>
-
- it.unive.lisa.analysis.nonrelational.inference.BaseInferredValue<NonInterference>
-
- it.unive.lisa.analysis.nonInterference.NonInterference
-
- All Implemented Interfaces:
it.unive.lisa.analysis.Lattice<NonInterference>,it.unive.lisa.analysis.nonrelational.inference.InferredValue<NonInterference>,it.unive.lisa.analysis.nonrelational.NonRelationalElement<NonInterference,it.unive.lisa.symbolic.value.ValueExpression,it.unive.lisa.analysis.nonrelational.inference.InferenceSystem<NonInterference>>,it.unive.lisa.analysis.SemanticEvaluator
public class NonInterference extends it.unive.lisa.analysis.nonrelational.inference.BaseInferredValue<NonInterference>
The type-system based implementation of the non interference analysis.- See Also:
- Non-interference
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface it.unive.lisa.analysis.nonrelational.inference.InferredValue
it.unive.lisa.analysis.nonrelational.inference.InferredValue.InferredPair<T extends it.unive.lisa.analysis.nonrelational.inference.InferredValue<T>>, it.unive.lisa.analysis.nonrelational.inference.InferredValue.InferredPairRepresentation
-
-
Constructor Summary
Constructors Constructor Description NonInterference()Builds a new instance of non interference, referring to the top element of the lattice.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description it.unive.lisa.analysis.nonrelational.inference.InferenceSystem<NonInterference>assume(it.unive.lisa.analysis.nonrelational.inference.InferenceSystem<NonInterference> environment, it.unive.lisa.symbolic.value.ValueExpression expression, it.unive.lisa.program.cfg.ProgramPoint pp)NonInterferencebottom()booleancanProcess(it.unive.lisa.symbolic.SymbolicExpression expression)booleanequals(java.lang.Object obj)protected it.unive.lisa.analysis.nonrelational.inference.InferredValue.InferredPair<NonInterference>evalBinaryExpression(it.unive.lisa.symbolic.value.BinaryOperator operator, NonInterference left, NonInterference right, NonInterference state, it.unive.lisa.program.cfg.ProgramPoint pp)protected it.unive.lisa.analysis.nonrelational.inference.InferredValue.InferredPair<NonInterference>evalIdentifier(it.unive.lisa.symbolic.value.Identifier id, it.unive.lisa.analysis.nonrelational.inference.InferenceSystem<NonInterference> environment, it.unive.lisa.program.cfg.ProgramPoint pp)protected it.unive.lisa.analysis.nonrelational.inference.InferredValue.InferredPair<NonInterference>evalNonNullConstant(it.unive.lisa.symbolic.value.Constant constant, NonInterference state, it.unive.lisa.program.cfg.ProgramPoint pp)protected it.unive.lisa.analysis.nonrelational.inference.InferredValue.InferredPair<NonInterference>evalNullConstant(NonInterference state, it.unive.lisa.program.cfg.ProgramPoint pp)protected it.unive.lisa.analysis.nonrelational.inference.InferredValue.InferredPair<NonInterference>evalTernaryExpression(it.unive.lisa.symbolic.value.TernaryOperator operator, NonInterference left, NonInterference middle, NonInterference right, NonInterference state, it.unive.lisa.program.cfg.ProgramPoint pp)protected it.unive.lisa.analysis.nonrelational.inference.InferredValue.InferredPair<NonInterference>evalUnaryExpression(it.unive.lisa.symbolic.value.UnaryOperator operator, NonInterference arg, NonInterference state, it.unive.lisa.program.cfg.ProgramPoint pp)inthashCode()booleanisBottom()booleanisHighConfidentiality()Yieldstrueif and only if this instance represents ahighvalue for the confidentiality non interference analysis.booleanisHighIntegrity()Yieldstrueif and only if this instance represents ahighvalue for the integrity non interference analysis.booleanisLowConfidentiality()Yieldstrueif and only if this instance represents alowvalue for the confidentiality non interference analysis.booleanisLowIntegrity()Yieldstrueif and only if this instance represents alowvalue for the integrity non interference analysis.booleanisTop()protected booleanlessOrEqualAux(NonInterference other)protected NonInterferencelubAux(NonInterference other)it.unive.lisa.analysis.representation.DomainRepresentationrepresentation()NonInterferencetop()booleantracksIdentifiers(it.unive.lisa.symbolic.value.Identifier id)NonInterferencevariable(it.unive.lisa.symbolic.value.Identifier id, it.unive.lisa.program.cfg.ProgramPoint pp)protected NonInterferencewideningAux(NonInterference other)-
Methods inherited from class it.unive.lisa.analysis.nonrelational.inference.BaseInferredValue
eval, evalPushAny, evalTypeCast, evalTypeConv, glb, glbAux, satisfies, satisfiesAbstractValue, satisfiesBinaryExpression, satisfiesNonNullConstant, satisfiesNullConstant, satisfiesPushAny, satisfiesTernaryExpression, satisfiesUnaryExpression, toString
-
-
-
-
Method Detail
-
top
public NonInterference top()
-
isTop
public boolean isTop()
-
bottom
public NonInterference bottom()
-
isBottom
public boolean isBottom()
-
isHighConfidentiality
public boolean isHighConfidentiality()
Yieldstrueif and only if this instance represents ahighvalue for the confidentiality non interference analysis.- Returns:
trueif this is a high confidentiality element
-
isLowConfidentiality
public boolean isLowConfidentiality()
Yieldstrueif and only if this instance represents alowvalue for the confidentiality non interference analysis.- Returns:
trueif this is a low confidentiality element
-
isHighIntegrity
public boolean isHighIntegrity()
Yieldstrueif and only if this instance represents ahighvalue for the integrity non interference analysis.- Returns:
trueif this is a high integrity element
-
isLowIntegrity
public boolean isLowIntegrity()
Yieldstrueif and only if this instance represents alowvalue for the integrity non interference analysis.- Returns:
trueif this is a low integrity element
-
lubAux
protected NonInterference lubAux(NonInterference other) throws it.unive.lisa.analysis.SemanticException
- Specified by:
lubAuxin classit.unive.lisa.analysis.BaseLattice<NonInterference>- Throws:
it.unive.lisa.analysis.SemanticException
-
wideningAux
protected NonInterference wideningAux(NonInterference other) throws it.unive.lisa.analysis.SemanticException
- Specified by:
wideningAuxin classit.unive.lisa.analysis.BaseLattice<NonInterference>- Throws:
it.unive.lisa.analysis.SemanticException
-
lessOrEqualAux
protected boolean lessOrEqualAux(NonInterference other) throws it.unive.lisa.analysis.SemanticException
- Specified by:
lessOrEqualAuxin classit.unive.lisa.analysis.BaseLattice<NonInterference>- Throws:
it.unive.lisa.analysis.SemanticException
-
hashCode
public int hashCode()
- Specified by:
hashCodein classit.unive.lisa.analysis.BaseLattice<NonInterference>
-
equals
public boolean equals(java.lang.Object obj)
- Specified by:
equalsin classit.unive.lisa.analysis.BaseLattice<NonInterference>
-
representation
public it.unive.lisa.analysis.representation.DomainRepresentation representation()
-
evalNullConstant
protected it.unive.lisa.analysis.nonrelational.inference.InferredValue.InferredPair<NonInterference> evalNullConstant(NonInterference state, it.unive.lisa.program.cfg.ProgramPoint pp) throws it.unive.lisa.analysis.SemanticException
- Overrides:
evalNullConstantin classit.unive.lisa.analysis.nonrelational.inference.BaseInferredValue<NonInterference>- Throws:
it.unive.lisa.analysis.SemanticException
-
evalNonNullConstant
protected it.unive.lisa.analysis.nonrelational.inference.InferredValue.InferredPair<NonInterference> evalNonNullConstant(it.unive.lisa.symbolic.value.Constant constant, NonInterference state, it.unive.lisa.program.cfg.ProgramPoint pp) throws it.unive.lisa.analysis.SemanticException
- Overrides:
evalNonNullConstantin classit.unive.lisa.analysis.nonrelational.inference.BaseInferredValue<NonInterference>- Throws:
it.unive.lisa.analysis.SemanticException
-
evalUnaryExpression
protected it.unive.lisa.analysis.nonrelational.inference.InferredValue.InferredPair<NonInterference> evalUnaryExpression(it.unive.lisa.symbolic.value.UnaryOperator operator, NonInterference arg, NonInterference state, it.unive.lisa.program.cfg.ProgramPoint pp) throws it.unive.lisa.analysis.SemanticException
- Overrides:
evalUnaryExpressionin classit.unive.lisa.analysis.nonrelational.inference.BaseInferredValue<NonInterference>- Throws:
it.unive.lisa.analysis.SemanticException
-
evalBinaryExpression
protected it.unive.lisa.analysis.nonrelational.inference.InferredValue.InferredPair<NonInterference> evalBinaryExpression(it.unive.lisa.symbolic.value.BinaryOperator operator, NonInterference left, NonInterference right, NonInterference state, it.unive.lisa.program.cfg.ProgramPoint pp) throws it.unive.lisa.analysis.SemanticException
- Overrides:
evalBinaryExpressionin classit.unive.lisa.analysis.nonrelational.inference.BaseInferredValue<NonInterference>- Throws:
it.unive.lisa.analysis.SemanticException
-
evalTernaryExpression
protected it.unive.lisa.analysis.nonrelational.inference.InferredValue.InferredPair<NonInterference> evalTernaryExpression(it.unive.lisa.symbolic.value.TernaryOperator operator, NonInterference left, NonInterference middle, NonInterference right, NonInterference state, it.unive.lisa.program.cfg.ProgramPoint pp) throws it.unive.lisa.analysis.SemanticException
- Overrides:
evalTernaryExpressionin classit.unive.lisa.analysis.nonrelational.inference.BaseInferredValue<NonInterference>- Throws:
it.unive.lisa.analysis.SemanticException
-
evalIdentifier
protected it.unive.lisa.analysis.nonrelational.inference.InferredValue.InferredPair<NonInterference> evalIdentifier(it.unive.lisa.symbolic.value.Identifier id, it.unive.lisa.analysis.nonrelational.inference.InferenceSystem<NonInterference> environment, it.unive.lisa.program.cfg.ProgramPoint pp) throws it.unive.lisa.analysis.SemanticException
- Overrides:
evalIdentifierin classit.unive.lisa.analysis.nonrelational.inference.BaseInferredValue<NonInterference>- Throws:
it.unive.lisa.analysis.SemanticException
-
variable
public NonInterference variable(it.unive.lisa.symbolic.value.Identifier id, it.unive.lisa.program.cfg.ProgramPoint pp)
-
tracksIdentifiers
public boolean tracksIdentifiers(it.unive.lisa.symbolic.value.Identifier id)
-
canProcess
public boolean canProcess(it.unive.lisa.symbolic.SymbolicExpression expression)
-
assume
public it.unive.lisa.analysis.nonrelational.inference.InferenceSystem<NonInterference> assume(it.unive.lisa.analysis.nonrelational.inference.InferenceSystem<NonInterference> environment, it.unive.lisa.symbolic.value.ValueExpression expression, it.unive.lisa.program.cfg.ProgramPoint pp) throws it.unive.lisa.analysis.SemanticException
- Specified by:
assumein interfaceit.unive.lisa.analysis.nonrelational.NonRelationalElement<NonInterference,it.unive.lisa.symbolic.value.ValueExpression,it.unive.lisa.analysis.nonrelational.inference.InferenceSystem<NonInterference>>- Overrides:
assumein classit.unive.lisa.analysis.nonrelational.inference.BaseInferredValue<NonInterference>- Throws:
it.unive.lisa.analysis.SemanticException
-
-