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

📄 impl.jca

📁 在开发java卡的时候
💻 JCA
📖 第 1 页 / 共 3 页
字号:
// converted by version 1.3
// on Thu Aug 31 15:24:02 CST 2006

.package watchdata/impl {
	.aid 0x11:0x22:0x33:0x44:0x55:0x66;
	.version 1.0;

	.imports {
		0xA0:0x0:0x0:0x0:0x62:0x0:0x1 1.0;		//java/lang
		0xA0:0x0:0x0:0x0:0x62:0x1:0x1 1.2;		//javacard/framework
		0x11:0x22:0x33:0x44:0x55:0x66:0x77 1.0;		//watchdata/NativeMethods
	}

	.constantPool {
		// 0
		instanceFieldRef byte[] PackedBoolean/container;
		// 1
		instanceFieldRef byte PackedBoolean/nextId;
		// 2
		staticMethodRef 0.0.0()V;		// java/lang/Object.<init>()V
		// 3
		staticMethodRef 1.8.13(SB)[B;		// javacard/framework/JCSystem.makeTransientByteArray(SB)[B
		// 4
		virtualMethodRef PackedBoolean/access(BB)Z;
		// 5
		staticMethodRef PrivAccess/registerApplet(Ljavacard/framework/Applet;Ljavacard/framework/AID;)V;
			.descriptor	Ljavacard/framework/Applet;	1.3;
			.descriptor	Ljavacard/framework/AID;	1.6;

		// 6
		classRef 1.6;		// javacard/framework/AID
		// 7
		staticMethodRef 1.6.0([BSB)V;		// javacard/framework/AID.<init>([BSB)V
		// 8
		staticMethodRef 2.0.12(Ljava/lang/Object;Z)V;		// watchdata/NativeMethods/WDAPI.setJCREentry(Ljava/lang/Object;Z)V
			.descriptor	Ljava/lang/Object;	0.0;

		// 9
		staticFieldRef PrivAccess PrivAccess/thePrivAccess;
		// 10
		staticFieldRef PackedBoolean PrivAccess/thePackedBoolean;
		// 11
		classRef PackedBoolean;
		// 12
		staticMethodRef PackedBoolean/<init>(B)V;
		// 13
		staticFieldRef byte PrivAccess/selectingAppletFlag;
		// 14
		virtualMethodRef PackedBoolean/set(B)V;
		// 15
		virtualMethodRef PackedBoolean/reset(B)V;
		// 16
		staticFieldRef byte PrivAccess/processMethodFlag;
		// 17
		staticMethodRef 2.0.8(B)S;		// watchdata/NativeMethods/WDAPI.getChannelContext(B)S
		// 18
		staticMethodRef 2.0.32(BB)S;		// watchdata/NativeMethods/WDAPI.readAppTable(BB)S
		// 19
		staticMethodRef 2.0.34(S)Ljavacard/framework/Applet;;		// watchdata/NativeMethods/WDAPI.getAppletInstance(S)Ljavacard/framework/Applet;
			.descriptor	Ljavacard/framework/Applet;	1.3;

		// 20
		staticMethodRef PrivAccess/deselectOnly(B)V;
		// 21
		staticFieldRef byte PrivAccess/defaultAppID;
		// 22
		staticMethodRef PrivAccess/selectOnly(BB)V;
		// 23
		staticMethodRef 2.0.35(B)Ljavacard/framework/Applet;;		// watchdata/NativeMethods/WDAPI.getAppletInstance(B)Ljavacard/framework/Applet;
			.descriptor	Ljavacard/framework/Applet;	1.3;

		// 24
		classRef 1.17;		// javacard/framework/MultiSelectable
		// 25
		staticMethodRef PrivAccess/getContextId(B)S;
		// 26
		staticMethodRef 2.0.16()B;		// watchdata/NativeMethods/WDAPI.getMaxChannels()B
		// 27
		classRef 1.7;		// javacard/framework/ISOException
		// 28
		classRef 0.1;		// java/lang/Throwable
		// 29
		staticMethodRef PrivAccess/setSelectingAppletFlag()V;
		// 30
		staticMethodRef 2.0.17(S)B;		// watchdata/NativeMethods/WDAPI.getContextStatus(S)B
		// 31
		staticMethodRef 2.0.7(BSZ)Z;		// watchdata/NativeMethods/WDAPI.setChannelContext(BSZ)Z
		// 32
		staticMethodRef 2.0.18(B)V;		// watchdata/NativeMethods/WDAPI.setCurrentlySelectedChannel(B)V
		// 33
		staticMethodRef PrivAccess/getSelectedApplet(B)Ljavacard/framework/Applet;;
			.descriptor	Ljavacard/framework/Applet;	1.3;

		// 34
		virtualMethodRef 1.3.6()Z;		// javacard/framework/Applet.select()Z
		// 35
		staticMethodRef 1.7.1(S)V;		// javacard/framework/ISOException.throwIt(S)V
		// 36
		virtualMethodRef 1.7.1()S;		// javacard/framework/ISOException.getReason()S
		// 37
		staticMethodRef 1.10.6()B;		// javacard/framework/APDU.getCLAChannel()B
		// 38
		staticMethodRef 1.8.7()B;		// javacard/framework/JCSystem.getTransactionDepth()B
		// 39
		staticMethodRef 1.8.0()V;		// javacard/framework/JCSystem.abortTransaction()V
		// 40
		virtualMethodRef 1.3.4()V;		// javacard/framework/Applet.deselect()V
		// 41
		staticMethodRef 2.0.5(BB)V;		// watchdata/NativeMethods/WDAPI.clearTransientObjs(BB)V
		// 42
		staticMethodRef PrivAccess/findApplet(Ljavacard/framework/AID;)B;
			.descriptor	Ljavacard/framework/AID;	1.6;

		// 43
		staticMethodRef 2.0.33(BBS)V;		// watchdata/NativeMethods/WDAPI.writeAppTable(BBS)V
		// 44
		staticMethodRef 2.0.9()S;		// watchdata/NativeMethods/WDAPI.getCurrentContext()S
		// 45
		staticMethodRef 2.0.10()S;		// watchdata/NativeMethods/WDAPI.getPreviousContext()S
		// 46
		staticMethodRef PrivAccess/getPackedBoolean()Lwatchdata/impl/PackedBoolean;;
		// 47
		virtualMethodRef PackedBoolean/allocate()B;
		// 48
		virtualMethodRef PackedBoolean/get(B)Z;
		// 49
		staticMethodRef PrivAccess/getPreviousAppID()B;
		// 50
		staticMethodRef 2.0.36(BB)Ljava/lang/Object;;		// watchdata/NativeMethods/WDAPI.getAppletObj(BB)Ljava/lang/Object;
			.descriptor	Ljava/lang/Object;	0.0;

		// 51
		staticMethodRef 1.13.1(S)V;		// javacard/framework/SystemException.throwIt(S)V
		// 52
		staticMethodRef 2.0.37(BBLjava/lang/Object;)V;		// watchdata/NativeMethods/WDAPI.writeAppTableObj(BBLjava/lang/Object;)V
			.descriptor	Ljava/lang/Object;	0.0;

		// 53
		classRef 0.2;		// java/lang/Exception
		// 54
		virtualMethodRef PrivAccess/getAID(B)Ljavacard/framework/AID;;
			.descriptor	Ljavacard/framework/AID;	1.6;

		// 55
		classRef 1.3;		// javacard/framework/Applet
		// 56
		virtualMethodRef 1.3.5(Ljavacard/framework/AID;B)Ljavacard/framework/Shareable;;		// javacard/framework/Applet.getShareableInterfaceObject(Ljavacard/framework/AID;B)Ljavacard/framework/Shareable;
			.descriptor	Ljavacard/framework/AID;	1.6;
			.descriptor	Ljavacard/framework/Shareable;	1.2;

		// 57
		staticMethodRef PrivAccess/findApplet([BSB)B;
		// 58
		virtualMethodRef 1.6.2([BSB)Z;		// javacard/framework/AID.equals([BSB)Z
		// 59
		virtualMethodRef 1.6.0(Ljava/lang/Object;)Z;		// javacard/framework/AID.equals(Ljava/lang/Object;)Z
			.descriptor	Ljava/lang/Object;	0.0;

	}

	.class public CryptoInit 0 extends 0.0 {		// extends java/lang/Object

		.publicMethodTable 1 {
			equals(Ljava/lang/Object;)Z;
		}

		.packageMethodTable 0 {
		}

		.method public <init>()V 0 {
			.stack 1;
			.locals 0;

				L0:	aload_0;
					invokespecial 2;		// java/lang/Object.<init>()V
					return;
		}

		.method public static initCryptoStorage()V 1 {
			.stack 0;
			.locals 0;

				L0:	return;
		}

	}

	.class public PackedBoolean 1 extends 0.0 {		// extends java/lang/Object

		.fields {
			protected byte nextId 0;		// B
			protected byte[] container 1;		// [B
		}

		.publicMethodTable 1 {
			equals(Ljava/lang/Object;)Z;
			allocate()B;
			get(B)Z;
			access(BB)Z;
			set(B)V;
			reset(B)V;
		}

		.packageMethodTable 0 {
		}

		.method public <init>(B)V 0 {
			.stack 3;
			.locals 0;

				L0:	aload_0;
					invokespecial 2;		// java/lang/Object.<init>()V
					aload_0;
					sload_1;
					sconst_1;
					invokestatic 3;		// javacard/framework/JCSystem.makeTransientByteArray(SB)[B
					putfield_a 0;		// reference watchdata/impl/PackedBoolean.container
					aload_0;
					sconst_0;
					putfield_b 1;		// byte watchdata/impl/PackedBoolean.nextId
					return;
		}

		.method public allocate()B 1 {
			.stack 4;
			.locals 0;

				L0:	aload_0;
					dup;
					getfield_b 1;		// byte watchdata/impl/PackedBoolean.nextId
					dup_x 18;
					sconst_1;
					sadd;
					s2b;
					putfield_b 1;		// byte watchdata/impl/PackedBoolean.nextId
					sreturn;
		}

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

				L0:	aload_0;
					sload_1;
					sconst_0;
					invokevirtual 4;		// watchdata/impl/PackedBoolean.access(BB)Z
					sreturn;
		}

		.method public access(BB)Z 3 {
			.stack 5;
			.locals 3;

				L0:	sload_1;
					sconst_3;
					sshr;
					sstore_3;
					sload_1;
					bspush 7;
					sand;
					sstore 4;
					sspush 128;
					sload 4;
					sshr;
					s2b;
					sstore 5;
					sload_2;
					stableswitch L3 -1 1 L2 L3 L1;
				L1:	getfield_a_this 0;		// reference watchdata/impl/PackedBoolean.container
					sload_3;
					dup2;
					baload;
					sload 5;
					sor;
					bastore;
					goto L3;
				L2:	getfield_a_this 0;		// reference watchdata/impl/PackedBoolean.container
					sload_3;
					dup2;
					baload;
					sload 5;
					sconst_m1;
					sxor;
					sand;
					bastore;
				L3:	getfield_a_this 0;		// reference watchdata/impl/PackedBoolean.container
					sload_3;
					baload;
					sload 5;
					sand;
					ifeq L5;
				L4:	sconst_1;
					sreturn;
				L5:	sconst_0;
					sreturn;
		}

		.method public set(B)V 4 {
			.stack 3;
			.locals 0;

				L0:	aload_0;
					sload_1;
					sconst_1;
					invokevirtual 4;		// watchdata/impl/PackedBoolean.access(BB)Z
					pop;
					return;
		}

		.method public reset(B)V 5 {
			.stack 3;
			.locals 0;

				L0:	aload_0;
					sload_1;
					sconst_m1;
					invokevirtual 4;		// watchdata/impl/PackedBoolean.access(BB)Z
					pop;
					return;
		}

	}

	.class public PrivAccess 2 extends 0.0 {		// extends java/lang/Object

		.fields {
			public static final byte APP_FIRST = 0;		// B
			public static final byte APPS_MAX = 16;		// B
			public static final byte APP_NULL = -1;		// B
			public static final byte JCRE_CONTEXTID = 0;		// B
			public static final short NULL_CONTEXTID = -1;		// S
			public static final short APPID_BITMASK = 255;		// S
			public static final byte APP_STATE_NONE = 0;		// B
			public static final byte APP_STATE_REGISTERED = 1;		// B
			public static final byte APP_STATE_SELECTABLE = 2;		// B
			private static byte defaultAppID;		// B
			private static final byte BASIC_CHANNEL = 0;		// B
			static final byte APPLET_MULTISELECTED = 8;		// B
			static final byte APPLET_ACTIVE = 4;		// B
			static final byte PACKAGE_MULTISELECTED = 2;		// B
			static final byte PACKAGE_ACTIVE = 1;		// B
			private static PackedBoolean thePackedBoolean;		// Lwatchdata/impl/PackedBoolean;
			private static PrivAccess thePrivAccess;		// Lwatchdata/impl/PrivAccess;
			private static final byte NUMBER_SYSTEM_BOOLS = 10;		// B
			private static byte selectingAppletFlag;		// B
			private static byte processMethodFlag;		// B
		}

		.publicMethodTable 1 {
			equals(Ljava/lang/Object;)Z;
			register(Ljavacard/framework/Applet;)V;
			register(Ljavacard/framework/Applet;[BSB)V;
			selectingApplet()Z;
			inProcessMethod()Z;
			getSharedObject(Ljavacard/framework/AID;B)Ljavacard/framework/Shareable;;
			getAID([BSB)Ljavacard/framework/AID;;
			getAID(B)Ljavacard/framework/AID;;
		}

		.packageMethodTable 0 {
		}

		.method public final register(Ljavacard/framework/Applet;)V 1 {
			.stack 2;
			.locals 0;

			.descriptor	Ljavacard/framework/Applet;	1.3;

				L0:	aload_1;
					aconst_null;

⌨️ 快捷键说明

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