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

📄 impl.jca

📁 在开发java卡的时候
💻 JCA
📖 第 1 页 / 共 3 页
字号:
		}

		.method public static selectApplet(BB)V 13 {
			.stack 2;
			.locals 0;

				L0:	sload_0;
					invokestatic 20;		// watchdata/impl/PrivAccess.deselectOnly(B)V
					sload_0;
					sload_1;
					invokestatic 22;		// watchdata/impl/PrivAccess.selectOnly(BB)V
					return;
		}

		.method public static getAppState(Ljavacard/framework/AID;)B 14 {
			.stack 2;
			.locals 1;

			.descriptor	Ljavacard/framework/AID;	1.6;

				L0:	aload_0;
					invokestatic 42;		// watchdata/impl/PrivAccess.findApplet(Ljavacard/framework/AID;)B
					sstore_1;
					sload_1;
					sconst_m1;
					if_scmpeq L2;
				L1:	sload_1;
					sconst_1;
					invokestatic 18;		// watchdata/NativeMethods/WDAPI.readAppTable(BB)S
					s2b;
					sreturn;
				L2:	sconst_0;
					sreturn;
		}

		.method public static setAppState(Ljavacard/framework/AID;B)V 15 {
			.stack 3;
			.locals 1;

			.descriptor	Ljavacard/framework/AID;	1.6;

				L0:	aload_0;
					invokestatic 42;		// watchdata/impl/PrivAccess.findApplet(Ljavacard/framework/AID;)B
					sstore_2;
					sload_2;
					sconst_m1;
					if_scmpeq L2;
				L1:	sload_2;
					sconst_1;
					sload_1;
					invokestatic 43;		// watchdata/NativeMethods/WDAPI.writeAppTable(BBS)V
				L2:	return;
		}

		.method public static getCurrentAppID()B 16 {
			.stack 2;
			.locals 3;

				L0:	invokestatic 44;		// watchdata/NativeMethods/WDAPI.getCurrentContext()S
					sstore_0;
					sload_0;
					sconst_m1;
					if_scmpne L2;
				L1:	sconst_m1;
					sreturn;
				L2:	sconst_0;
					sstore_1;
					goto L7;
				L3:	sload_1;
					sconst_0;
					invokestatic 18;		// watchdata/NativeMethods/WDAPI.readAppTable(BB)S
					sstore_2;
					sload_2;
					sconst_m1;
					if_scmpeq L6;
				L4:	sload_2;
					sload_0;
					if_scmpne L6;
				L5:	sload_1;
					sreturn;
				L6:	sload_1;
					sconst_1;
					sadd;
					s2b;
					sstore_1;
				L7:	sload_1;
					bspush 16;
					if_scmplt L3;
				L8:	sconst_m1;
					sreturn;
		}

		.method public static getPreviousAppID()B 17 {
			.stack 2;
			.locals 3;

				L0:	invokestatic 45;		// watchdata/NativeMethods/WDAPI.getPreviousContext()S
					sstore_0;
					sconst_0;
					sstore_1;
					goto L5;
				L1:	sload_1;
					sconst_0;
					invokestatic 18;		// watchdata/NativeMethods/WDAPI.readAppTable(BB)S
					sstore_2;
					sload_2;
					sconst_m1;
					if_scmpeq L4;
				L2:	sload_2;
					sload_0;
					if_scmpne L4;
				L3:	sload_1;
					sreturn;
				L4:	sload_1;
					sconst_1;
					sadd;
					s2b;
					sstore_1;
				L5:	sload_1;
					bspush 16;
					if_scmplt L1;
				L6:	sconst_m1;
					sreturn;
		}

		.method public static getContextId(B)S 18 {
			.stack 2;
			.locals 0;

				L0:	sload_0;
					sconst_0;
					invokestatic 18;		// watchdata/NativeMethods/WDAPI.readAppTable(BB)S
					sreturn;
		}

		.method public static initialize(Ljavacard/framework/APDU;)V 19 {
			.stack 1;
			.locals 0;

			.descriptor	Ljavacard/framework/APDU;	1.10;

				L0:	invokestatic 46;		// watchdata/impl/PrivAccess.getPackedBoolean()Lwatchdata/impl/PackedBoolean;
					invokevirtual 47;		// watchdata/impl/PackedBoolean.allocate()B
					putstatic_b 13;		// byte watchdata/impl/PrivAccess.selectingAppletFlag
					invokestatic 46;		// watchdata/impl/PrivAccess.getPackedBoolean()Lwatchdata/impl/PackedBoolean;
					invokevirtual 47;		// watchdata/impl/PackedBoolean.allocate()B
					putstatic_b 16;		// byte watchdata/impl/PrivAccess.processMethodFlag
					return;
		}

		.method public selectingApplet()Z 3 {
			.stack 2;
			.locals 0;

				L0:	getstatic_a 10;		// reference watchdata/impl/PrivAccess.thePackedBoolean
					getstatic_b 13;		// byte watchdata/impl/PrivAccess.selectingAppletFlag
					invokevirtual 48;		// watchdata/impl/PackedBoolean.get(B)Z
					sreturn;
		}

		.method public inProcessMethod()Z 4 {
			.stack 2;
			.locals 0;

				L0:	getstatic_a 10;		// reference watchdata/impl/PrivAccess.thePackedBoolean
					getstatic_b 16;		// byte watchdata/impl/PrivAccess.processMethodFlag
					invokevirtual 48;		// watchdata/impl/PackedBoolean.get(B)Z
					sreturn;
		}

		.method static registerApplet(Ljavacard/framework/Applet;Ljavacard/framework/AID;)V {
			.stack 3;
			.locals 1;

			.descriptor	Ljavacard/framework/Applet;	1.3;
			.descriptor	Ljavacard/framework/AID;	1.6;

				L0:	invokestatic 49;		// watchdata/impl/PrivAccess.getPreviousAppID()B
					sstore_2;
					sload_2;
					sconst_1;
					invokestatic 50;		// watchdata/NativeMethods/WDAPI.getAppletObj(BB)Ljava/lang/Object;
					checkcast 0 6;		// T_CLASSORINTERFACE javacard/framework/AID
					ifnull L2;
				L1:	sconst_4;
					invokestatic 51;		// javacard/framework/SystemException.throwIt(S)V
				L2:	aload_1;
					ifnonnull L4;
				L3:	sload_2;
					sconst_0;
					invokestatic 50;		// watchdata/NativeMethods/WDAPI.getAppletObj(BB)Ljava/lang/Object;
					checkcast 0 6;		// T_CLASSORINTERFACE javacard/framework/AID
					astore_1;
				L4:	aload_1;
					invokestatic 42;		// watchdata/impl/PrivAccess.findApplet(Ljavacard/framework/AID;)B
					sconst_m1;
					if_scmpeq L6;
				L5:	sconst_4;
					invokestatic 51;		// javacard/framework/SystemException.throwIt(S)V
				L6:	sload_2;
					sconst_1;
					aload_1;
					invokestatic 52;		// watchdata/NativeMethods/WDAPI.writeAppTableObj(BBLjava/lang/Object;)V
					sload_2;
					sconst_2;
					aload_0;
					invokestatic 52;		// watchdata/NativeMethods/WDAPI.writeAppTableObj(BBLjava/lang/Object;)V
					return;
		}

		.method public getSharedObject(Ljavacard/framework/AID;B)Ljavacard/framework/Shareable; 5 {
			.stack 3;
			.locals 3;

			.descriptor	Ljavacard/framework/AID;	1.6;
			.descriptor	Ljavacard/framework/Shareable;	1.2;

				L0:	aload_0;
					invokestatic 45;		// watchdata/NativeMethods/WDAPI.getPreviousContext()S
					sspush 255;
					sand;
					s2b;
					invokevirtual 54;		// watchdata/impl/PrivAccess.getAID(B)Ljavacard/framework/AID;
					astore_3;
					aload_3;
					ifnonnull L2;
				L1:	aconst_null;
					areturn;
				L2:	aload_1;
					invokestatic 42;		// watchdata/impl/PrivAccess.findApplet(Ljavacard/framework/AID;)B
					sstore 4;
					sload 4;
					sconst_m1;
					if_scmpeq L5;
				L3:	sload 4;
					sconst_2;
					invokestatic 50;		// watchdata/NativeMethods/WDAPI.getAppletObj(BB)Ljava/lang/Object;
					checkcast 0 55;		// T_CLASSORINTERFACE javacard/framework/Applet
					aload_3;
					sload_2;
					invokevirtual 56;		// javacard/framework/Applet.getShareableInterfaceObject(Ljavacard/framework/AID;B)Ljavacard/framework/Shareable;
					areturn;
				L4:	astore 5;
				L5:	aconst_null;
					areturn;
			.exceptionTable {
				// start_block end_block handler_block catch_type_index
				L3 L4 L4 53;
			}
		}

		.method public getAID([BSB)Ljavacard/framework/AID; 6 {
			.stack 3;
			.locals 1;

			.descriptor	Ljavacard/framework/AID;	1.6;

				L0:	aload_1;
					sload_2;
					sload_3;
					invokestatic 57;		// watchdata/impl/PrivAccess.findApplet([BSB)B
					sstore 4;
					sload 4;
					sconst_m1;
					if_scmpeq L2;
				L1:	sload 4;
					sconst_1;
					invokestatic 50;		// watchdata/NativeMethods/WDAPI.getAppletObj(BB)Ljava/lang/Object;
					checkcast 0 6;		// T_CLASSORINTERFACE javacard/framework/AID
					areturn;
				L2:	aconst_null;
					areturn;
		}

		.method public getAID(B)Ljavacard/framework/AID; 7 {
			.stack 2;
			.locals 0;

			.descriptor	Ljavacard/framework/AID;	1.6;

				L0:	sload_1;
					sconst_1;
					invokestatic 50;		// watchdata/NativeMethods/WDAPI.getAppletObj(BB)Ljava/lang/Object;
					checkcast 0 6;		// T_CLASSORINTERFACE javacard/framework/AID
					areturn;
		}

		.method public static findApplet([BSB)B 20 {
			.stack 4;
			.locals 3;

				L0:	sconst_0;
					sstore_3;
					goto L6;
				L1:	sload_3;
					invokestatic 23;		// watchdata/NativeMethods/WDAPI.getAppletInstance(B)Ljavacard/framework/Applet;
					astore 4;
					sload_3;
					sconst_1;
					invokestatic 50;		// watchdata/NativeMethods/WDAPI.getAppletObj(BB)Ljava/lang/Object;
					checkcast 0 6;		// T_CLASSORINTERFACE javacard/framework/AID
					astore 5;
					aload 4;
					ifnull L5;
				L2:	aload 5;
					ifnull L5;
				L3:	aload 5;
					aload_0;
					sload_1;
					sload_2;
					invokevirtual 58;		// javacard/framework/AID.equals([BSB)Z
					ifeq L5;
				L4:	sload_3;
					sreturn;
				L5:	sload_3;
					sconst_1;
					sadd;
					s2b;
					sstore_3;
				L6:	sload_3;
					bspush 16;
					if_scmplt L1;
				L7:	sconst_m1;
					sreturn;
		}

		.method static findApplet(Ljavacard/framework/AID;)B {
			.stack 2;
			.locals 3;

			.descriptor	Ljavacard/framework/AID;	1.6;

				L0:	sconst_0;
					sstore_1;
					goto L6;
				L1:	sload_1;
					invokestatic 23;		// watchdata/NativeMethods/WDAPI.getAppletInstance(B)Ljavacard/framework/Applet;
					astore_2;
					sload_1;
					sconst_1;
					invokestatic 50;		// watchdata/NativeMethods/WDAPI.getAppletObj(BB)Ljava/lang/Object;
					checkcast 0 6;		// T_CLASSORINTERFACE javacard/framework/AID
					astore_3;
					aload_2;
					ifnull L5;
				L2:	aload_0;
					ifnull L5;
				L3:	aload_3;
					aload_0;
					invokevirtual 59;		// javacard/framework/AID.equals(Ljava/lang/Object;)Z
					ifeq L5;
				L4:	sload_1;
					sreturn;
				L5:	sload_1;
					sconst_1;
					sadd;
					s2b;
					sstore_1;
				L6:	sload_1;
					bspush 16;
					if_scmplt L1;
				L7:	sconst_m1;
					sreturn;
		}

	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -