Search in sources :

Example 26 with Taint

use of edu.columbia.cs.psl.phosphor.runtime.Taint in project phosphor by gmu-swe.

the class ReflectionObjTagITCase method testBoxing.

@Test
public void testBoxing() {
    ArrayList<Integer> list = new ArrayList<Integer>();
    for (int i = 0; i < 5; i++) {
        list.add(i);
    }
    int val = 18;
    for (int i = 0; i < list.size(); i++) {
        MultiTainter.taintedObject(list.get(i), new Taint("collection"));
    }
    val = MultiTainter.taintedInt(val, "int");
    int newVal = list.get(0) + val;
    list.add(newVal);
    for (int i = 0; i < list.size(); i++) {
        Integer obj = list.get(i);
        int objVal = list.get(i);
        Taint objTaint = MultiTainter.getTaint(obj);
        Taint valTaint = MultiTainter.getTaint(objVal);
        assertEquals(objTaint.lbl, valTaint.lbl);
    }
}
Also used : ArrayList(java.util.ArrayList) Taint(edu.columbia.cs.psl.phosphor.runtime.Taint) Taint(edu.columbia.cs.psl.phosphor.runtime.Taint) Test(org.junit.Test)

Example 27 with Taint

use of edu.columbia.cs.psl.phosphor.runtime.Taint in project phosphor by gmu-swe.

the class FakeEnumTest method main.

public static void main(String[] args) {
    System.out.println(Foo.A);
    String a = "A";
    MultiTainter.taintedObject(a, new Taint("Z"));
    ;
    System.out.println(Foo.valueOf(a));
    System.out.println(MultiTainter.getTaint(Foo.valueOf(a)));
    System.out.println(MultiTainter.getTaint(a));
    System.out.println(MultiTainter.getTaint(Foo.A));
}
Also used : Taint(edu.columbia.cs.psl.phosphor.runtime.Taint)

Example 28 with Taint

use of edu.columbia.cs.psl.phosphor.runtime.Taint in project phosphor by gmu-swe.

the class ReflectionImplicitITCase method testBoxing.

@Test
public void testBoxing() {
    ArrayList<Integer> list = new ArrayList<Integer>();
    for (int i = 0; i < 5; i++) {
        list.add(i);
    }
    int val = 18;
    for (int i = 0; i < list.size(); i++) {
        MultiTainter.taintedObject(list.get(i), new Taint("collection"));
    }
    val = MultiTainter.taintedInt(val, "int");
    int newVal = list.get(0) + val;
    Integer z = Integer.valueOf(newVal);
    list.add(newVal);
    for (int i = 0; i < list.size(); i++) {
        Integer obj = list.get(i);
        int objVal = list.get(i);
        Taint objTaint = MultiTainter.getTaint(obj);
        Taint valTaint = MultiTainter.getTaint(objVal);
        assertEquals(objTaint.lbl, valTaint.lbl);
    }
}
Also used : ArrayList(java.util.ArrayList) Taint(edu.columbia.cs.psl.phosphor.runtime.Taint) Taint(edu.columbia.cs.psl.phosphor.runtime.Taint) Test(org.junit.Test)

Example 29 with Taint

use of edu.columbia.cs.psl.phosphor.runtime.Taint in project phosphor by gmu-swe.

the class StringConcatObjTagITCase method testLDCStringConcat.

@Test
public void testLDCStringConcat() throws Exception {
    String str1 = "abcdefg";
    ((TaintedWithObjTag) ((Object) str1)).setPHOSPHOR_TAG(new Taint("sensitive"));
    String str2 = "a" + str1;
    assertTrue(MultiTainter.getTaint(str2.charAt(0)) == null);
    assertTrue(MultiTainter.getTaint(str2.charAt(1)) != null);
}
Also used : TaintedWithObjTag(edu.columbia.cs.psl.phosphor.struct.TaintedWithObjTag) Taint(edu.columbia.cs.psl.phosphor.runtime.Taint) Test(org.junit.Test)

Example 30 with Taint

use of edu.columbia.cs.psl.phosphor.runtime.Taint in project phosphor by gmu-swe.

the class StringConcatObjTagITCase method testConcateStringInt.

@Test
public void testConcateStringInt() {
    String s = "abc";
    int val = 98;
    MultiTainter.taintedObject(s, new Taint("string"));
    val = MultiTainter.taintedInt(val, "int");
    String concate = s + val;
    for (int i = 0; i < concate.length(); i++) {
        char c = concate.charAt(i);
        Taint ct = MultiTainter.getTaint(c);
        if (i < 3) {
            assertEquals(ct.lbl, "string");
        } else {
            assertEquals(ct.lbl, "int");
        }
    }
}
Also used : Taint(edu.columbia.cs.psl.phosphor.runtime.Taint) Taint(edu.columbia.cs.psl.phosphor.runtime.Taint) Test(org.junit.Test)

Aggregations

Taint (edu.columbia.cs.psl.phosphor.runtime.Taint)30 Test (org.junit.Test)20 TaintedWithObjTag (edu.columbia.cs.psl.phosphor.struct.TaintedWithObjTag)7 ArrayList (java.util.ArrayList)2 HashMap (java.util.HashMap)1