📄 pkiapplet.jca
字号:
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 + -