|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
public interface Label
This class represents the Jif security label.
| Method Summary | |
|---|---|
java.util.Collection |
components()
Retrieve the collection of components. |
java.lang.String |
componentString()
|
java.lang.String |
componentString(java.util.Set printedLabels)
|
java.lang.String |
description()
|
boolean |
hasVariables()
Does the label contain any variables, that is, labels of type VarLabel? |
boolean |
isBottom()
Is this label equivalent to bottom? |
boolean |
isComparable()
Is this label comparable to other labels? |
boolean |
isCovariant()
Is this label covariant? |
boolean |
isDisambiguated()
Are the components of this label all disambiguated? |
boolean |
isEnumerable()
Are the components of this label enumerable? |
boolean |
isInvariant()
Is this label invariant? |
boolean |
isRuntimeRepresentable()
|
boolean |
isSingleton()
Does this label represent only a single label? |
boolean |
isTop()
Is this label equivalent to top? |
Label |
join(Label L)
Returns the join of this label and L. |
PathMap |
labelCheck(JifContext A)
Label check the label, which will determine how much information may be gained if the label is evaluated at runtime. |
boolean |
leq_(Label L,
LabelEnv H,
LabelEnv.SearchState state)
Implementation of leq, should only be called by JifTypeSystem |
void |
setDescription(java.lang.String d)
|
Label |
simplify()
|
Label |
singletonComponent()
Retrieve the singleton component that this label represents. |
Label |
subst(LabelSubstitution labelSubst)
|
java.util.List |
throwTypes(polyglot.types.TypeSystem ts)
If the label is runtime representable, when it is evaluated at runtime it may throw exceptions. |
polyglot.ast.Expr |
toJava(JifToJavaRewriter rw)
|
java.lang.String |
toString(java.util.Set printedLabels)
|
java.util.Set |
variables()
The set of variables that this contains, i.e., labels of type VarLabel? |
| Methods inherited from interface jif.types.Param |
|---|
isCanonical |
| Methods inherited from interface polyglot.types.TypeObject |
|---|
equalsImpl, position, typeSystem |
| Methods inherited from interface polyglot.util.Copy |
|---|
copy |
| Method Detail |
|---|
boolean isBottom()
For example, a JoinLabel with no components would return true for this method.
boolean isTop()
For example, a JoinLabel with two components, one of which is Top, would return true for this method.
boolean isInvariant()
boolean isCovariant()
Label join(Label L)
boolean isComparable()
For example, an UnknownLabel is not comparable to others, neither is a VarLabel. Most other labels are.
java.lang.String description()
void setDescription(java.lang.String d)
Label subst(LabelSubstitution labelSubst)
throws polyglot.types.SemanticException
labelSubst - The LabelSubstitution to apply to this
label
polyglot.types.SemanticExceptionPathMap labelCheck(JifContext A)
boolean{Alice:} secret = ...;
final label{Alice:} lb = secret?new label{}:new label{Bob:};
boolean{} leak = false;
if ((*lb} <= new label{}) { // evaluation of lb reveals
// information at level {Alice:}
leak = true;
}
Jif.labelCheck(LabelChecker),
Principal.labelCheck(JifContext)boolean isEnumerable()
For example, Singletons are enumerable, JoinLabels are enumerable, RuntimeLabel (the label of all runtime representable components) is not enumerable. NOTE: The components of a label are not neccessarily stuck together with a join operation. For example, the MeetLabel uses the meet operation between its components.
boolean isDisambiguated()
java.util.Collection components()
boolean isSingleton()
For example, a JoinLabel with more than one component returns false, a MeetLabel with more than one component returns false, most other Labels return true.
Label singletonComponent()
Label simplify()
boolean hasVariables()
java.util.Set variables()
boolean leq_(Label L,
LabelEnv H,
LabelEnv.SearchState state)
L - the label to determine if this label is leq to. This label
always satisfies !this.equals(L)H - the label environment (including principal hierarchy). Will
always be non-null.boolean isRuntimeRepresentable()
isRuntimeRepresentable in interface Paramjava.util.List throwTypes(polyglot.types.TypeSystem ts)
polyglot.ast.Expr toJava(JifToJavaRewriter rw)
throws polyglot.types.SemanticException
polyglot.types.SemanticExceptionjava.lang.String componentString()
java.lang.String componentString(java.util.Set printedLabels)
java.lang.String toString(java.util.Set printedLabels)
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||