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

📄 pkiapplet.jca

📁 Java card pki applet for J2ME JSR177 source code
💻 JCA
📖 第 1 页 / 共 5 页
字号:
					invokestatic 50;		// javacard/framework/ISOException.throwIt(S)V
				L3:	aload_0;
					sconst_1;
					putfield_b 17;		// boolean com/sun/satsa/pkiapplet/PKIApplet.isSERestored
					aload_0;
					sconst_0;
					putfield_b 21;		// boolean com/sun/satsa/pkiapplet/PKIApplet.isKeyFileSet
					aload_0;
					sconst_m1;
					putfield_s 22;		// short com/sun/satsa/pkiapplet/PKIApplet.keyNum
					return;
				L4:	getfield_b_this 17;		// boolean com/sun/satsa/pkiapplet/PKIApplet.isSERestored
					ifeq L6;
				L5:	aload_2;
					sconst_2;
					invokestatic 68;		// javacard/framework/Util.getShort([BS)S
					sspush 16822;
					if_scmpeq L7;
				L6:	sspush 26112;
					invokestatic 50;		// javacard/framework/ISOException.throwIt(S)V
				L7:	getfield_a_this 16;		// reference com/sun/satsa/pkiapplet/PKIApplet.current
					astore_3;
					aload_1;
					invokevirtual 78;		// javacard/framework/APDU.setIncomingAndReceive()S
					sstore 4;
					sconst_5;
					sstore 5;
					sload 4;
					sload 5;
					sadd;
					sstore 4;
				L8:	goto_w L25;
				L9:	aload_2;
					sload 5;
					sinc 5 1;
					baload;
					sstore 6;
					aload_2;
					sload 5;
					sinc 5 1;
					baload;
					sstore 7;
					sload 7;
					ifle L11;
				L10:	sload 7;
					bspush 32;
					if_scmple L12;
				L11:	sspush 26112;
					invokestatic 50;		// javacard/framework/ISOException.throwIt(S)V
				L12:	sload 6;
					bspush -124;
					if_scmpne L21;
				L13:	sload 7;
					sconst_1;
					if_scmpeq L15;
				L14:	sspush 26112;
					invokestatic 50;		// javacard/framework/ISOException.throwIt(S)V
				L15:	sconst_0;
					sstore 8;
					goto L19;
				L16:	aload_2;
					sload 5;
					baload;
					getfield_a_this 19;		// reference com/sun/satsa/pkiapplet/PKIApplet.keys
					sload 8;
					aaload;
					getfield_s 8;		// short com/sun/satsa/pkiapplet/PKIApplet$PrivateKey.id
					if_scmpne L18;
				L17:	aload_0;
					sload 8;
					putfield_s 22;		// short com/sun/satsa/pkiapplet/PKIApplet.keyNum
					goto L20;
				L18:	sinc 8 1;
				L19:	sload 8;
					s2i;
					getfield_a_this 19;		// reference com/sun/satsa/pkiapplet/PKIApplet.keys
					arraylength;
					s2i;
					getstatic_s 43;		// short com/sun/satsa/pkiapplet/Data.freeKeySlots
					s2i;
					isub;
					icmp;
					iflt L16;
				L20:	goto L24;
				L21:	sload 6;
					bspush -127;
					if_scmpne L23;
				L22:	aload_0;
					aload_2;
					sload 5;
					sload 7;
					invokevirtual 85;		// com/sun/satsa/pkiapplet/PKIApplet.getFile([BSS)Lcom/sun/satsa/pkiapplet/File;
					astore_3;
					goto L24;
				L23:	sspush 27264;
					invokestatic 50;		// javacard/framework/ISOException.throwIt(S)V
				L24:	sload 5;
					sload 7;
					sadd;
					sstore 5;
				L25:	sload 5;
					sload 4;
					if_scmplt_w L9;
				L26:	goto L28;
				L27:	astore 6;
					aload_0;
					sconst_m1;
					putfield_s 22;		// short com/sun/satsa/pkiapplet/PKIApplet.keyNum
				L28:	getfield_s_this 22;		// short com/sun/satsa/pkiapplet/PKIApplet.keyNum
					sconst_m1;
					if_scmpeq L31;
				L29:	aload_3;
					ifnull L31;
				L30:	aload_3;
					getfield_s 2;		// short com/sun/satsa/pkiapplet/File.type
					sconst_4;
					if_scmpeq L32;
				L31:	sspush 26112;
					invokestatic 50;		// javacard/framework/ISOException.throwIt(S)V
				L32:	aload_3;
					checkcast 0 55;		// T_CLASSORINTERFACE com/sun/satsa/pkiapplet/EFile
					astore 6;
					aload_0;
					aload 6;
					getfield_a 5;		// reference com/sun/satsa/pkiapplet/EFile.data
					aload 6;
					getfield_s 3;		// short com/sun/satsa/pkiapplet/EFile.offset
					baload;
					getfield_a_this 19;		// reference com/sun/satsa/pkiapplet/PKIApplet.keys
					getfield_s_this 22;		// short com/sun/satsa/pkiapplet/PKIApplet.keyNum
					aaload;
					getfield_s 8;		// short com/sun/satsa/pkiapplet/PKIApplet$PrivateKey.id
					if_scmpne L34;
				L33:	sconst_1;
					goto L35;
				L34:	sconst_0;
				L35:	putfield_b 21;		// boolean com/sun/satsa/pkiapplet/PKIApplet.isKeyFileSet
					getfield_b_this 21;		// boolean com/sun/satsa/pkiapplet/PKIApplet.isKeyFileSet
					ifne L37;
				L36:	sspush 26112;
					invokestatic 50;		// javacard/framework/ISOException.throwIt(S)V
				L37:	return;
			.exceptionTable {
				// start_block end_block handler_block catch_type_index
				L8 L26 L27 82;
			}
		}

		.method  newKey(Ljavacard/framework/APDU;)V 136 {
			.stack 7;
			.locals 11;

			.descriptor	Ljavacard/framework/APDU;	1.10;

				L0:	aload_1;
					invokevirtual 78;		// javacard/framework/APDU.setIncomingAndReceive()S
					pop;
					aload_1;
					invokevirtual 60;		// javacard/framework/APDU.getBuffer()[B
					astore_2;
					aload_2;
					sconst_5;
					baload;
					sconst_1;
					if_scmpne L2;
				L1:	sconst_1;
					goto L3;
				L2:	sconst_0;
				L3:	sstore_3;
					getstatic_s 43;		// short com/sun/satsa/pkiapplet/Data.freeKeySlots
					ifeq L6;
				L4:	sload_3;
					ifeq L7;
				L5:	getstatic_s 40;		// short com/sun/satsa/pkiapplet/Data.freePINSlots
					ifne L7;
				L6:	sspush -28671;
					invokestatic 50;		// javacard/framework/ISOException.throwIt(S)V
				L7:	aload_2;
					bspush 6;
					invokestatic 68;		// javacard/framework/Util.getShort([BS)S
					sstore 4;
					sload 4;
					s2i;
					aload_2;
					arraylength;
					s2i;
					iconst_1;
					isub;
					bipush 8;
					imul;
					icmp;
					ifle L9;
				L8:	sspush -28671;
					invokestatic 50;		// javacard/framework/ISOException.throwIt(S)V
				L9:	aload_2;
					sconst_2;
					baload;
					sconst_1;
					if_scmpne L11;
				L10:	aload_2;
					sconst_0;
					sspush 4660;
					invokestatic 72;		// javacard/framework/Util.setShort([BSS)S
					pop;
					aload_2;
					sconst_2;
					sspush 17185;
					invokestatic 72;		// javacard/framework/Util.setShort([BSS)S
					pop;
					aload_1;
					sconst_0;
					sconst_4;
					invokevirtual 73;		// javacard/framework/APDU.setOutgoingAndSend(SS)V
					return;
				L11:	sconst_0;
					sstore 5;
					sload_3;
					ifeq L13;
				L12:	getfield_a_this 9;		// reference com/sun/satsa/pkiapplet/PKIApplet.PINs
					arraylength;
					getstatic_s 40;		// short com/sun/satsa/pkiapplet/Data.freePINSlots
					ssub;
					sstore 5;
					new 42;		// javacard/framework/OwnerPIN
					dup;
					sconst_3;
					bspush 8;
					invokespecial 52;		// javacard/framework/OwnerPIN.<init>(BB)V
					astore 6;
					aload 6;
					aload_2;
					bspush 8;
					bspush 8;
					invokevirtual 53;		// javacard/framework/OwnerPIN.update([BSB)V
					aload 6;
					aload_2;
					bspush 8;
					bspush 8;
					invokevirtual 81;		// javacard/framework/OwnerPIN.check([BSB)Z
					pop;
					getfield_a_this 9;		// reference com/sun/satsa/pkiapplet/PKIApplet.PINs
					sload 5;
					aload 6;
					aastore;
					getfield_a_this 18;		// reference com/sun/satsa/pkiapplet/PKIApplet.PIN_REFs
					sload 5;
					getstatic_b 87;		// byte com/sun/satsa/pkiapplet/Data.newPINRef
					bastore;
					aload_2;
					bspush 16;
					getstatic_a 46;		// reference com/sun/satsa/pkiapplet/Data.Files
					sspush 1169;
					getstatic_s 88;		// short com/sun/satsa/pkiapplet/Data.newPINOffset
					sadd;
					bspush 6;
					sadd;
					bspush 32;
					invokestatic 89;		// javacard/framework/Util.arrayCopy([BS[BSS)S
					pop;
				L13:	invokestatic 51;		// javacard/framework/JCSystem.requestObjectDeletion()V
					new 90;		// javacard/security/KeyPair
					dup;
					sconst_1;
					sload 4;
					invokespecial 91;		// javacard/security/KeyPair.<init>(BS)V
					astore 6;
					aload 6;
					invokevirtual 92;		// javacard/security/KeyPair.genKeyPair()V
					new 44;		// com/sun/satsa/pkiapplet/PKIApplet$PrivateKey
					dup;
					aload_0;
					getstatic_b 93;		// byte com/sun/satsa/pkiapplet/Data.newKeyID
					getfield_a_this 9;		// reference com/sun/satsa/pkiapplet/PKIApplet.PINs
					sload 5;
					aaload;
					sload_3;
					aload 6;
					invokevirtual 94;		// javacard/security/KeyPair.getPrivate()Ljavacard/security/PrivateKey;
					checkcast 0 37;		// T_CLASSORINTERFACE javacard/security/RSAPrivateKey
					invokespecial 95;		// com/sun/satsa/pkiapplet/PKIApplet$PrivateKey.<init>(Lcom/sun/satsa/pkiapplet/PKIApplet;SLjavacard/framework/OwnerPIN;ZLjavacard/security/RSAPrivateKey;)V
					astore 7;
					aload 6;
					invokevirtual 96;		// javacard/security/KeyPair.getPublic()Ljavacard/security/PublicKey;
					checkcast 0 97;		// T_CLASSORINTERFACE javacard/security/RSAPublicKey
					astore 8;
					getfield_a_this 15;		// reference com/sun/satsa/pkiapplet/PKIApplet.base
					getstatic_s 98;		// short com/sun/satsa/pkiapplet/Data.newFileID
					invokevirtual 74;		// com/sun/satsa/pkiapplet/DFile.getFile(S)Lcom/sun/satsa/pkiapplet/File;
					checkcast 0 55;		// T_CLASSORINTERFACE com/sun/satsa/pkiapplet/EFile
					astore 9;
					aload 9;
					aload 8;
					aload_2;
					invokestatic 99;		// com/sun/satsa/pkiapplet/PKIApplet.encodePublicKey(Ljavacard/security/RSAPublicKey;[B)[B
					putfield_a 5;		// reference com/sun/satsa/pkiapplet/EFile.data
					aload 9;
					sconst_0;
					putfield_s 3;		// short com/sun/satsa/pkiapplet/EFile.offset
					aload 9;
					aload 9;
					getfield_a 5;		// reference com/sun/satsa/pkiapplet/EFile.data
					arraylength;
					putfield_s 4;		// short com/sun/satsa/pkiapplet/EFile.length
					aload_0;
					aload 8;
					aload_2;
					invokevirtual 100;		// com/sun/satsa/pkiapplet/PKIApplet.getKeyHash(Ljavacard/security/RSAPublicKey;[B)[B
					astore 10;
					getstatic_a 46;		// reference com/sun/satsa/pkiapplet/Data.Files
					astore 11;
					sspush 2845;
					getstatic_s 101;		// short com/sun/satsa/pkiapplet/Data.newPubKeyOffset
					sadd;
					sstore 12;
					aload 10;
					sconst_0;
					aload 11;
					sload 12;
					bspush 8;
					sadd;
					bspush 20;
					invokestatic 89;		// javacard/framework/Util.arrayCopy([BS[BSS)S
					pop;
					aload 11;
					sload 12;
					bspush 47;
					sadd;
					sload 4;
					invokestatic 72;		// javacard/framework/Util.setShort([BSS)S
					pop;
					sspush 2090;
					getstatic_s 102;		// short com/sun/satsa/pkiapplet/Data.newPrivKeyOffset
					sadd;
					sstore 12;
					aload 11;
					sload 12;
					bspush 44;
					sadd;
					sload_3;
					ifeq L15;
				L14:	getstatic_b 103;		// byte com/sun/satsa/pkiapplet/Data.newPINID
					goto L16;
				L15:	sconst_2;
				L16:	bast

⌨️ 快捷键说明

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