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

📄 pkiapplet.jca

📁 Java card pki applet for J2ME JSR177 source code
💻 JCA
📖 第 1 页 / 共 5 页
字号:
					ifnonnull L2;
				L1:	sconst_0;
					invokestatic 26;		// javacard/framework/CardRuntimeException.throwIt(S)V
				L2:	aload_0;
					bspush 10;
					sconst_0;
					invokestatic 27;		// javacardx/crypto/Cipher.getInstance(BZ)Ljavacardx/crypto/Cipher;
					putfield_a 13;		// reference com/sun/satsa/pkiapplet/PKIApplet.cipher
					getstatic_b 29;		// boolean com/sun/satsa/pkiapplet/PKIApplet.supportKeyGeneration
					ifeq L4;
				L3:	aload_0;
					sconst_1;
					sconst_0;
					invokestatic 30;		// javacard/security/MessageDigest.getInstance(BZ)Ljavacard/security/MessageDigest;
					putfield_a 14;		// reference com/sun/satsa/pkiapplet/PKIApplet.digest
				L4:	aload_0;
					invokevirtual 32;		// javacard/framework/Applet.register()V
					return;
		}

		.method public static install([BSB)V 0 {
			.stack 2;
			.locals 0;

				L0:	new 33;		// com/sun/satsa/pkiapplet/PKIApplet
					dup;
					invokespecial 34;		// com/sun/satsa/pkiapplet/PKIApplet.<init>()V
					pop;
					return;
		}

		.method public select()Z 6 {
			.stack 2;
			.locals 0;

				L0:	getstatic_a 25;		// reference com/sun/satsa/pkiapplet/Data.PINs
					ifnull L2;
				L1:	aload_0;
					invokevirtual 35;		// com/sun/satsa/pkiapplet/PKIApplet.init()V
				L2:	aload_0;
					getfield_a_this 15;		// reference com/sun/satsa/pkiapplet/PKIApplet.base
					putfield_a 16;		// reference com/sun/satsa/pkiapplet/PKIApplet.current
					aload_0;
					sconst_0;
					putfield_b 17;		// boolean com/sun/satsa/pkiapplet/PKIApplet.isSERestored
					sconst_1;
					sreturn;
		}

		.method  init()V 128 {
			.stack 6;
			.locals 3;

				L0:	getstatic_a 25;		// reference com/sun/satsa/pkiapplet/Data.PINs
					invokestatic 39;		// com/sun/satsa/pkiapplet/Parser.init([B)V
					invokestatic 28;		// com/sun/satsa/pkiapplet/Parser.getByte()B
					sstore_1;
					aload_0;
					sload_1;
					getstatic_s 40;		// short com/sun/satsa/pkiapplet/Data.freePINSlots
					sadd;
					newarray 11;
					putfield_a 18;		// reference com/sun/satsa/pkiapplet/PKIApplet.PIN_REFs
					aload_0;
					sload_1;
					getstatic_s 40;		// short com/sun/satsa/pkiapplet/Data.freePINSlots
					sadd;
					anewarray 42;		// javacard/framework/OwnerPIN
					putfield_a 9;		// reference com/sun/satsa/pkiapplet/PKIApplet.PINs
					sconst_0;
					sstore_2;
					goto L2;
				L1:	getfield_a_this 18;		// reference com/sun/satsa/pkiapplet/PKIApplet.PIN_REFs
					sload_2;
					invokestatic 28;		// com/sun/satsa/pkiapplet/Parser.getByte()B
					bastore;
					invokestatic 28;		// com/sun/satsa/pkiapplet/Parser.getByte()B
					sstore_3;
					getfield_a_this 9;		// reference com/sun/satsa/pkiapplet/PKIApplet.PINs
					sload_2;
					new 42;		// javacard/framework/OwnerPIN
					dup;
					sconst_3;
					bspush 8;
					invokespecial 52;		// javacard/framework/OwnerPIN.<init>(BB)V
					aastore;
					getfield_a_this 9;		// reference com/sun/satsa/pkiapplet/PKIApplet.PINs
					sload_2;
					aaload;
					getstatic_a 25;		// reference com/sun/satsa/pkiapplet/Data.PINs
					getstatic_s 49;		// short com/sun/satsa/pkiapplet/Parser.offset
					sload_3;
					invokevirtual 53;		// javacard/framework/OwnerPIN.update([BSB)V
					sload_3;
					invokestatic 83;		// com/sun/satsa/pkiapplet/Parser.skip(S)V
					sinc 2 1;
				L2:	sload_2;
					sload_1;
					if_scmplt L1;
				L3:	getstatic_a 45;		// reference com/sun/satsa/pkiapplet/Data.PrivateKeys
					invokestatic 39;		// com/sun/satsa/pkiapplet/Parser.init([B)V
					invokestatic 28;		// com/sun/satsa/pkiapplet/Parser.getByte()B
					sstore_1;
					aload_0;
					sload_1;
					getstatic_s 43;		// short com/sun/satsa/pkiapplet/Data.freeKeySlots
					sadd;
					anewarray 44;		// com/sun/satsa/pkiapplet/PKIApplet$PrivateKey
					putfield_a 19;		// reference com/sun/satsa/pkiapplet/PKIApplet.keys
					sconst_0;
					sstore_3;
					goto L5;
				L4:	getfield_a_this 19;		// reference com/sun/satsa/pkiapplet/PKIApplet.keys
					sload_3;
					new 44;		// com/sun/satsa/pkiapplet/PKIApplet$PrivateKey
					dup;
					aload_0;
					invokespecial 54;		// com/sun/satsa/pkiapplet/PKIApplet$PrivateKey.<init>(Lcom/sun/satsa/pkiapplet/PKIApplet;)V
					aastore;
					sinc 3 1;
				L5:	sload_3;
					sload_1;
					if_scmplt L4;
				L6:	getstatic_a 46;		// reference com/sun/satsa/pkiapplet/Data.Files
					invokestatic 39;		// com/sun/satsa/pkiapplet/Parser.init([B)V
					aload_0;
					aload_0;
					aconst_null;
					invokevirtual 47;		// com/sun/satsa/pkiapplet/PKIApplet.readFile(Lcom/sun/satsa/pkiapplet/DFile;)Lcom/sun/satsa/pkiapplet/File;
					checkcast 0 48;		// T_CLASSORINTERFACE com/sun/satsa/pkiapplet/DFile
					putfield_a 20;		// reference com/sun/satsa/pkiapplet/PKIApplet.top
					getfield_a_this 15;		// reference com/sun/satsa/pkiapplet/PKIApplet.base
					ifnonnull L8;
				L7:	sspush -28671;
					invokestatic 50;		// javacard/framework/ISOException.throwIt(S)V
				L8:	aconst_null;
					putstatic_a 25;		// reference com/sun/satsa/pkiapplet/Data.PINs
					aconst_null;
					putstatic_a 45;		// reference com/sun/satsa/pkiapplet/Data.PrivateKeys
					invokestatic 51;		// javacard/framework/JCSystem.requestObjectDeletion()V
					getstatic_s 49;		// short com/sun/satsa/pkiapplet/Parser.offset
					getstatic_a 46;		// reference com/sun/satsa/pkiapplet/Data.Files
					arraylength;
					if_scmpeq L10;
				L9:	sspush -28671;
					invokestatic 50;		// javacard/framework/ISOException.throwIt(S)V
				L10:	return;
		}

		.method  readFile(Lcom/sun/satsa/pkiapplet/DFile;)Lcom/sun/satsa/pkiapplet/File; 129 {
			.stack 8;
			.locals 6;

				L0:	invokestatic 41;		// com/sun/satsa/pkiapplet/Parser.getShort()S
					sstore_2;
					invokestatic 28;		// com/sun/satsa/pkiapplet/Parser.getByte()B
					sstore_3;
					invokestatic 41;		// com/sun/satsa/pkiapplet/Parser.getShort()S
					sstore 4;
					sload_3;
					sconst_1;
					sand;
					ifne L5;
				L1:	sload_3;
					bspush 64;
					sand;
					ifne L3;
				L2:	new 55;		// com/sun/satsa/pkiapplet/EFile
					dup;
					aload_1;
					sload_2;
					sload_3;
					getstatic_s 49;		// short com/sun/satsa/pkiapplet/Parser.offset
					sload 4;
					getstatic_a 46;		// reference com/sun/satsa/pkiapplet/Data.Files
					invokespecial 56;		// com/sun/satsa/pkiapplet/EFile.<init>(Lcom/sun/satsa/pkiapplet/DFile;SSSS[B)V
					astore 5;
					sload 4;
					invokestatic 83;		// com/sun/satsa/pkiapplet/Parser.skip(S)V
					goto L4;
				L3:	sload_3;
					bspush -65;
					sand;
					sstore_3;
					sload 4;
					newarray 11;
					astore 6;
					invokestatic 41;		// com/sun/satsa/pkiapplet/Parser.getShort()S
					sstore 7;
					getstatic_a 46;		// reference com/sun/satsa/pkiapplet/Data.Files
					getstatic_s 49;		// short com/sun/satsa/pkiapplet/Parser.offset
					aload 6;
					sconst_0;
					sload 7;
					invokestatic 57;		// javacard/framework/Util.arrayCopyNonAtomic([BS[BSS)S
					pop;
					new 55;		// com/sun/satsa/pkiapplet/EFile
					dup;
					aload_1;
					sload_2;
					sload_3;
					sconst_0;
					sload 4;
					aload 6;
					invokespecial 56;		// com/sun/satsa/pkiapplet/EFile.<init>(Lcom/sun/satsa/pkiapplet/DFile;SSSS[B)V
					astore 5;
					sload 7;
					invokestatic 83;		// com/sun/satsa/pkiapplet/Parser.skip(S)V
				L4:	aload 5;
					areturn;
				L5:	new 48;		// com/sun/satsa/pkiapplet/DFile
					dup;
					aload_1;
					sload_2;
					sload_3;
					invokespecial 58;		// com/sun/satsa/pkiapplet/DFile.<init>(Lcom/sun/satsa/pkiapplet/DFile;SS)V
					astore 5;
					sload 4;
					anewarray 59;		// com/sun/satsa/pkiapplet/File
					astore 6;
					sconst_0;
					sstore 7;
					goto L7;
				L6:	aload 6;
					sload 7;
					aload_0;
					aload 5;
					invokevirtual 47;		// com/sun/satsa/pkiapplet/PKIApplet.readFile(Lcom/sun/satsa/pkiapplet/DFile;)Lcom/sun/satsa/pkiapplet/File;
					aastore;
					sinc 7 1;
				L7:	sload 7;
					sload 4;
					if_scmplt L6;
				L8:	aload 5;
					aload 6;
					putfield_a 6;		// reference com/sun/satsa/pkiapplet/DFile.files
					sload_3;
					bspush 9;
					if_scmpne L10;
				L9:	aload_0;
					aload 5;
					putfield_a 15;		// reference com/sun/satsa/pkiapplet/PKIApplet.base
				L10:	aload 5;
					areturn;
		}

		.method public process(Ljavacard/framework/APDU;)V 7 {
			.stack 2;
			.locals 3;

			.descriptor	Ljavacard/framework/APDU;	1.10;

				L0:	aload_1;
					invokevirtual 60;		// javacard/framework/APDU.getBuffer()[B
					astore_2;
					aload_2;
					sconst_0;
					baload;
					sspush 240;
					sand;
					s2b;
					sstore_3;
					aload_2;
					sconst_1;
					baload;
					sstore 4;
					sload_3;
					ifne L4;
				L1:	sload 4;
					bspush -92;
					if_scmpne L4;
				L2:	aload_2;
					sconst_2;
					baload;
					sconst_4;
					if_scmpne L4;
				L3:	return;
				L4:	sload_3;
					bspush -128;
					if_scmpeq L6;
				L5:	sspush 28160;
					invokestatic 50;		// javacard/framework/ISOException.throwIt(S)V
				L6:	sload 4;
					slookupswitch L15 7 -92 L7 -80 L8 -68 L13 -42 L9 32 L10 34 L11 42 L12;
				L7:	aload_0;
					aload_1;
					invokevirtual 61;		// com/sun/satsa/pkiapplet/PKIApplet.selectFile(Ljavacard/framework/APDU;)V
					return;
				L8:	aload_0;
					aload_1;
					invokevirtual 62;		// com/sun/satsa/pkiapplet/PKIApplet.read(Ljavacard/framework/APDU;)V
					return;
				L9:	aload_0;
					aload_1;
					invokevirtual 63;		// com/sun/satsa/pkiapplet/PKIApplet.update(Ljavacard/framework/APDU;)V
					return;
				L10:	aload_0;
					aload_1;
					invokevirtual 64;		// com/sun/satsa/pkiapplet/PKIApplet.verify(Ljavacard/framework/APDU;)V
					return;
				L11:	aload_0;
					aload_1;
					invokevirtual 65;		// com/sun/satsa/pkiapplet/PKIApplet.manageSE(Ljavacard/framework/APDU;)V
					return;
				L12:	aload_0;
					aload_1;
					invokevirtual 66;		// com/sun/satsa/pkiapplet/PKIApplet.sign(Ljavacard/framework/APDU;)V
					return;
				L13:	getstatic_b 29;		// boolean com/sun/satsa/pkiapplet/PKIApplet.supportKeyGeneration
					ifeq L15;
				L14:	aload_0;
					aload_1;
					invokevirtual 67;		// com/sun/satsa/pkiapplet/PKIApplet.newKey(Ljavacard/framework/APDU;)V
					return;
				L15:	sspush 27904;
					invokestatic 50;		// javacard/framework/ISOException.throwIt(S)V
					return;
		}

		.method  selectFile(Ljavacard/framework/APDU;)V 130 {
			.stack 3;
			.locals 2;

			.descriptor	Ljavacard/framework/APDU;	1.10;

				L0:	aload_1;
					invokevirtual 60;		// javacard/framework/APDU.getBuffer()[B
					astore_2;
					aload_2;
					sconst_2;
					invokestatic 68;		// javacard/framework/Util.getShort([BS)S
					ifeq L2;
				L1:	sspush 27270;
					invokestatic 50;		// javacard/framework/ISOException.throwIt(S)V
				L2:	aload_0;
					sconst_2;
					invokespecial 69;		// com/sun/satsa/pkiapplet/PKIApplet.checkDataSize(S)V
					aload_0;
					aload_2;
					sconst_5;
					invokestatic 68;		// javacard/framework/Util.getShort([BS)S
					invokevirtual 70;		// com/sun/satsa/pkiapplet/PKIApplet.select(S)Lcom/sun/satsa/pkiapplet/File;
					astore_3;
					aload_3;
					ifnonnull L4;
				L3:	sspush 27266;

⌨️ 快捷键说明

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