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

📄 gsmapplet.jca

📁 基于Java开发的SATSA源代码
💻 JCA
📖 第 1 页 / 共 2 页
字号:
// converted by version 1.3
// on Fri Jun 11 09:23:43 PDT 2004

.package com/sun/satsa/gsmapplet {
	.aid 0xA0:0x0:0x0:0x0:0x62:0x3;
	.version 0.0;

	.imports {
		0xA0:0x0:0x0:0x0:0x62:0x0:0x1 1.0;		//java/lang
		0xA0:0x0:0x0:0x0:0x62:0x1:0x1 1.2;		//javacard/framework
		0xA0:0x0:0x0:0x0:0x62:0x1 0.0;		//sim/toolkit
	}

	.applet {
		0xA0:0x0:0x0:0x0:0x62:0x3:0x1 GSMApplet;
	}

	.constantPool {
		// 0
		instanceFieldRef byte[] AccessSATImpl/inBuffer;
		// 1
		instanceFieldRef byte[] AccessSATImpl/outBuffer;
		// 2
		instanceFieldRef 2.2[] AccessSATImpl/tiList;
		// 3
		instanceFieldRef short AccessSATImpl/outDataSize;
		// 4
		instanceFieldRef AccessSATImpl GSMApplet/SATAccessor;
		// 5
		staticMethodRef 0.0.0()V;		// java/lang/Object.<init>()V
		// 6
		staticMethodRef 1.16.3([BSSB)S;		// javacard/framework/Util.arrayFillNonAtomic([BSSB)S
		// 7
		staticMethodRef 1.8.13(SB)[B;		// javacard/framework/JCSystem.makeTransientByteArray(SB)[B
		// 8
		staticMethodRef 1.10.4()Ljavacard/framework/APDU;;		// javacard/framework/APDU.getCurrentAPDU()Ljavacard/framework/APDU;
			.descriptor	Ljavacard/framework/APDU;	1.10;

		// 9
		virtualMethodRef 1.10.1()[B;		// javacard/framework/APDU.getBuffer()[B
		// 10
		staticMethodRef 1.16.1([BS[BSS)S;		// javacard/framework/Util.arrayCopy([BS[BSS)S
		// 11
		staticMethodRef 1.8.4(Ljavacard/framework/AID;B)Ljavacard/framework/Shareable;;		// javacard/framework/JCSystem.getAppletShareableInterfaceObject(Ljavacard/framework/AID;B)Ljavacard/framework/Shareable;
			.descriptor	Ljavacard/framework/AID;	1.6;
			.descriptor	Ljavacard/framework/Shareable;	1.2;

		// 12
		staticMethodRef 2.8.1(S)V;		// sim/toolkit/ToolkitException.throwIt(S)V
		// 13
		staticMethodRef AccessSATImpl/findListener(Lsim/toolkit/ToolkitInterface;)B;
			.descriptor	Lsim/toolkit/ToolkitInterface;	2.2;

		// 14
		virtualMethodRef 0.0.0(Ljava/lang/Object;)Z;		// java/lang/Object.equals(Ljava/lang/Object;)Z
			.descriptor	Ljava/lang/Object;	0.0;

		// 15
		staticMethodRef 1.3.0()V;		// javacard/framework/Applet.<init>()V
		// 16
		virtualMethodRef 1.3.1()V;		// javacard/framework/Applet.register()V
		// 17
		classRef AccessSATImpl;
		// 18
		staticMethodRef AccessSATImpl/<init>()V;
		// 19
		classRef 2.2;		// sim/toolkit/ToolkitInterface
		// 20
		staticFieldRef 2.0 2.3.0;		// reference sim/toolkit/ViewHandler.SATAccessor
		// 21
		classRef GSMApplet;
		// 22
		staticMethodRef GSMApplet/<init>()V;
		// 23
		virtualMethodRef 1.10.6()S;		// javacard/framework/APDU.setIncomingAndReceive()S
		// 24
		virtualMethodRef AccessSATImpl/resetBuffers()V;
		// 25
		virtualMethodRef AccessSATImpl/getOutDataLength()S;
		// 26
		virtualMethodRef 1.10.7()S;		// javacard/framework/APDU.setOutgoing()S
		// 27
		virtualMethodRef 1.10.9(S)V;		// javacard/framework/APDU.setOutgoingLength(S)V
		// 28
		virtualMethodRef AccessSATImpl/setOutgoingAPDU()V;
		// 29
		virtualMethodRef 1.10.4(SS)V;		// javacard/framework/APDU.sendBytes(SS)V
		// 30
		staticMethodRef 1.7.1(S)V;		// javacard/framework/ISOException.throwIt(S)V
		// 31
		staticMethodRef 1.8.18()V;		// javacard/framework/JCSystem.requestObjectDeletion()V
		// 32
		staticFieldRef byte 2.7.0;		// byte sim/toolkit/EnvelopeResponseHandler.status
	}

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

		.shareable;

		.fields {
			public byte[] inBuffer 0;		// [B
			public byte[] outBuffer 1;		// [B
			public 2.2[] tiList 2;		// [Lsim/toolkit/ToolkitInterface;
			 short outDataSize 3;		// S
			protected static final short MAX_BUFFER_LENGTH = 64;		// S
			static final byte MAX_LISTENERS = 16;		// B
		}

		.publicMethodTable 1 {
			equals(Ljava/lang/Object;)Z;
			getAPDUBuffer()[B;
			setOutBufferData(S)V;
			getOutDataLength()S;
			setOutgoingAPDU()V;
			setEventListener(Ljavacard/framework/AID;)V;
			clearEventListener(Ljavacard/framework/AID;)V;
			isEventListenerSet(Ljavacard/framework/AID;)Z;
		}

		.packageMethodTable 0 {
			resetBuffers()V;
		}

		.implementedInterfaceInfoTable { 
			.interface 1.2 { 		// javacard/framework/Shareable
			}

			.interface 2.0 { 		// sim/toolkit/AccessSAT
				1;		// getAPDUBuffer()[B
				2;		// setOutBufferData(S)V
				3;		// getOutDataLength()S
				5;		// setEventListener(Ljavacard/framework/AID;)V
				6;		// clearEventListener(Ljavacard/framework/AID;)V
				7;		// isEventListenerSet(Ljavacard/framework/AID;)Z
			}

		}

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

				L0:	aload_0;
					invokespecial 5;		// java/lang/Object.<init>()V
					aload_0;
					bspush 64;
					sconst_2;
					invokestatic 7;		// javacard/framework/JCSystem.makeTransientByteArray(SB)[B
					putfield_a 0;		// reference com/sun/satsa/gsmapplet/AccessSATImpl.inBuffer
					aload_0;
					bspush 64;
					sconst_2;
					invokestatic 7;		// javacard/framework/JCSystem.makeTransientByteArray(SB)[B
					putfield_a 1;		// reference com/sun/satsa/gsmapplet/AccessSATImpl.outBuffer
					aload_0;
					bspush 16;
					anewarray 19;		// sim/toolkit/ToolkitInterface
					putfield_a 2;		// reference com/sun/satsa/gsmapplet/AccessSATImpl.tiList
					return;
		}

		.method  resetBuffers()V 128 {
			.stack 4;
			.locals 0;

				L0:	getfield_a_this 0;		// reference com/sun/satsa/gsmapplet/AccessSATImpl.inBuffer
					sconst_0;
					bspush 64;
					sconst_0;
					invokestatic 6;		// javacard/framework/Util.arrayFillNonAtomic([BSSB)S
					pop;
					getfield_a_this 1;		// reference com/sun/satsa/gsmapplet/AccessSATImpl.outBuffer
					sconst_0;
					bspush 64;
					sconst_0;
					invokestatic 6;		// javacard/framework/Util.arrayFillNonAtomic([BSSB)S
					pop;
					aload_0;
					sconst_0;
					putfield_s 3;		// short com/sun/satsa/gsmapplet/AccessSATImpl.outDataSize
					return;
		}

		.method public getAPDUBuffer()[B 1 {
			.stack 1;
			.locals 0;

				L0:	invokestatic 8;		// javacard/framework/APDU.getCurrentAPDU()Ljavacard/framework/APDU;
					invokevirtual 9;		// javacard/framework/APDU.getBuffer()[B
					areturn;
		}

		.method public setOutBufferData(S)V 2 {
			.stack 6;
			.locals 1;

				L0:	invokestatic 8;		// javacard/framework/APDU.getCurrentAPDU()Ljavacard/framework/APDU;
					invokevirtual 9;		// javacard/framework/APDU.getBuffer()[B
					astore_2;
					aload_0;
					aload_2;
					sconst_0;
					getfield_a_this 1;		// reference com/sun/satsa/gsmapplet/AccessSATImpl.outBuffer
					getfield_s_this 3;		// short com/sun/satsa/gsmapplet/AccessSATImpl.outDataSize
					sload_1;
					invokestatic 10;		// javacard/framework/Util.arrayCopy([BS[BSS)S
					putfield_s 3;		// short com/sun/satsa/gsmapplet/AccessSATImpl.outDataSize
					getfield_a_this 0;		// reference com/sun/satsa/gsmapplet/AccessSATImpl.inBuffer
					sconst_0;
					aload_2;
					sconst_0;
					sload_1;
					invokestatic 10;		// javacard/framework/Util.arrayCopy([BS[BSS)S
					pop;
					return;
		}

		.method public getOutDataLength()S 3 {
			.stack 1;
			.locals 0;

				L0:	getfield_s_this 3;		// short com/sun/satsa/gsmapplet/AccessSATImpl.outDataSize
					sreturn;
		}

		.method public setOutgoingAPDU()V 4 {
			.stack 5;
			.locals 1;

				L0:	invokestatic 8;		// javacard/framework/APDU.getCurrentAPDU()Ljavacard/framework/APDU;
					invokevirtual 9;		// javacard/framework/APDU.getBuffer()[B
					astore_1;
					getfield_a_this 1;		// reference com/sun/satsa/gsmapplet/AccessSATImpl.outBuffer
					sconst_0;
					aload_1;
					sconst_0;
					getfield_s_this 3;		// short com/sun/satsa/gsmapplet/AccessSATImpl.outDataSize
					invokestatic 10;		// javacard/framework/Util.arrayCopy([BS[BSS)S
					pop;
					return;
		}

		.method public setEventListener(Ljavacard/framework/AID;)V 5 {
			.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:	bspush 14;
					invokestatic 12;		// sim/toolkit/ToolkitException.throwIt(S)V
				L2:	aload_0;
					aload_2;
					invokespecial 13;		// com/sun/satsa/gsmapplet/AccessSATImpl.findListener(Lsim/toolkit/ToolkitInterface;)B
					sconst_m1;
					if_scmpne L8;
				L3:	sconst_0;
					sstore_3;
					goto L7;
				L4:	getfield_a_this 2;		// reference com/sun/satsa/gsmapplet/AccessSATImpl.tiList
					sload_3;
					aaload;
					ifnonnull L6;
				L5:	getfield_a_this 2;		// reference com/sun/satsa/gsmapplet/AccessSATImpl.tiList
					sload_3;

⌨️ 快捷键说明

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