📄 gsmapplet.jca
字号:
aload_2;
aastore;
goto L8;
L6: sinc 3 1;
L7: sload_3;
bspush 16;
if_scmplt L4;
L8: return;
}
.method public clearEventListener(Ljavacard/framework/AID;)V 6 {
.stack 3;
.locals 2;
.descriptor Ljavacard/framework/AID; 1.6;
L0: aload_1;
sconst_0;
invokestatic 11; // javacard/framework/JCSystem.getAppletShareableInterfaceObject(Ljavacard/framework/AID;B)Ljavacard/framework/Shareable;
checkcast 0 19; // T_CLASSORINTERFACE sim/toolkit/ToolkitInterface
astore_2;
aload_2;
ifnonnull L2;
L1: return;
L2: aload_0;
aload_2;
invokespecial 13; // com/sun/satsa/gsmapplet/AccessSATImpl.findListener(Lsim/toolkit/ToolkitInterface;)B
sstore_3;
sload_3;
sconst_m1;
if_scmpeq L4;
L3: getfield_a_this 2; // reference com/sun/satsa/gsmapplet/AccessSATImpl.tiList
sload_3;
aconst_null;
aastore;
L4: return;
}
.method public isEventListenerSet(Ljavacard/framework/AID;)Z 7 {
.stack 2;
.locals 2;
.descriptor Ljavacard/framework/AID; 1.6;
L0: aload_1;
sconst_0;
invokestatic 11; // javacard/framework/JCSystem.getAppletShareableInterfaceObject(Ljavacard/framework/AID;B)Ljavacard/framework/Shareable;
checkcast 0 19; // T_CLASSORINTERFACE sim/toolkit/ToolkitInterface
astore_2;
aload_2;
ifnonnull L2;
L1: sconst_0;
sreturn;
L2: aload_0;
aload_2;
invokespecial 13; // com/sun/satsa/gsmapplet/AccessSATImpl.findListener(Lsim/toolkit/ToolkitInterface;)B
sstore_3;
sload_3;
sconst_m1;
if_scmpeq L4;
L3: sconst_1;
sreturn;
L4: sconst_0;
sreturn;
}
.method private findListener(Lsim/toolkit/ToolkitInterface;)B {
.stack 2;
.locals 1;
.descriptor Lsim/toolkit/ToolkitInterface; 2.2;
L0: sconst_0;
sstore_2;
goto L5;
L1: getfield_a_this 2; // reference com/sun/satsa/gsmapplet/AccessSATImpl.tiList
sload_2;
aaload;
ifnull L4;
L2: getfield_a_this 2; // reference com/sun/satsa/gsmapplet/AccessSATImpl.tiList
sload_2;
aaload;
aload_1;
invokevirtual 14; // java/lang/Object.equals(Ljava/lang/Object;)Z
ifeq L4;
L3: sload_2;
sreturn;
L4: sload_2;
sconst_1;
sadd;
s2b;
sstore_2;
L5: sload_2;
bspush 16;
if_scmplt L1;
L6: sconst_m1;
sreturn;
}
}
.class public GSMApplet 1 extends 1.3 { // extends javacard/framework/Applet
.fields {
AccessSATImpl SATAccessor 0; // Lcom/sun/satsa/gsmapplet/AccessSATImpl;
private static final byte ENVELOPE_INS = -62; // B
private static final byte GET_RESPONSE_INS = -64; // B
}
.publicMethodTable 7 {
equals(Ljava/lang/Object;)Z;
register()V;
register([BSB)V;
selectingApplet()Z;
deselect()V;
getShareableInterfaceObject(Ljavacard/framework/AID;B)Ljavacard/framework/Shareable;;
select()Z;
process(Ljavacard/framework/APDU;)V;
uninstall()V;
}
.packageMethodTable 0 {
}
.implementedInterfaceInfoTable {
.interface 2.1 { // sim/toolkit/ToolkitConstants
}
.interface 1.18 { // javacard/framework/AppletEvent
8; // uninstall()V
}
}
.method private <init>()V {
.stack 3;
.locals 0;
L0: aload_0;
invokespecial 15; // javacard/framework/Applet.<init>()V
aload_0;
invokevirtual 16; // javacard/framework/Applet.register()V
aload_0;
new 17; // com/sun/satsa/gsmapplet/AccessSATImpl
dup;
invokespecial 18; // com/sun/satsa/gsmapplet/AccessSATImpl.<init>()V
putfield_a 4; // reference com/sun/satsa/gsmapplet/GSMApplet.SATAccessor
getfield_a_this 4; // reference com/sun/satsa/gsmapplet/GSMApplet.SATAccessor
putstatic_a 20; // reference sim/toolkit/ViewHandler.SATAccessor
return;
}
.method public static install([BSB)V 0 {
.stack 2;
.locals 0;
L0: new 21; // com/sun/satsa/gsmapplet/GSMApplet
dup;
invokespecial 22; // com/sun/satsa/gsmapplet/GSMApplet.<init>()V
pop;
return;
}
.method public uninstall()V 8 {
.stack 1;
.locals 0;
L0: aconst_null;
putstatic_a 20; // reference sim/toolkit/ViewHandler.SATAccessor
return;
}
.method public process(Ljavacard/framework/APDU;)V 7 {
.stack 4;
.locals 6;
.descriptor Ljavacard/framework/APDU; 1.10;
L0: aload_1;
invokevirtual 9; // javacard/framework/APDU.getBuffer()[B
astore_2;
aload_2;
sconst_0;
aload_2;
sconst_0;
baload;
bspush -4;
sand;
bastore;
aload_2;
sconst_0;
baload;
ifne L3;
L1: aload_2;
sconst_1;
baload;
bspush -92;
if_scmpne L3;
L2: return;
L3: aload_2;
sconst_1;
baload;
slookupswitch L13 2 -64 L12 -62 L4;
L4: aload_1;
invokevirtual 23; // javacard/framework/APDU.setIncomingAndReceive()S
sstore_3;
getfield_a_this 4; // reference com/sun/satsa/gsmapplet/GSMApplet.SATAccessor
invokevirtual 24; // com/sun/satsa/gsmapplet/AccessSATImpl.resetBuffers()V
sconst_0;
sstore 4;
goto L10;
L5: getfield_a_this 4; // reference com/sun/satsa/gsmapplet/GSMApplet.SATAccessor
getfield_a 2; // reference com/sun/satsa/gsmapplet/AccessSATImpl.tiList
sload 4;
aaload;
astore 5;
aload 5;
ifnonnull L7;
L6: goto L9;
L7: aload 5;
sconst_4;
invokeinterface 2 19 0; // sim/toolkit/ToolkitInterface
invokestatic 31; // javacard/framework/JCSystem.requestObjectDeletion()V
getstatic_b 32; // byte sim/toolkit/EnvelopeResponseHandler.status
ifeq L9;
L8: getfield_a_this 4; // reference com/sun/satsa/gsmapplet/GSMApplet.SATAccessor
invokevirtual 25; // com/sun/satsa/gsmapplet/AccessSATImpl.getOutDataLength()S
sstore 6;
getstatic_b 32; // byte sim/toolkit/EnvelopeResponseHandler.status
bspush 8;
sshl;
sload 6;
sor;
sstore 7;
sload 7;
invokestatic 30; // javacard/framework/ISOException.throwIt(S)V
L9: sload 4;
sconst_1;
sadd;
s2b;
sstore 4;
L10: sload 4;
bspush 16;
if_scmplt L5;
L11: goto L14;
L12: getfield_a_this 4; // reference com/sun/satsa/gsmapplet/GSMApplet.SATAccessor
invokevirtual 25; // com/sun/satsa/gsmapplet/AccessSATImpl.getOutDataLength()S
sstore 5;
aload_1;
invokevirtual 26; // javacard/framework/APDU.setOutgoing()S
pop;
aload_1;
sload 5;
invokevirtual 27; // javacard/framework/APDU.setOutgoingLength(S)V
getfield_a_this 4; // reference com/sun/satsa/gsmapplet/GSMApplet.SATAccessor
invokevirtual 28; // com/sun/satsa/gsmapplet/AccessSATImpl.setOutgoingAPDU()V
aload_1;
sconst_0;
sload 5;
invokevirtual 29; // javacard/framework/APDU.sendBytes(SS)V
goto L14;
L13: sspush 27904;
invokestatic 30; // javacard/framework/ISOException.throwIt(S)V
L14: return;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -