def testSomeIf(self):
     intr = JavaCardVM(None)
     intr.frames.push(
         JavaCardFrame([None, 6], [
             29, 5, 73, 97, 6, 29, 6, 69, 120, 3, 49, 30, 29, 109, 13, 30,
             8, 65, 48, 30, 4, 65, 91, 49, 112, 243, 29, 120
         ]))
     self._run(intr)
Exemple #2
0
 def _testBranch(self, opcode, params, stack, expectedIP):
     vm = JavaCardVM(None)
     vm.frame.stack = stack
     f = getattr(vm, opcode)
     offset = f(*params)
     if offset is None:
         offset = 0
     self.assertEqual(expectedIP, offset)
Exemple #3
0
 def _testLocals(self, opcode, params, init, expected):
     vm = JavaCardVM(None)
     vm.frame.locals = JavaCardLocals()
     for index in init:
         vm.frame.locals[index] = init[index]
     f = getattr(vm, opcode)
     f(*params)
     for index in expected:
         self.assertEqual(expected[index], vm.frame.locals[index])
 def test_gcdIteratif(self):
     intr = JavaCardVM(None)
     intr.frames.push(
         JavaCardFrame(
             [42, 56],
             [29, 97, 4, 28, 120, 28, 29, 73, 49, 29, 47, 30, 48, 112, 243
              ]))
     self._run(intr)
     self.assertEquals(14, intr.getRetValue())
 def test_gcdRecursif(self):
     intr = JavaCardVM(linkResolver())
     intr.load(javatest_cap)
     intr.frames.push(
         JavaCardFrame(
             [42, 56],
             [29, 97, 4, 28, 120, 29, 28, 29, 73, 141, 0, 9, 120]))
     self._run(intr)
     self.assertEquals(14, intr.getRetValue())
 def testEasy(self):
     intr = JavaCardVM(None)
     intr.frames.push(TestDummyFrame([None, 4]))
     intr.sload_1()
     intr.bspush(58)
     intr.sadd()
     intr.s2b()
     intr.sreturn()
     self.assertEquals(62, intr.getRetValue())
Exemple #7
0
 def test_callExtStaticMethod(self):
     intr = JavaCardVM(linkResolver())
     intr.load(javatest_cap)
     intr.frames.push(JavaCardFrame([None, None], [17, 106, 129, 141, 0, 5, 122], 0))
     try:
         self._run(intr)
         self.fail()
     except ISOException as ioe:
         self.assertEqual(0x6A81, ioe.getReason())
 def test_objectCreation(self):
     intr = JavaCardVM(linkResolver())
     intr.load(javatest_cap)
     intr.frames.push(TestDummyFrame([None]))
     intr.new(2)
     intr.dup()
     intr.invokespecial(3)
     self._run(intr)  # dig into
     intr.invokevirtual(4)
     intr.returnn()
Exemple #9
0
    def __init__(self, jcversion=(3, 0, 1)):

        self.current_applet_aid = None
        # a2d(aid) => Applet
        self.applets = {}
        # channel => Applet
        self.selected = [None, None, None, None]
        # opened
        self.channels = [True, False, False, False]
        # current one
        self.current_channel = 0

        # Create the VM
        self.vm = JavaCardVM(resolver.linkResolver(jcversion))

        self.installJCFunctions()
 def test_callVirtualMethod(self):
     intr = JavaCardVM(linkResolver())
     intr.load(javatest_cap)
     intr.frames.push(TestDummyFrame([None]))
     intr.new(2)
     intr.dup()
     intr.invokespecial(3)
     self._run(intr)
     self.assertTrue(isinstance(intr.frame.stack[-1], Applet))
     for i in xrange(1, 4):
         intr.dup()
         intr.sspush(i)
         intr.invokevirtual(7)
         self._run(intr)
         self.assertEqual(i, intr.frame.stack[-1])
         intr.pop()
     intr.returnn()
Exemple #11
0
 def _teststack(self, opcode, params, init, expected):
     vm = JavaCardVM(None)
     vm.frame.stack = init
     f = getattr(vm, opcode)
     f(*params)
     self.assertEqual(expected, vm.frame.stack)
Exemple #12
0
 def _testRun(self, opcode, params, stack):
     vm = JavaCardVM(None)
     vm.frame.stack = stack
     f = getattr(vm, opcode)
     f(*params)