⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gsmapplet.jca

📁 基于Java开发的SATSA源代码
💻 JCA
📖 第 1 页 / 共 2 页
字号:
					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 + -