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

📄 toolkit.jca

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

.package sim/toolkit {
	.aid 0xA0:0x0:0x0:0x0:0x62:0x1;
	.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
	}

	.constantPool {
		// 0
		instanceFieldRef short ViewHandler/currentTLVOffset;
		// 1
		instanceFieldRef short ViewHandler/firstTLVOffset;
		// 2
		instanceFieldRef short EnvelopeResponseHandler/outDataSize;
		// 3
		instanceFieldRef boolean EnvelopeResponseHandler/handlerAvailable;
		// 4
		instanceFieldRef boolean EnvelopeResponseHandler/postCalled;
		// 5
		staticMethodRef 1.16.1([BS[BSS)S;		// javacard/framework/Util.arrayCopy([BS[BSS)S
		// 6
		virtualMethodRef ViewHandler/getTLVOffset([BBSS)S;
		// 7
		virtualMethodRef ViewHandler/getLastTLVOffset([BS)S;
		// 8
		staticMethodRef 1.16.0([BS[BSS)B;		// javacard/framework/Util.arrayCompare([BS[BSS)B
		// 9
		staticFieldRef AccessSAT ViewHandler/SATAccessor;
		// 10
		staticMethodRef ViewHandler/<init>()V;
		// 11
		staticMethodRef EditHandler/<init>()V;
		// 12
		classRef EnvelopeResponseHandler;
		// 13
		staticMethodRef EnvelopeResponseHandler/<init>()V;
		// 14
		classRef AccessSAT;
		// 15
		staticMethodRef 0.0.0()V;		// java/lang/Object.<init>()V
		// 16
		staticMethodRef ToolkitException/throwIt(S)V;
		// 17
		staticFieldRef byte EnvelopeResponseHandler/status;
		// 18
		staticMethodRef 1.5.0(S)V;		// javacard/framework/CardRuntimeException.<init>(S)V
		// 19
		staticFieldRef ToolkitException ToolkitException/systemInstance;
		// 20
		virtualMethodRef 1.5.2(S)V;		// javacard/framework/CardRuntimeException.setReason(S)V
		// 21
		classRef EnvelopeHandler;
		// 22
		staticMethodRef EnvelopeHandler/<init>()V;
		// 23
		classRef ToolkitRegistry;
		// 24
		staticMethodRef ToolkitRegistry/<init>()V;
		// 25
		staticMethodRef 1.8.3()Ljavacard/framework/AID;;		// javacard/framework/JCSystem.getAID()Ljavacard/framework/AID;
			.descriptor	Ljavacard/framework/AID;	1.6;

	}

	.interface public abstract AccessSAT 0 {

		.shareable;

		.superInterfaces {
			1.2;		// javacard/framework/Shareable
		}

		.method public abstract getAPDUBuffer()[B 0 {
		}

		.method public abstract setOutBufferData(S)V 1 {
		}

		.method public abstract getOutDataLength()S 2 {
		}

		.method public abstract setEventListener(Ljavacard/framework/AID;)V 3 {
			.descriptor	Ljavacard/framework/AID;	1.6;

		}

		.method public abstract clearEventListener(Ljavacard/framework/AID;)V 4 {
			.descriptor	Ljavacard/framework/AID;	1.6;

		}

		.method public abstract isEventListenerSet(Ljavacard/framework/AID;)Z 5 {
			.descriptor	Ljavacard/framework/AID;	1.6;

		}

	}

	.interface public abstract ToolkitConstants 1 {

		.fields {
			public static final byte EVENT_PROFILE_DOWNLOAD = 1;		// B
			public static final byte EVENT_FORMATTED_SMS_PP_ENV = 2;		// B
			public static final byte EVENT_FORMATTED_SMS_PP_UPD = 3;		// B
			public static final byte EVENT_UNFORMATTED_SMS_PP_ENV = 4;		// B
			public static final byte EVENT_UNFORMATTED_SMS_PP_UPD = 5;		// B
			public static final byte EVENT_UNFORMATTED_SMS_CB = 6;		// B
			public static final byte EVENT_MENU_SELECTION = 7;		// B
			public static final byte EVENT_MENU_SELECTION_HELP_REQUEST = 8;		// B
			public static final byte EVENT_CALL_CONTROL_BY_SIM = 9;		// B
			public static final byte EVENT_MO_SHORT_MESSAGE_CONTROL_BY_SIM = 10;		// B
			public static final byte EVENT_TIMER_EXPIRATION = 11;		// B
			public static final byte EVENT_EVENT_DOWNLOAD_MT_CALL = 12;		// B
			public static final byte EVENT_EVENT_DOWNLOAD_CALL_CONNECTED = 13;		// B
			public static final byte EVENT_EVENT_DOWNLOAD_CALL_DISCONNECTED = 14;		// B
			public static final byte EVENT_EVENT_DOWNLOAD_LOCATION_STATUS = 15;		// B
			public static final byte EVENT_EVENT_DOWNLOAD_USER_ACTIVITY = 16;		// B
			public static final byte EVENT_EVENT_DOWNLOAD_IDLE_SCREEN_AVAILABLE = 17;		// B
			public static final byte EVENT_EVENT_DOWNLOAD_CARD_READER_STATUS = 18;		// B
			public static final byte EVENT_STATUS_COMMAND = 19;		// B
			public static final byte EVENT_EVENT_DOWNLOAD_LANGUAGE_SELECTION = 20;		// B
			public static final byte EVENT_EVENT_DOWNLOAD_BROWSER_TERMINATION = 21;		// B
			public static final byte EVENT_FORMATTED_SMS_CB = 24;		// B
			public static final byte EVENT_UNRECOGNIZED_ENVELOPE = -1;		// B
			public static final byte BTAG_PROACTIVE_SIM_COMMAND = -48;		// B
			public static final byte BTAG_SMS_PP_DOWNWLOAD = -47;		// B
			public static final byte BTAG_SMS_PP_DOWNLOAD = -47;		// B
			public static final byte BTAG_CELL_BROADCAST_DOWNLOAD = -46;		// B
			public static final byte BTAG_MENU_SELECTION = -45;		// B
			public static final byte BTAG_CALL_CONTROL = -44;		// B
			public static final byte BTAG_MO_SHORT_MESSAGE_CONTROL = -43;		// B
			public static final byte BTAG_EVENT_DOWNLOAD = -42;		// B
			public static final byte BTAG_TIMER_EXPIRATION = -41;		// B
			public static final byte TAG_COMMAND_DETAILS = 1;		// B
			public static final byte TAG_DEVICE_IDENTITIES = 2;		// B
			public static final byte TAG_RESULT = 3;		// B
			public static final byte TAG_DURATION = 4;		// B
			public static final byte TAG_ALPHA_IDENTIFIER = 5;		// B
			public static final byte TAG_ADDRESS = 6;		// B
			public static final byte TAG_CAPABILITY_CONFIGURATION_PARAMETERS = 7;		// B
			public static final byte TAG_CALLED_PARTY_SUBADDRESS = 8;		// B
			public static final byte TAG_SS_STRING = 9;		// B
			public static final byte TAG_USSD_STRING = 10;		// B
			public static final byte TAG_SMS_TPDU = 11;		// B
			public static final byte TAG_CELL_BROADCAST_PAGE = 12;		// B
			public static final byte TAG_TEXT_STRING = 13;		// B
			public static final byte TAG_TONE = 14;		// B
			public static final byte TAG_ITEM = 15;		// B
			public static final byte TAG_ITEM_IDENTIFIER = 16;		// B
			public static final byte TAG_RESPONSE_LENGTH = 17;		// B
			public static final byte TAG_FILE_LIST = 18;		// B
			public static final byte TAG_LOCATION_INFORMATION = 19;		// B
			public static final byte TAG_IMEI = 20;		// B
			public static final byte TAG_HELP_REQUEST = 21;		// B
			public static final byte TAG_NETWORK_MEASUREMENT_RESULTS = 22;		// B
			public static final byte TAG_DEFAULT_TEXT = 23;		// B
			public static final byte TAG_ITEMS_NEXT_ACTION_INDICATOR = 24;		// B
			public static final byte TAG_EVENT_LIST = 25;		// B
			public static final byte TAG_CAUSE = 26;		// B
			public static final byte TAG_LOCATION_STATUS = 27;		// B
			public static final byte TAG_TRANSACTION_IDENTIFIER = 28;		// B
			public static final byte TAG_BCCH_CHANNEL_LIST = 29;		// B
			public static final byte TAG_ICON_IDENTIFIER = 30;		// B
			public static final byte TAG_ITEM_ICON_IDENTIFIER_LIST = 31;		// B
			public static final byte TAG_CARD_READER_STATUS = 32;		// B
			public static final byte TAG_CARD_ATR = 33;		// B
			public static final byte TAG_C_APDU = 34;		// B
			public static final byte TAG_R_APDU = 35;		// B
			public static final byte TAG_TIMER_IDENTIFIER = 36;		// B
			public static final byte TAG_TIMER_VALUE = 37;		// B
			public static final byte TAG_DATE_TIME_AND_TIME_ZONE = 38;		// B
			public static final byte TAG_CALL_CONTROL_REQUESTED_ACTION = 39;		// B
			public static final byte TAG_AT_COMMAND = 40;		// B
			public static final byte TAG_AT_RESPONSE = 41;		// B
			public static final byte TAG_BC_REPEAT_INDICATOR = 42;		// B
			public static final byte TAG_IMMEDIATE_RESPONSE = 43;		// B
			public static final byte TAG_DTMF_STRING = 44;		// B
			public static final byte TAG_LANGUAGE = 45;		// B
			public static final byte TAG_TIMING_ADVANCE = 46;		// B
			public static final byte TAG_BROWSER_IDENTITY = 48;		// B
			public static final byte TAG_URL = 49;		// B
			public static final byte TAG_BEARER = 50;		// B
			public static final byte TAG_PROVISIONING_REFERENCE_FILE = 51;		// B
			public static final byte TAG_BROWSER_TERMINATION_CAUSE = 52;		// B
			public static final byte TAG_CARD_READER_IDENTIFIER = 58;		// B
			public static final byte TAG_SET_CR = -128;		// B
			public static final byte TAG_SET_NO_CR = 127;		// B
			public static final byte TLV_LENGTH_CODED_2BYTES = -127;		// B
			public static final byte TLV_NOT_FOUND = 0;		// B
			public static final byte TLV_FOUND_CR_SET = 1;		// B
			public static final byte TLV_FOUND_CR_NOT_SET = 2;		// B
			public static final byte PRO_CMD_REFRESH = 1;		// B
			public static final byte PRO_CMD_MORE_TIME = 2;		// B
			public static final byte PRO_CMD_SET_UP_CALL = 16;		// B
			public static final byte PRO_CMD_SEND_SS = 17;		// B
			public static final byte PRO_CMD_SEND_USSD = 18;		// B
			public static final byte PRO_CMD_SEND_SHORT_MESSAGE = 19;		// B
			public static final byte PRO_CMD_SEND_DTMF = 20;		// B
			public static final byte PRO_CMD_LAUNCH_BROWSER = 21;		// B
			public static final byte PRO_CMD_PLAY_TONE = 32;		// B
			public static final byte PRO_CMD_DISPLAY_TEXT = 33;		// B
			public static final byte PRO_CMD_GET_INKEY = 34;		// B
			public static final byte PRO_CMD_GET_INPUT = 35;		// B
			public static final byte PRO_CMD_SELECT_ITEM = 36;		// B
			public static final byte PRO_CMD_PROVIDE_LOCAL_INFORMATION = 38;		// B
			public static final byte PRO_CMD_TIMER_MANAGEMENT = 39;		// B
			public static final byte PRO_CMD_SET_UP_IDLE_MODE_TEXT = 40;		// B
			public static final byte PRO_CMD_PERFORM_CARD_APDU = 48;		// B
			public static final byte PRO_CMD_POWER_ON_CARD = 49;		// B
			public static final byte PRO_CMD_POWER_OFF_CARD = 50;		// B
			public static final byte PRO_CMD_GET_READER_STATUS = 51;		// B
			public static final byte PRO_CMD_RUN_AT_COMMAND = 52;		// B
			public static final byte PRO_CMD_LANGUAGE_NOTIFICATION = 53;		// B
			public static final byte DEV_ID_KEYPAD = 1;		// B
			public static final byte DEV_ID_DISPLAY = 2;		// B
			public static final byte DEV_ID_EARPIECE = 3;		// B
			public static final byte DEV_ID_ADDITIONAL_CARD_READER_0 = 16;		// B
			public static final byte DEV_ID_ADDITIONAL_CARD_READER_1 = 17;		// B
			public static final byte DEV_ID_ADDITIONAL_CARD_READER_2 = 18;		// B
			public static final byte DEV_ID_ADDITIONAL_CARD_READER_3 = 19;		// B
			public static final byte DEV_ID_ADDITIONAL_CARD_READER_4 = 20;		// B
			public static final byte DEV_ID_ADDITIONAL_CARD_READER_5 = 21;		// B
			public static final byte DEV_ID_ADDITIONAL_CARD_READER_6 = 22;		// B
			public static final byte DEV_ID_ADDITIONAL_CARD_READER_7 = 23;		// B
			public static final byte DEV_ID_SIM = -127;		// B
			public static final byte DEV_ID_ME = -126;		// B
			public static final byte DEV_ID_NETWORK = -125;		// B
			public static final byte DCS_DEFAULT_ALPHABET = 0;		// B
			public static final byte DCS_8_BIT_DATA = 4;		// B
			public static final byte DCS_UCS2 = 8;		// B
			public static final byte SW1_RP_ERROR = -98;		// B
			public static final byte SW1_RP_ACK = -97;		// B
			public static final byte POLL_NO_DURATION = 0;		// B
			public static final byte POLL_SYSTEM_DURATION = -1;		// B
			public static final byte RES_CMD_PERF = 0;		// B
			public static final byte RES_CMD_PERF_PARTIAL_COMPR = 1;		// B
			public static final byte RES_CMD_PERF_MISSING_INFO = 2;		// B
			public static final byte RES_CMD_PERF_REFRESH_ADD_EF_READ = 3;		// B
			public static final byte RES_CMD_PERF_REQ_ICON_NOT_DISP = 4;		// B
			public static final byte RES_CMD_PERF_MODIF_CC_SIM = 5;		// B
			public static final byte RES_CMD_PERF_LIMITED_SERVICE = 6;		// B
			public static final byte RES_CMD_PERF_WITH_MODIFICATION = 7;		// B
			public static final byte RES_CMD_PERF_SESSION_TERM_USER = 16;		// B
			public static final byte RES_CMD_PERF_BACKWARD_MOVE_REQ = 17;		// B
			public static final byte RES_CMD_PERF_NO_RESP_FROM_USER = 18;		// B
			public static final byte RES_CMD_PERF_HELP_INFO_REQ = 19;		// B
			public static final byte RES_CMD_PERF_USSD_TRANSAC_TERM = 20;		// B
			public static final byte RES_TEMP_PB_ME_UNABLE_PROC = 32;		// B
			public static final byte RES_TEMP_PB_SESSION_TERM_USER = 33;		// B
			public static final byte RES_TEMP_PB_USER_REJECT_CALL_REQ = 34;		// B
			public static final byte RES_TEMP_PB_USER_CLEAR_CALL = 35;		// B
			public static final byte RES_TEMP_PB_IN_CONTR_TIMER_STATE = 36;		// B
			public static final byte RES_TEMP_PB_INTERACT_CC_BY_SIM = 37;		// B
			public static final byte RES_TEMP_PB_LAUNCH_BROWSER = 38;		// B
			public static final byte RES_ERROR_CMD_BEYOND_ME_CAPAB = 48;		// B
			public static final byte RES_ERROR_CMD_TYP_NOT_UNDERSTOOD = 49;		// B
			public static final byte RES_ERROR_CMD_DATA_NOT_UNDERSTOOD = 50;		// B
			public static final byte RES_ERROR_CMD_NUMBER_NOT_KNOWN = 51;		// B
			public static final byte RES_ERROR_SS_RETURN_ERROR = 52;		// B
			public static final byte RES_ERROR_SMS_RP_ERROR = 53;		// B
			public static final byte RES_ERROR_REQ_VALUES_MISS = 54;		// B
			public static final byte RES_ERROR_USSD_RETURN_ERROR = 55;		// B
			public static final byte RES_ERROR_MULTIPLE_CARD_ERROR = 56;		// B
			public static final byte RES_ERROR_INTERACT_CC_SMSMO_BY_SIM = 57;		// B
		}

	}

	.interface public abstract ToolkitInterface 2 {

		.shareable;

		.superInterfaces {
			1.2;		// javacard/framework/Shareable
		}

		.method public abstract processToolkit(B)V 0 {
		}

	}

	.class public abstract ViewHandler 3 extends 0.0 {		// extends java/lang/Object

		.fields {
			 short currentTLVOffset 0;		// S
			 short firstTLVOffset 1;		// S
			protected static final byte BER_TLV_TAG_OFFSET = 5;		// B
			protected static final byte OFFSET_LC = 4;		// B
			protected static final byte TPUD_OFFSET = 12;		// B
			public static AccessSAT SATAccessor 0;		// Lsim/toolkit/AccessSAT;
			private static final byte DEVICE_ID_TAG = -126;		// B
			private static final byte DEVICE_ID_LENGTH = 2;		// B
			private static final byte ADDRESS_TAG = 6;		// B
			private static final byte SMS_TPDU_TAG = -117;		// B
		}

		.publicMethodTable 1 {
			equals(Ljava/lang/Object;)Z;
			getLength()S;
			copy([BSS)S;
			findTLV(BB)B;
			getValueLength()S;
			getValueByte(S)B;
			copyValue(S[BSS)S;
			compareValue(S[BSS)B;
			findAndCopyValue(B[BS)S;
			findAndCopyValue(BBS[BSS)S;
			findAndCompareValue(B[BS)B;
			findAndCompareValue(BBS[BSS)B;
			getTLVOffset([BBSS)S;
			getLastTLVOffset([BS)S;
		}

		.packageMethodTable 0 {
		}

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

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

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

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

		.method public getLength()S 1 {
			.stack 3;
			.locals 2;

				L0:	getstatic_a 9;		// reference sim/toolkit/ViewHandler.SATAccessor
					invokeinterface 1 14 0;		// sim/toolkit/AccessSAT
					astore_1;
					aload_1;
					getfield_s_this 0;		// short sim/toolkit/ViewHandler.currentTLVOffset
					sconst_1;
					sadd;
					baload;
					sspush 255;
					sand;
					sstore_2;
					sload_2;
					sreturn;
		}

		.method public copy([BSS)S 2 {
			.stack 5;
			.locals 2;

				L0:	getstatic_a 9;		// reference sim/toolkit/ViewHandler.SATAccessor
					invokeinterface 1 14 0;		// sim/toolkit/AccessSAT
					astore 4;
					aload 4;
					getfield_s_this 0;		// short sim/toolkit/ViewHandler.currentTLVOffset
					sconst_1;
					sadd;
					baload;
					sspush 255;
					sand;
					sstore 5;
					sload 5;
					sload_3;
					if_scmpge L2;
				L1:	bspush 8;
					invokestatic 16;		// sim/toolkit/ToolkitException.throwIt(S)V
				L2:	aload 4;
					getfield_s_this 0;		// short sim/toolkit/ViewHandler.currentTLVOffset
					sconst_2;
					sadd;
					aload_1;
					sload_2;
					sload_3;
					invokestatic 5;		// javacard/framework/Util.arrayCopy([BS[BSS)S
					pop;
					sload_2;
					sload_3;
					sadd;
					sreturn;
		}

		.method public findTLV(BB)B 3 {
			.stack 5;
			.locals 4;

				L0:	sconst_0;
					sstore_3;
					getstatic_a 9;		// reference sim/toolkit/ViewHandler.SATAccessor
					invokeinterface 1 14 0;		// sim/toolkit/AccessSAT
					astore 4;
					aload 4;
					sconst_4;
					baload;
					sspush 255;
					sand;
					sstore 5;
					aload_0;
					aload 4;
					sload_1;
					sload 5;
					sload_2;
					invokevirtual 6;		// sim/toolkit/ViewHandler.getTLVOffset([BBSS)S
					sstore 6;
					sload 6;
					sload 5;
					if_scmplt L2;
				L1:	sconst_0;
					sreturn;
				L2:	aload_0;
					sload 6;
					putfield_s 0;		// short sim/toolkit/ViewHandler.currentTLVOffset
					aload 4;
					sload 6;
					baload;
					bspush -128;
					sand;
					bspush -128;
					if_scmpne L4;
				L3:	sconst_1;
					sreturn;
				L4:	sconst_2;
					sreturn;
		}

		.method public getValueLength()S 4 {
			.stack 3;
			.locals 3;

				L0:	getstatic_a 9;		// reference sim/toolkit/ViewHandler.SATAccessor
					invokeinterface 1 14 0;		// sim/toolkit/AccessSAT
					astore_1;
					aload_1;
					sconst_4;
					baload;
					sspush 255;
					sand;
					sstore_2;
					aload_0;
					aload_1;
					sload_2;
					invokevirtual 7;		// sim/toolkit/ViewHandler.getLastTLVOffset([BS)S
					sstore_3;
					sload_3;
					sload_2;
					if_scmplt L2;
				L1:	sconst_3;
					invokestatic 16;		// sim/toolkit/ToolkitException.throwIt(S)V
				L2:	aload_1;
					sload_3;
					sconst_1;
					sadd;
					baload;
					sspush 255;

⌨️ 快捷键说明

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