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

📄 pkiapplet.jca

📁 Java card pki applet for J2ME JSR177 source code
💻 JCA
📖 第 1 页 / 共 5 页
字号:
					invokestatic 50;		// javacard/framework/ISOException.throwIt(S)V
				L4:	aload_0;
					aload_3;
					putfield_a 16;		// reference com/sun/satsa/pkiapplet/PKIApplet.current
					getfield_a_this 16;		// reference com/sun/satsa/pkiapplet/PKIApplet.current
					invokevirtual 71;		// com/sun/satsa/pkiapplet/File.isDF()Z
					ifeq L6;
				L5:	aload_2;
					sconst_0;
					sspush 28416;
					invokestatic 72;		// javacard/framework/Util.setShort([BSS)S
					pop;
					aload_1;
					sconst_0;
					sconst_2;
					invokevirtual 73;		// javacard/framework/APDU.setOutgoingAndSend(SS)V
					goto L7;
				L6:	aload_2;
					sconst_0;
					sspush 28420;
					invokestatic 72;		// javacard/framework/Util.setShort([BSS)S
					pop;
					aload_2;
					sconst_2;
					sspush -32766;
					invokestatic 72;		// javacard/framework/Util.setShort([BSS)S
					pop;
					aload_2;
					sconst_4;
					getfield_a_this 16;		// reference com/sun/satsa/pkiapplet/PKIApplet.current
					checkcast 0 55;		// T_CLASSORINTERFACE com/sun/satsa/pkiapplet/EFile
					getfield_s 4;		// short com/sun/satsa/pkiapplet/EFile.length
					invokestatic 72;		// javacard/framework/Util.setShort([BSS)S
					pop;
					aload_1;
					sconst_0;
					bspush 6;
					invokevirtual 73;		// javacard/framework/APDU.setOutgoingAndSend(SS)V
				L7:	return;
		}

		.method  select(S)Lcom/sun/satsa/pkiapplet/File; 131 {
			.stack 2;
			.locals 2;

				L0:	getfield_a_this 16;		// reference com/sun/satsa/pkiapplet/PKIApplet.current
					invokevirtual 71;		// com/sun/satsa/pkiapplet/File.isDF()Z
					ifeq L2;
				L1:	getfield_a_this 16;		// reference com/sun/satsa/pkiapplet/PKIApplet.current
					checkcast 0 48;		// T_CLASSORINTERFACE com/sun/satsa/pkiapplet/DFile
					astore_2;
					goto L3;
				L2:	getfield_a_this 16;		// reference com/sun/satsa/pkiapplet/PKIApplet.current
					getfield_a 0;		// reference com/sun/satsa/pkiapplet/File.parent
					astore_2;
				L3:	aload_2;
					sload_1;
					invokevirtual 74;		// com/sun/satsa/pkiapplet/DFile.getFile(S)Lcom/sun/satsa/pkiapplet/File;
					astore_3;
					aload_3;
					ifnull L5;
				L4:	aload_3;
					areturn;
				L5:	aload_2;
					getfield_a 0;		// reference com/sun/satsa/pkiapplet/File.parent
					astore_2;
					aload_2;
					ifnonnull L7;
				L6:	aconst_null;
					areturn;
				L7:	aload_2;
					sload_1;
					invokevirtual 74;		// com/sun/satsa/pkiapplet/DFile.getFile(S)Lcom/sun/satsa/pkiapplet/File;
					areturn;
		}

		.method  read(Ljavacard/framework/APDU;)V 132 {
			.stack 4;
			.locals 4;

			.descriptor	Ljavacard/framework/APDU;	1.10;

				L0:	getfield_a_this 16;		// reference com/sun/satsa/pkiapplet/PKIApplet.current
					invokevirtual 71;		// com/sun/satsa/pkiapplet/File.isDF()Z
					ifeq L2;
				L1:	sspush 27014;
					invokestatic 50;		// javacard/framework/ISOException.throwIt(S)V
				L2:	getfield_a_this 16;		// reference com/sun/satsa/pkiapplet/PKIApplet.current
					checkcast 0 55;		// T_CLASSORINTERFACE com/sun/satsa/pkiapplet/EFile
					astore_2;
					aload_1;
					invokevirtual 60;		// javacard/framework/APDU.getBuffer()[B
					astore_3;
					aload_3;
					sconst_2;
					invokestatic 68;		// javacard/framework/Util.getShort([BS)S
					sstore 4;
					sload 4;
					iflt L4;
				L3:	sload 4;
					aload_2;
					getfield_s 4;		// short com/sun/satsa/pkiapplet/EFile.length
					if_scmple L5;
				L4:	sspush 27270;
					invokestatic 50;		// javacard/framework/ISOException.throwIt(S)V
				L5:	aload_3;
					sconst_4;
					baload;
					sspush 255;
					sand;
					sstore 5;
					sload 4;
					s2i;
					sload 5;
					s2i;
					iadd;
					aload_2;
					getfield_s 4;		// short com/sun/satsa/pkiapplet/EFile.length
					s2i;
					icmp;
					ifle L7;
				L6:	sspush 26368;
					invokestatic 50;		// javacard/framework/ISOException.throwIt(S)V
				L7:	aload_1;
					invokevirtual 75;		// javacard/framework/APDU.setOutgoing()S
					pop;
					aload_1;
					sload 5;
					invokevirtual 76;		// javacard/framework/APDU.setOutgoingLength(S)V
					aload_1;
					aload_2;
					getfield_a 5;		// reference com/sun/satsa/pkiapplet/EFile.data
					aload_2;
					getfield_s 3;		// short com/sun/satsa/pkiapplet/EFile.offset
					sload 4;
					sadd;
					sload 5;
					invokevirtual 77;		// javacard/framework/APDU.sendBytesLong([BSS)V
					return;
		}

		.method  update(Ljavacard/framework/APDU;)V 133 {
			.stack 5;
			.locals 6;

			.descriptor	Ljavacard/framework/APDU;	1.10;

				L0:	getfield_a_this 16;		// reference com/sun/satsa/pkiapplet/PKIApplet.current
					invokevirtual 71;		// com/sun/satsa/pkiapplet/File.isDF()Z
					ifeq L2;
				L1:	sspush 27014;
					invokestatic 50;		// javacard/framework/ISOException.throwIt(S)V
				L2:	getfield_a_this 16;		// reference com/sun/satsa/pkiapplet/PKIApplet.current
					checkcast 0 55;		// T_CLASSORINTERFACE com/sun/satsa/pkiapplet/EFile
					astore_2;
					aload_2;
					getfield_s 2;		// short com/sun/satsa/pkiapplet/File.type
					bspush 48;
					if_scmpne L4;
				L3:	aload_0;
					getfield_a_this 9;		// reference com/sun/satsa/pkiapplet/PKIApplet.PINs
					sconst_0;
					aaload;
					invokevirtual 84;		// com/sun/satsa/pkiapplet/PKIApplet.isValidated(Ljavacard/framework/OwnerPIN;)Z
					ifne L5;
				L4:	sspush 27010;
					invokestatic 50;		// javacard/framework/ISOException.throwIt(S)V
				L5:	aload_1;
					invokevirtual 60;		// javacard/framework/APDU.getBuffer()[B
					astore_3;
					aload_3;
					sconst_2;
					invokestatic 68;		// javacard/framework/Util.getShort([BS)S
					sstore 4;
					sload 4;
					ifge L7;
				L6:	sspush 27270;
					invokestatic 50;		// javacard/framework/ISOException.throwIt(S)V
				L7:	aload_3;
					sconst_4;
					baload;
					sspush 255;
					sand;
					sstore 5;
					sload 4;
					s2i;
					sload 5;
					s2i;
					iadd;
					aload_2;
					getfield_s 4;		// short com/sun/satsa/pkiapplet/EFile.length
					s2i;
					icmp;
					ifle L9;
				L8:	sspush 26368;
					invokestatic 50;		// javacard/framework/ISOException.throwIt(S)V
				L9:	aload_1;
					invokevirtual 78;		// javacard/framework/APDU.setIncomingAndReceive()S
					sstore 6;
					sconst_5;
					sstore 7;
					goto L11;
				L10:	aload_3;
					sload 7;
					aload_2;
					getfield_a 5;		// reference com/sun/satsa/pkiapplet/EFile.data
					aload_2;
					getfield_s 3;		// short com/sun/satsa/pkiapplet/EFile.offset
					sload 4;
					sadd;
					sload 6;
					invokestatic 57;		// javacard/framework/Util.arrayCopyNonAtomic([BS[BSS)S
					pop;
					sload 4;
					sload 6;
					sadd;
					sstore 4;
					aload_1;
					sconst_0;
					invokevirtual 79;		// javacard/framework/APDU.receiveBytes(S)S
					sstore 6;
					sconst_0;
					sstore 7;
				L11:	sload 6;
					ifgt L10;
				L12:	return;
		}

		.method  verify(Ljavacard/framework/APDU;)V 134 {
			.stack 6;
			.locals 5;

			.descriptor	Ljavacard/framework/APDU;	1.10;

				L0:	getfield_a_this 16;		// reference com/sun/satsa/pkiapplet/PKIApplet.current
					getfield_s 2;		// short com/sun/satsa/pkiapplet/File.type
					sconst_3;
					if_scmpeq L2;
				L1:	sspush 27266;
					invokestatic 50;		// javacard/framework/ISOException.throwIt(S)V
				L2:	aload_1;
					invokevirtual 60;		// javacard/framework/APDU.getBuffer()[B
					astore_2;
					sconst_m1;
					sstore_3;
					sconst_0;
					sstore 4;
					goto L6;
				L3:	getfield_a_this 18;		// reference com/sun/satsa/pkiapplet/PKIApplet.PIN_REFs
					sload 4;
					baload;
					aload_2;
					sconst_3;
					baload;
					if_scmpne L5;
				L4:	sload 4;
					sstore_3;
					goto L7;
				L5:	sinc 4 1;
				L6:	sload 4;
					s2i;
					getfield_a_this 18;		// reference com/sun/satsa/pkiapplet/PKIApplet.PIN_REFs
					arraylength;
					s2i;
					getstatic_s 40;		// short com/sun/satsa/pkiapplet/Data.freePINSlots
					s2i;
					isub;
					icmp;
					iflt L3;
				L7:	sload_3;
					sconst_m1;
					if_scmpeq L9;
				L8:	aload_2;
					sconst_2;
					baload;
					ifeq L10;
				L9:	sspush 27270;
					invokestatic 50;		// javacard/framework/ISOException.throwIt(S)V
				L10:	getfield_a_this 9;		// reference com/sun/satsa/pkiapplet/PKIApplet.PINs
					sload_3;
					aaload;
					astore 5;
					aload_2;
					sconst_4;
					baload;
					ifne L16;
				L11:	aload_0;
					aload 5;
					invokevirtual 84;		// com/sun/satsa/pkiapplet/PKIApplet.isValidated(Ljavacard/framework/OwnerPIN;)Z
					ifeq L13;
				L12:	return;
				L13:	aload 5;
					invokevirtual 80;		// javacard/framework/OwnerPIN.getTriesRemaining()B
					ifne L15;
				L14:	sspush 27011;
					invokestatic 50;		// javacard/framework/ISOException.throwIt(S)V
				L15:	sspush 25344;
					aload 5;
					invokevirtual 80;		// javacard/framework/OwnerPIN.getTriesRemaining()B
					sor;
					invokestatic 50;		// javacard/framework/ISOException.throwIt(S)V
				L16:	aload_1;
					invokevirtual 78;		// javacard/framework/APDU.setIncomingAndReceive()S
					sstore 6;
					sload 6;
					bspush 8;
					if_scmple L18;
				L17:	sconst_0;
					sstore 6;
				L18:	aload 5;
					aload_2;
					sconst_5;
					sload 6;
					s2b;
					invokevirtual 81;		// javacard/framework/OwnerPIN.check([BSB)Z
					pop;
					aload_0;
					aload 5;
					invokevirtual 84;		// com/sun/satsa/pkiapplet/PKIApplet.isValidated(Ljavacard/framework/OwnerPIN;)Z
					ifeq L20;
				L19:	return;
				L20:	sspush 25344;
					invokestatic 50;		// javacard/framework/ISOException.throwIt(S)V
					return;
		}

		.method  manageSE(Ljavacard/framework/APDU;)V 135 {
			.stack 6;
			.locals 7;

			.descriptor	Ljavacard/framework/APDU;	1.10;

				L0:	aload_1;
					invokevirtual 60;		// javacard/framework/APDU.getBuffer()[B
					astore_2;
					aload_2;
					sconst_2;
					baload;
					bspush -13;
					if_scmpne L4;
				L1:	aload_2;
					sconst_3;
					baload;
					bspush 68;
					if_scmpeq L3;
				L2:	sspush 26112;

⌨️ 快捷键说明

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