use of edu.columbia.cs.psl.phosphor.runtime.Taint in project phosphor by gmu-swe.
the class TaintUtils method enumValueOf.
public static <T extends Enum<T>> T enumValueOf(Class<T> enumType, String name, ControlTaintTagStack ctrl) {
T ret = Enum.valueOf(enumType, name);
Taint tag = (Taint) ((TaintedWithObjTag) ((Object) name)).getPHOSPHOR_TAG();
tag = Taint.combineTags(tag, ctrl);
if (tag != null && !(tag.getLabel() == null && tag.hasNoDependencies())) {
ret = shallowClone(ret);
((TaintedWithObjTag) ret).setPHOSPHOR_TAG(tag);
}
return ret;
}
use of edu.columbia.cs.psl.phosphor.runtime.Taint in project phosphor by gmu-swe.
the class DroidBenchObjTagITCase method testImplicitFlow2.
@Test(expected = java.lang.AssertionError.class)
public void testImplicitFlow2() {
String userInputPassword = taintedString("superSecure");
if (userInputPassword.equals("superSecure"))
passwordCorrect = true;
Taint taint = MultiTainter.getTaint(passwordCorrect);
assertTrue(MultiTainter.getTaint(passwordCorrect) != null && (MultiTainter.getTaint(passwordCorrect).lbl != null || !MultiTainter.getTaint(passwordCorrect).hasNoDependencies()));
}
use of edu.columbia.cs.psl.phosphor.runtime.Taint in project phosphor by gmu-swe.
the class DroidBenchObjTagITCase method assertNoTaint.
public static void assertNoTaint(String obj) {
Taint taint = MultiTainter.getTaint(obj.toCharArray()[0]);
if (taint == null) {
return;
}
if (taint.lbl == null && taint.hasNoDependencies())
return;
fail("Expected null taint. Got: " + taint);
}
use of edu.columbia.cs.psl.phosphor.runtime.Taint in project phosphor by gmu-swe.
the class EnumObjTagITCase method testEnumFlow.
@Test
public void testEnumFlow() throws Exception {
String s = "abcd";
MultiTainter.taintedObject(s, new Taint("foo"));
assertEquals("foo", MultiTainter.getTaint(s).lbl);
Dummy x = Dummy.a;
Dummy y = Dummy.valueOf(s);
assertEquals("foo", MultiTainter.getTaint(y).lbl);
assertSame(y, Dummy.abcd);
}
use of edu.columbia.cs.psl.phosphor.runtime.Taint in project phosphor by gmu-swe.
the class DroidBenchImplicitITCase method testImplicitFlow2p2.
public void testImplicitFlow2p2() {
boolean passwordCorrect = false;
String userInputPassword = taintedString("superSecure");
if (userInputPassword.equals("superSecure"))
passwordCorrect = true;
Taint taint = MultiTainter.getTaint(passwordCorrect);
assertTrue(MultiTainter.getTaint(passwordCorrect) != null && (MultiTainter.getTaint(passwordCorrect).lbl != null || !MultiTainter.getTaint(passwordCorrect).hasNoDependencies()));
}
Aggregations