// converted by version 1.3 // on Tue Sep 23 17:56:07 UTC 2025 .package fr/bmartel/aram { .aid 0xA0:0x0:0x0:0x1:0x51:0x41:0x43:0x4C; .version 0.1; .imports { 0xA0:0x0:0x0:0x0:0x62:0x1:0x1 1.2; //javacard/framework 0xA0:0x0:0x0:0x1:0x51:0x0 1.1; //org/globalplatform 0xA0:0x0:0x0:0x0:0x62:0x1:0x2 1.2; //javacard/security 0xA0:0x0:0x0:0x0:0x62:0x0:0x1 1.0; //java/lang } .applet { 0xA0:0x0:0x0:0x1:0x51:0x41:0x43:0x4C:0x0 AccessRuleMaster; } .constantPool { // 0 instanceFieldRef byte[] AccessRuleMaster/refreshTag; // 1 instanceFieldRef boolean AccessRuleMaster/aram_lock_status; // 2 instanceFieldRef short AccessRuleMaster/dataOffset; // 3 instanceFieldRef short AccessRuleMaster/currentNext; // 4 instanceFieldRef short AccessRuleMaster/nextLength; // 5 instanceFieldRef byte[] RuleEntry/aid; // 6 instanceFieldRef byte[] RuleEntry/hash; // 7 instanceFieldRef byte[] RuleEntry/rule; // 8 instanceFieldRef RuleEntry RuleEntry/next; // 9 instanceFieldRef byte RuleEntry/aidLength; // 10 instanceFieldRef byte RuleEntry/hashLength; // 11 instanceFieldRef byte RuleEntry/ruleLength; // 12 staticMethodRef AccessRuleMaster/processCmdGetData()V; // 13 staticMethodRef AccessRuleMaster/processGetAll()V; // 14 staticMethodRef AccessRuleMaster/processGetSpecific()V; // 15 staticMethodRef AccessRuleMaster/processGetRefreshTag()V; // 16 staticMethodRef AccessRuleMaster/processGetNext()V; // 17 staticMethodRef RuleEntry/getFirst()Lfr/bmartel/aram/RuleEntry;; // 18 staticMethodRef 0.10.4()Ljavacard/framework/APDU;; // javacard/framework/APDU.getCurrentAPDU()Ljavacard/framework/APDU; .descriptor Ljavacard/framework/APDU; 0.10; // 19 virtualMethodRef 0.10.8(SS)V; // javacard/framework/APDU.setOutgoingAndSend(SS)V // 20 classRef AccessRuleMaster; // 21 staticMethodRef AramUtils/buildRefArDo(SS[BSLfr/bmartel/aram/RuleEntry;)B; // 22 virtualMethodRef RuleEntry/getNext()Lfr/bmartel/aram/RuleEntry;; // 23 staticMethodRef AccessRuleMaster/()V; // 24 virtualMethodRef 0.3.1()V; // javacard/framework/Applet.register()V // 25 staticMethodRef 0.16.1([BS[BSS)S; // javacard/framework/Util.arrayCopy([BS[BSS)S // 26 virtualMethodRef AccessRuleMaster/checkTLV([BSBS)S; // 27 staticMethodRef RuleEntry/searchAidHash([BSBSB)Lfr/bmartel/aram/RuleEntry;; // 28 staticMethodRef AccessRuleMaster/storeArDo([B)V; // 29 staticMethodRef AccessRuleMaster/deleteArDo([B)V; // 30 staticMethodRef AccessRuleMaster/updateRefreshTag()V; // 31 staticMethodRef 0.8.1()V; // javacard/framework/JCSystem.beginTransaction()V // 32 staticMethodRef RuleEntry/getInstance()Lfr/bmartel/aram/RuleEntry;; // 33 virtualMethodRef RuleEntry/setAid([BSB)V; // 34 virtualMethodRef RuleEntry/setHash([BSB)V; // 35 virtualMethodRef RuleEntry/setRule([BSB)V; // 36 staticMethodRef 0.8.2()V; // javacard/framework/JCSystem.commitTransaction()V // 37 staticMethodRef RuleEntry/deleteAll()V; // 38 staticMethodRef RuleEntry/searchAid([BSB)Lfr/bmartel/aram/RuleEntry;; // 39 staticMethodRef RuleEntry/deleteAid([BSB)V; // 40 staticMethodRef RuleEntry/deleteAidHash([BSBSB)V; // 41 staticMethodRef RuleEntry/searchAidHashRule([BSBSBSB)Lfr/bmartel/aram/RuleEntry;; // 42 staticMethodRef RuleEntry/deleteAidHashRule([BSBSBSB)V; // 43 staticMethodRef 2.14.0(B)Ljavacard/security/RandomData;; // javacard/security/RandomData.getInstance(B)Ljavacard/security/RandomData; .descriptor Ljavacard/security/RandomData; 2.14; // 44 virtualMethodRef 2.14.1([BSS)V; // javacard/security/RandomData.generateData([BSS)V // 45 staticMethodRef 3.0.0()V; // java/lang/Object.()V // 46 staticMethodRef AramUtils/buildRefDo(SS[BSLfr/bmartel/aram/RuleEntry;)B; // 47 staticMethodRef AramUtils/buildArDo(SS[BSLfr/bmartel/aram/RuleEntry;)B; // 48 staticMethodRef AramUtils/buildAidRefDo(SS[BSLfr/bmartel/aram/RuleEntry;)B; // 49 staticMethodRef AramUtils/buildHashRefDo(SS[BSLfr/bmartel/aram/RuleEntry;)B; // 50 virtualMethodRef RuleEntry/getRuleLength()B; // 51 virtualMethodRef RuleEntry/getRule([BSSS)S; // 52 virtualMethodRef RuleEntry/getAidLength()B; // 53 virtualMethodRef RuleEntry/getAid([BSSS)S; // 54 virtualMethodRef RuleEntry/getHashLength()B; // 55 virtualMethodRef RuleEntry/getHash([BSSS)S; // 56 virtualMethodRef 0.3.3()Z; // javacard/framework/Applet.selectingApplet()Z // 57 virtualMethodRef 0.10.1()[B; // javacard/framework/APDU.getBuffer()[B // 58 staticMethodRef 0.7.1(S)V; // javacard/framework/ISOException.throwIt(S)V // 59 staticFieldRef RuleEntry RuleEntry/first; // 60 virtualMethodRef 0.10.6()S; // javacard/framework/APDU.setIncomingAndReceive()S // 61 staticFieldRef RuleEntry RuleEntry/deleted; // 62 classRef RuleEntry; // 63 staticMethodRef RuleEntry/()V; // 64 staticMethodRef 0.3.0()V; // javacard/framework/Applet.()V // 65 staticMethodRef 0.16.0([BS[BSS)B; // javacard/framework/Util.arrayCompare([BS[BSS)B // 66 staticMethodRef 0.10.5()[B; // javacard/framework/APDU.getCurrentAPDUBuffer()[B // 67 staticMethodRef AccessRuleMaster/processCmdStoreData([B)V; // 68 staticMethodRef RuleEntry/remove()V; // 69 staticMethodRef RuleEntry/recycle()V; // 70 virtualMethodRef RuleEntry/getOffsetData(B[B[BSSS)S; } .class public AccessRuleMaster 0 extends 0.3 { // extends javacard/framework/Applet .shareable; .fields { private byte[] refreshTag 0; // [B private short dataOffset 1; // S private short nextLength 2; // S private short currentNext 3; // S private boolean aram_lock_status 4; // Z public static final byte INS_STORE_DATA = -30; // B public static final byte INS_GET_DATA = -54; // B public static final short SIZE_AID = 16; // S public static final short SIZE_HASH = 32; // S public static final short SIZE_RULE = 162; // S public static final byte COMMAND_STORE_REF_AR_DO = -16; // B public static final byte COMMAND_DELETE = -15; // B public static final byte COMMAND_UPDATE_REFRESH_TAG = -14; // B public static final byte COMMAND_LOCK_ARAM = -95; // B public static final byte COMMAND_UNLOCK_ARAM = -94; // B public static final short APDU_CHUNK = 255; // S } .publicMethodTable 7 { equals(Ljava/lang/Object;)Z; register()V; register([BSB)V; selectingApplet()Z; deselect()V; getShareableInterfaceObject(Ljavacard/framework/AID;B)Ljavacard/framework/Shareable;; select()Z; process(Ljavacard/framework/APDU;)V; processData([BSS)V; } .packageMethodTable 0 { checkTLV([BSBS)S; } .implementedInterfaceInfoTable { .interface 0.2 { // javacard/framework/Shareable } .interface 1.0 { // org/globalplatform/Application 8; // processData([BSS)V } } .method private ()V { .stack 2; .locals 0; L0: aload_0; invokespecial 64; // javacard/framework/Applet.()V aload_0; bspush 8; newarray 11; putfield_a 0; // reference fr/bmartel/aram/AccessRuleMaster.refreshTag return; } .method public static install([BSB)V 0 { .stack 2; .locals 0; L0: new 20; // fr/bmartel/aram/AccessRuleMaster dup; invokespecial 23; // fr/bmartel/aram/AccessRuleMaster.()V invokevirtual 24; // javacard/framework/Applet.register()V return; } .method public process(Ljavacard/framework/APDU;)V 7 { .stack 3; .locals 1; .descriptor Ljavacard/framework/APDU; 0.10; L0: aload_0; invokevirtual 56; // javacard/framework/Applet.selectingApplet()Z ifeq L2; L1: return; L2: aload_1; invokevirtual 57; // javacard/framework/APDU.getBuffer()[B astore_2; aload_2; sconst_0; baload; bspush -4; sand; bspush -128; if_scmpeq L4; L3: sspush 28160; invokestatic 58; // javacard/framework/ISOException.throwIt(S)V L4: aload_2; sconst_1; baload; slookupswitch L11 2 -54 L10 -30 L5; L5: aload_1; invokevirtual 60; // javacard/framework/APDU.setIncomingAndReceive()S aload_2; sconst_4; baload; sspush 255; sand; if_scmpeq L7; L6: sspush 26368; invokestatic 58; // javacard/framework/ISOException.throwIt(S)V L7: getfield_b_this 1; // boolean fr/bmartel/aram/AccessRuleMaster.aram_lock_status ifeq L9; L8: sspush 27010; invokestatic 58; // javacard/framework/ISOException.throwIt(S)V L9: aload_0; invokestatic 66; // javacard/framework/APDU.getCurrentAPDUBuffer()[B invokespecial 67; // fr/bmartel/aram/AccessRuleMaster.processCmdStoreData([B)V goto L12; L10: aload_0; invokespecial 12; // fr/bmartel/aram/AccessRuleMaster.processCmdGetData()V goto L12; L11: sspush 27904; invokestatic 58; // javacard/framework/ISOException.throwIt(S)V L12: return; } .method private processCmdGetData()V { .stack 2; .locals 1; L0: invokestatic 66; // javacard/framework/APDU.getCurrentAPDUBuffer()[B astore_1; aload_1; sconst_2; baload; sconst_m1; if_scmpne L3; L1: aload_1; sconst_3; baload; bspush 64; if_scmpne L3; L2: aload_0; invokespecial 13; // fr/bmartel/aram/AccessRuleMaster.processGetAll()V goto L13; L3: aload_1; sconst_2; baload; sconst_m1; if_scmpne L6; L4: aload_1; sconst_3; baload; bspush 80; if_scmpne L6; L5: aload_0; invokespecial 14; // fr/bmartel/aram/AccessRuleMaster.processGetSpecific()V goto L13; L6: aload_1; sconst_2; baload; bspush -33; if_scmpne L9; L7: aload_1; sconst_3; baload; bspush 32; if_scmpne L9; L8: aload_0; invokespecial 15; // fr/bmartel/aram/AccessRuleMaster.processGetRefreshTag()V goto L13; L9: aload_1; sconst_2; baload; sconst_m1; if_scmpne L12; L10: aload_1; sconst_3; baload; bspush 96; if_scmpne L12; L11: aload_0; invokespecial 16; // fr/bmartel/aram/AccessRuleMaster.processGetNext()V goto L13; L12: sspush 27270; invokestatic 58; // javacard/framework/ISOException.throwIt(S)V L13: return; } .method private processGetAll()V { .stack 6; .locals 4; L0: invokestatic 66; // javacard/framework/APDU.getCurrentAPDUBuffer()[B astore_1; aload_1; sconst_0; sconst_m1; bastore; aload_1; sconst_1; bspush 64; bastore; invokestatic 17; // fr/bmartel/aram/RuleEntry.getFirst()Lfr/bmartel/aram/RuleEntry; astore_2; sconst_2; sstore_3; aload_2; ifnonnull L2; L1: aload_1; sload_3; sinc 3 1; sconst_0; bastore; invokestatic 18; // javacard/framework/APDU.getCurrentAPDU()Ljavacard/framework/APDU; sconst_0; sconst_3; invokevirtual 19; // javacard/framework/APDU.setOutgoingAndSend(SS)V goto_w L12; L2: aload_0; sconst_0; putfield_s 2; // short fr/bmartel/aram/AccessRuleMaster.dataOffset L3: aload_2; ifnull L5; L4: getfield_s_this 2; // short fr/bmartel/aram/AccessRuleMaster.dataOffset getfield_s_this 2; // short fr/bmartel/aram/AccessRuleMaster.dataOffset sspush 255; sadd; aload_1; sload_3; sconst_1; sadd; aload_2; invokestatic 21; // fr/bmartel/aram/AramUtils.buildRefArDo(SS[BSLfr/bmartel/aram/RuleEntry;)B sstore 4; sload_3; sload 4; sadd; sstore_3; aload_2; invokevirtual 22; // fr/bmartel/aram/RuleEntry.getNext()Lfr/bmartel/aram/RuleEntry; astore_2; goto L3; L5: sinc 3 1; sload_3; sconst_3; ssub; sstore 4; aload_0; sconst_1; putfield_s 3; // short fr/bmartel/aram/AccessRuleMaster.currentNext aload_0; sload 4; putfield_s 4; // short fr/bmartel/aram/AccessRuleMaster.nextLength sload 4; sspush 128; if_scmpge L7; L6: aload_1; sconst_2; sload 4; s2b; bastore; aload_0; bspush -3; putfield_s 2; // short fr/bmartel/aram/AccessRuleMaster.dataOffset invokestatic 18; // javacard/framework/APDU.getCurrentAPDU()Ljavacard/framework/APDU; sconst_0; sload_3; invokevirtual 19; // javacard/framework/APDU.setOutgoingAndSend(SS)V goto L12; L7: sload 4; sspush 255; if_scmpge L9; L8: aload_1; sconst_3; aload_1; sconst_4; aload_1; arraylength; sconst_4; ssub; invokestatic 25; // javacard/framework/Util.arrayCopy([BS[BSS)S pop; aload_1; sconst_2; bspush -127; bastore; aload_1; sconst_3; sload 4; s2b; bastore; aload_0; bspush -4; putfield_s 2; // short fr/bmartel/aram/AccessRuleMaster.dataOffset invokestatic 18; // javacard/framework/APDU.getCurrentAPDU()Ljavacard/framework/APDU; sconst_0; sload_3; sconst_1; sadd; invokevirtual 19; // javacard/framework/APDU.setOutgoingAndSend(SS)V goto L12; L9: sload 4; sspush 32767; if_scmpge L11; L10: aload_1; sconst_2; aload_1; sconst_4; aload_1; arraylength; sconst_4; ssub; invokestatic 25; // javacard/framework/Util.arrayCopy([BS[BSS)S pop; aload_1; sconst_2; bspush -126; bastore; aload_1; sconst_3; sload 4; bspush 8; sshr; sspush 255; sand; s2b; bastore; aload_1; sconst_4; sload 4; sspush 255; sand; s2b; bastore; aload_0; bspush -5; putfield_s 2; // short fr/bmartel/aram/AccessRuleMaster.dataOffset invokestatic 18; // javacard/framework/APDU.getCurrentAPDU()Ljavacard/framework/APDU; sconst_0; sspush 255; invokevirtual 19; // javacard/framework/APDU.setOutgoingAndSend(SS)V goto L12; L11: sspush 27012; invokestatic 58; // javacard/framework/ISOException.throwIt(S)V L12: return; } .method private processGetSpecific()V { .stack 7; .locals 7; L0: invokestatic 66; // javacard/framework/APDU.getCurrentAPDUBuffer()[B astore_1; invokestatic 18; // javacard/framework/APDU.getCurrentAPDU()Ljavacard/framework/APDU; astore_2; aload_2; invokevirtual 60; // javacard/framework/APDU.setIncomingAndReceive()S aload_1; sconst_4; baload; sspush 255; sand; if_scmpeq L2; L1: sspush 26368; invokestatic 58; // javacard/framework/ISOException.throwIt(S)V L2: sconst_5; sstore_3; aload_0; aload_1; sload_3; sconst_1; sadd; bspush -31; bspush 52; invokevirtual 26; // fr/bmartel/aram/AccessRuleMaster.checkTLV([BSBS)S pop; sload_3; sconst_3; sadd; sstore 4; aload_0; aload_1; sload_3; sconst_3; sadd; bspush 79; bspush 16; invokevirtual 26; // fr/bmartel/aram/AccessRuleMaster.checkTLV([BSBS)S sstore 5; aload_0; aload_1; sload 5; bspush -63; bspush 32; invokevirtual 26; // fr/bmartel/aram/AccessRuleMaster.checkTLV([BSBS)S pop; aload_1; sload 4; sconst_2; sadd; aload_1; sload 4; sconst_1; sadd; baload; sload 5; sconst_2; sadd; aload_1; sload 5; sconst_1; sadd; baload; invokestatic 27; // fr/bmartel/aram/RuleEntry.searchAidHash([BSBSB)Lfr/bmartel/aram/RuleEntry; astore 6; aload 6; ifnonnull L4; L3: sspush 27272; invokestatic 58; // javacard/framework/ISOException.throwIt(S)V L4: aload_1; sconst_0; sconst_m1; bastore; aload_1; sconst_1; bspush 80; bastore; sconst_0; sspush 255; aload_1; sconst_3; aload 6; invokestatic 21; // fr/bmartel/aram/AramUtils.buildRefArDo(SS[BSLfr/bmartel/aram/RuleEntry;)B sstore 7; aload_1; sconst_2; sload 7; s2b; bastore; invokestatic 18; // javacard/framework/APDU.getCurrentAPDU()Ljavacard/framework/APDU; sconst_0; sload 7; sconst_3; sadd; invokevirtual 19; // javacard/framework/APDU.setOutgoingAndSend(SS)V return; } .method private processGetRefreshTag()V { .stack 5; .locals 1; L0: invokestatic 66; // javacard/framework/APDU.getCurrentAPDUBuffer()[B astore_1; aload_1; sconst_0; bspush -33; bastore; aload_1; sconst_1; bspush 32; bastore; aload_1; sconst_2; bspush 8; bastore; getfield_a_this 0; // reference fr/bmartel/aram/AccessRuleMaster.refreshTag sconst_0; aload_1; sconst_3; bspush 8; invokestatic 25; // javacard/framework/Util.arrayCopy([BS[BSS)S pop; invokestatic 18; // javacard/framework/APDU.getCurrentAPDU()Ljavacard/framework/APDU; sconst_0; bspush 11; invokevirtual 19; // javacard/framework/APDU.setOutgoingAndSend(SS)V return; } .method private processGetNext()V { .stack 5; .locals 7; L0: getfield_s_this 4; // short fr/bmartel/aram/AccessRuleMaster.nextLength sspush 255; sdiv; sstore_1; getfield_s_this 4; // short fr/bmartel/aram/AccessRuleMaster.nextLength sspush 255; srem; ifeq L2; L1: sinc 1 1; L2: getfield_s_this 3; // short fr/bmartel/aram/AccessRuleMaster.currentNext sload_1; if_scmpge_w L9; L3: invokestatic 66; // javacard/framework/APDU.getCurrentAPDUBuffer()[B astore_2; invokestatic 17; // fr/bmartel/aram/RuleEntry.getFirst()Lfr/bmartel/aram/RuleEntry; astore_3; sconst_0; sstore 4; aload_0; dup; getfield_s 2; // short fr/bmartel/aram/AccessRuleMaster.dataOffset sspush 255; sadd; putfield_s 2; // short fr/bmartel/aram/AccessRuleMaster.dataOffset sconst_0; sstore 5; getfield_s_this 4; // short fr/bmartel/aram/AccessRuleMaster.nextLength getfield_s_this 3; // short fr/bmartel/aram/AccessRuleMaster.currentNext sspush 255; smul; ssub; sstore 6; sload 6; sspush 255; if_scmple L5; L4: sspush 255; sstore 5; goto L6; L5: sspush 255; getfield_s_this 2; // short fr/bmartel/aram/AccessRuleMaster.dataOffset sspush 255; srem; ssub; sstore 7; sload 6; sload 7; sadd; sstore 5; L6: aload_3; ifnull L8; L7: getfield_s_this 2; // short fr/bmartel/aram/AccessRuleMaster.dataOffset getfield_s_this 2; // short fr/bmartel/aram/AccessRuleMaster.dataOffset sspush 255; sadd; aload_2; sload 4; aload_3; invokestatic 21; // fr/bmartel/aram/AramUtils.buildRefArDo(SS[BSLfr/bmartel/aram/RuleEntry;)B sstore 7; sload 4; sload 7; sadd; sstore 4; aload_3; invokevirtual 22; // fr/bmartel/aram/RuleEntry.getNext()Lfr/bmartel/aram/RuleEntry; astore_3; goto L6; L8: aload_0; dup; getfield_s 3; // short fr/bmartel/aram/AccessRuleMaster.currentNext sconst_1; sadd; putfield_s 3; // short fr/bmartel/aram/AccessRuleMaster.currentNext invokestatic 18; // javacard/framework/APDU.getCurrentAPDU()Ljavacard/framework/APDU; sconst_0; sload 5; invokevirtual 19; // javacard/framework/APDU.setOutgoingAndSend(SS)V goto L10; L9: sspush 27272; invokestatic 58; // javacard/framework/ISOException.throwIt(S)V L10: return; } .method private processCmdStoreData([B)V { .stack 2; .locals 1; L0: aload_1; sconst_2; baload; bspush -112; if_scmpne L14; L1: aload_1; sconst_3; baload; ifne L14; L2: sconst_5; sstore_2; aload_1; sload_2; baload; bspush -16; if_scmpne L4; L3: aload_0; aload_1; invokespecial 28; // fr/bmartel/aram/AccessRuleMaster.storeArDo([B)V goto L13; L4: aload_1; sload_2; baload; bspush -15; if_scmpne L6; L5: aload_0; aload_1; invokespecial 29; // fr/bmartel/aram/AccessRuleMaster.deleteArDo([B)V goto L13; L6: aload_1; sload_2; baload; bspush -14; if_scmpne L8; L7: aload_0; invokespecial 30; // fr/bmartel/aram/AccessRuleMaster.updateRefreshTag()V goto L13; L8: aload_1; sload_2; baload; bspush -95; if_scmpne L10; L9: aload_0; sconst_1; putfield_b 1; // boolean fr/bmartel/aram/AccessRuleMaster.aram_lock_status return; L10: aload_1; sload_2; baload; bspush -94; if_scmpne L12; L11: aload_0; sconst_0; putfield_b 1; // boolean fr/bmartel/aram/AccessRuleMaster.aram_lock_status return; L12: sspush 27012; invokestatic 58; // javacard/framework/ISOException.throwIt(S)V L13: goto L15; L14: sspush 27270; invokestatic 58; // javacard/framework/ISOException.throwIt(S)V L15: return; } .method private storeArDo([B)V { .stack 6; .locals 5; L0: sconst_5; sstore_2; aload_0; aload_1; sload_2; bspush -16; sspush 218; invokevirtual 26; // fr/bmartel/aram/AccessRuleMaster.checkTLV([BSBS)S pop; aload_0; aload_1; sload_2; sconst_2; sadd; bspush -30; sspush 216; invokevirtual 26; // fr/bmartel/aram/AccessRuleMaster.checkTLV([BSBS)S pop; aload_0; aload_1; sload_2; sconst_4; sadd; bspush -31; bspush 52; invokevirtual 26; // fr/bmartel/aram/AccessRuleMaster.checkTLV([BSBS)S pop; sload_2; bspush 6; sadd; sstore_3; aload_0; aload_1; sload_2; bspush 6; sadd; bspush 79; bspush 16; invokevirtual 26; // fr/bmartel/aram/AccessRuleMaster.checkTLV([BSBS)S sstore 4; aload_0; aload_1; sload 4; bspush -63; bspush 32; invokevirtual 26; // fr/bmartel/aram/AccessRuleMaster.checkTLV([BSBS)S sstore 5; aload_0; aload_1; sload 5; bspush -29; sspush 162; invokevirtual 26; // fr/bmartel/aram/AccessRuleMaster.checkTLV([BSBS)S pop; invokestatic 31; // javacard/framework/JCSystem.beginTransaction()V invokestatic 32; // fr/bmartel/aram/RuleEntry.getInstance()Lfr/bmartel/aram/RuleEntry; astore 6; aload 6; aload_1; sload_3; sconst_2; sadd; aload_1; sload_3; sconst_1; sadd; baload; invokevirtual 33; // fr/bmartel/aram/RuleEntry.setAid([BSB)V aload 6; aload_1; sload 4; sconst_2; sadd; aload_1; sload 4; sconst_1; sadd; baload; invokevirtual 34; // fr/bmartel/aram/RuleEntry.setHash([BSB)V aload 6; aload_1; sload 5; sconst_2; sadd; aload_1; sload 5; sconst_1; sadd; baload; invokevirtual 35; // fr/bmartel/aram/RuleEntry.setRule([BSB)V invokestatic 36; // javacard/framework/JCSystem.commitTransaction()V return; } .method private deleteArDo([B)V { .stack 9; .locals 5; L0: sconst_5; sstore_2; aload_0; aload_1; sload_2; bspush -15; sspush 216; invokevirtual 26; // fr/bmartel/aram/AccessRuleMaster.checkTLV([BSBS)S pop; aload_1; sload_2; sconst_1; sadd; baload; ifne L2; L1: invokestatic 37; // fr/bmartel/aram/RuleEntry.deleteAll()V goto_w L18; L2: aload_1; sload_2; sconst_2; sadd; baload; bspush 79; if_scmpne L6; L3: aload_0; aload_1; sload_2; sconst_2; sadd; bspush 79; bspush 16; invokevirtual 26; // fr/bmartel/aram/AccessRuleMaster.checkTLV([BSBS)S pop; sload_2; sconst_2; sadd; sstore_3; aload_1; sload_3; sconst_2; sadd; aload_1; sload_3; sconst_1; sadd; baload; invokestatic 38; // fr/bmartel/aram/RuleEntry.searchAid([BSB)Lfr/bmartel/aram/RuleEntry; astore 4; aload 4; ifnonnull L5; L4: sspush 27272; invokestatic 58; // javacard/framework/ISOException.throwIt(S)V L5: aload_1; sload_3; sconst_2; sadd; aload_1; sload_3; sconst_1; sadd; baload; invokestatic 39; // fr/bmartel/aram/RuleEntry.deleteAid([BSB)V goto_w L18; L6: aload_1; sload_2; sconst_2; sadd; baload; bspush -31; if_scmpne L10; L7: aload_0; aload_1; sload_2; sconst_2; sadd; bspush -31; bspush 52; invokevirtual 26; // fr/bmartel/aram/AccessRuleMaster.checkTLV([BSBS)S pop; sload_2; sconst_4; sadd; sstore_3; aload_0; aload_1; sload_2; sconst_4; sadd; bspush 79; bspush 16; invokevirtual 26; // fr/bmartel/aram/AccessRuleMaster.checkTLV([BSBS)S sstore 4; aload_0; aload_1; sload 4; bspush -63; bspush 32; invokevirtual 26; // fr/bmartel/aram/AccessRuleMaster.checkTLV([BSBS)S pop; aload_1; sload_3; sconst_2; sadd; aload_1; sload_3; sconst_1; sadd; baload; sload 4; sconst_2; sadd; aload_1; sload 4; sconst_1; sadd; baload; invokestatic 27; // fr/bmartel/aram/RuleEntry.searchAidHash([BSBSB)Lfr/bmartel/aram/RuleEntry; astore 5; aload 5; ifnonnull L9; L8: sspush 27272; invokestatic 58; // javacard/framework/ISOException.throwIt(S)V L9: aload_1; sload_3; sconst_2; sadd; aload_1; sload_3; sconst_1; sadd; baload; sload 4; sconst_2; sadd; aload_1; sload 4; sconst_1; sadd; baload; invokestatic 40; // fr/bmartel/aram/RuleEntry.deleteAidHash([BSBSB)V goto_w L18; L10: aload_1; sload_2; sconst_2; sadd; baload; bspush -30; if_scmpne_w L18; L11: aload_0; aload_1; sload_2; sconst_2; sadd; bspush -30; sspush 216; invokevirtual 26; // fr/bmartel/aram/AccessRuleMaster.checkTLV([BSBS)S pop; aload_0; aload_1; sload_2; sconst_4; sadd; bspush -31; bspush 52; invokevirtual 26; // fr/bmartel/aram/AccessRuleMaster.checkTLV([BSBS)S pop; sload_2; bspush 6; sadd; sstore_3; aload_0; aload_1; sload_2; bspush 6; sadd; bspush 79; bspush 16; invokevirtual 26; // fr/bmartel/aram/AccessRuleMaster.checkTLV([BSBS)S sstore 4; aload_0; aload_1; sload 4; bspush -63; bspush 32; invokevirtual 26; // fr/bmartel/aram/AccessRuleMaster.checkTLV([BSBS)S sstore 5; aload_0; aload_1; sload 5; bspush -29; sspush 162; invokevirtual 26; // fr/bmartel/aram/AccessRuleMaster.checkTLV([BSBS)S pop; aload_1; sload 5; sconst_1; sadd; baload; sconst_2; if_scmple L15; L12: aload_1; sload_3; sconst_2; sadd; aload_1; sload_3; sconst_1; sadd; baload; sload 4; sconst_2; sadd; aload_1; sload 4; sconst_1; sadd; baload; sload 5; sconst_2; sadd; aload_1; sload 5; sconst_1; sadd; baload; invokestatic 41; // fr/bmartel/aram/RuleEntry.searchAidHashRule([BSBSBSB)Lfr/bmartel/aram/RuleEntry; astore 6; aload 6; ifnonnull L14; L13: sspush 27272; invokestatic 58; // javacard/framework/ISOException.throwIt(S)V L14: aload_1; sload_3; sconst_2; sadd; aload_1; sload_3; sconst_1; sadd; baload; sload 4; sconst_2; sadd; aload_1; sload 4; sconst_1; sadd; baload; sload 5; sconst_2; sadd; aload_1; sload 5; sconst_1; sadd; baload; invokestatic 42; // fr/bmartel/aram/RuleEntry.deleteAidHashRule([BSBSBSB)V goto L18; L15: aload_1; sload_3; sconst_2; sadd; aload_1; sload_3; sconst_1; sadd; baload; sload 4; sconst_2; sadd; aload_1; sload 4; sconst_1; sadd; baload; invokestatic 27; // fr/bmartel/aram/RuleEntry.searchAidHash([BSBSB)Lfr/bmartel/aram/RuleEntry; astore 6; aload 6; ifnonnull L17; L16: sspush 27272; invokestatic 58; // javacard/framework/ISOException.throwIt(S)V L17: aload_1; sload_3; sconst_2; sadd; aload_1; sload_3; sconst_1; sadd; baload; sload 4; sconst_2; sadd; aload_1; sload 4; sconst_1; sadd; baload; invokestatic 40; // fr/bmartel/aram/RuleEntry.deleteAidHash([BSBSB)V L18: return; } .method private updateRefreshTag()V { .stack 4; .locals 1; L0: sconst_2; invokestatic 43; // javacard/security/RandomData.getInstance(B)Ljavacard/security/RandomData; astore_1; aload_1; getfield_a_this 0; // reference fr/bmartel/aram/AccessRuleMaster.refreshTag sconst_0; bspush 8; invokevirtual 44; // javacard/security/RandomData.generateData([BSS)V return; } .method checkTLV([BSBS)S 128 { .stack 4; .locals 1; L0: aload_1; sload_2; sinc 2 1; baload; sload_3; if_scmpeq L2; L1: sspush 27012; invokestatic 58; // javacard/framework/ISOException.throwIt(S)V L2: aload_1; sload_2; sinc 2 1; baload; sstore 5; sload 5; sload 4; if_scmple L4; L3: sspush 27012; invokestatic 58; // javacard/framework/ISOException.throwIt(S)V L4: sload_2; sload 5; sadd; sreturn; } .method public processData([BSS)V 8 { .stack 2; .locals 0; L0: aload_0; aload_1; invokespecial 67; // fr/bmartel/aram/AccessRuleMaster.processCmdStoreData([B)V return; } } .class public AramUtils 1 extends 3.0 { // extends java/lang/Object .publicMethodTable 1 { equals(Ljava/lang/Object;)Z; } .packageMethodTable 0 { } .method public ()V 0 { .stack 1; .locals 0; L0: aload_0; invokespecial 45; // java/lang/Object.()V return; } .method public static buildRefArDo(SS[BSLfr/bmartel/aram/RuleEntry;)B 1 { .stack 5; .locals 2; L0: sload_3; sload_0; if_scmplt L3; L1: sload_3; sload_1; if_scmpge L3; L2: aload_2; sload_3; sload_0; ssub; bspush -30; bastore; L3: sinc 3 1; sload_0; sload_1; aload_2; sload_3; sconst_1; sadd; aload 4; invokestatic 46; // fr/bmartel/aram/AramUtils.buildRefDo(SS[BSLfr/bmartel/aram/RuleEntry;)B sstore 5; sload_0; sload_1; aload_2; sload_3; sload 5; sadd; sconst_1; sadd; aload 4; invokestatic 47; // fr/bmartel/aram/AramUtils.buildArDo(SS[BSLfr/bmartel/aram/RuleEntry;)B sstore 6; sload_3; sload_0; if_scmplt L6; L4: sload_3; sload_1; if_scmpge L6; L5: aload_2; sload_3; sload_0; ssub; sload 5; sload 6; sadd; s2b; bastore; L6: sload 5; sload 6; sadd; sconst_2; sadd; s2b; sreturn; } .method public static buildRefDo(SS[BSLfr/bmartel/aram/RuleEntry;)B 2 { .stack 5; .locals 2; L0: sload_3; sload_0; if_scmplt L3; L1: sload_3; sload_1; if_scmpge L3; L2: aload_2; sload_3; sload_0; ssub; bspush -31; bastore; L3: sinc 3 1; sload_0; sload_1; aload_2; sload_3; sconst_1; sadd; aload 4; invokestatic 48; // fr/bmartel/aram/AramUtils.buildAidRefDo(SS[BSLfr/bmartel/aram/RuleEntry;)B sstore 5; sload_0; sload_1; aload_2; sload_3; sload 5; sadd; sconst_1; sadd; aload 4; invokestatic 49; // fr/bmartel/aram/AramUtils.buildHashRefDo(SS[BSLfr/bmartel/aram/RuleEntry;)B sstore 6; sload_3; sload_0; if_scmplt L6; L4: sload_3; sload_1; if_scmpge L6; L5: aload_2; sload_3; sload_0; ssub; sload 5; sload 6; sadd; s2b; bastore; L6: sload 5; sload 6; sadd; sconst_2; sadd; s2b; sreturn; } .method public static buildArDo(SS[BSLfr/bmartel/aram/RuleEntry;)B 3 { .stack 5; .locals 0; L0: sload_3; sload_0; if_scmplt L3; L1: sload_3; sload_1; if_scmpge L3; L2: aload_2; sload_3; sload_0; ssub; bspush -29; bastore; L3: sinc 3 1; sload_3; sload_0; if_scmplt L6; L4: sload_3; sload_1; if_scmpge L6; L5: aload_2; sload_3; sload_0; ssub; aload 4; invokevirtual 50; // fr/bmartel/aram/RuleEntry.getRuleLength()B bastore; L6: sinc 3 1; aload 4; aload_2; sload_3; sload_0; sload_1; invokevirtual 51; // fr/bmartel/aram/RuleEntry.getRule([BSSS)S pop; aload 4; invokevirtual 50; // fr/bmartel/aram/RuleEntry.getRuleLength()B sconst_2; sadd; s2b; sreturn; } .method public static buildAidRefDo(SS[BSLfr/bmartel/aram/RuleEntry;)B 4 { .stack 5; .locals 0; L0: sload_3; sload_0; if_scmplt L3; L1: sload_3; sload_1; if_scmpge L3; L2: aload_2; sload_3; sload_0; ssub; bspush 79; bastore; L3: sinc 3 1; sload_3; sload_0; if_scmplt L6; L4: sload_3; sload_1; if_scmpge L6; L5: aload_2; sload_3; sload_0; ssub; aload 4; invokevirtual 52; // fr/bmartel/aram/RuleEntry.getAidLength()B bastore; L6: sinc 3 1; aload 4; aload_2; sload_3; sload_0; sload_1; invokevirtual 53; // fr/bmartel/aram/RuleEntry.getAid([BSSS)S pop; aload 4; invokevirtual 52; // fr/bmartel/aram/RuleEntry.getAidLength()B sconst_2; sadd; s2b; sreturn; } .method public static buildHashRefDo(SS[BSLfr/bmartel/aram/RuleEntry;)B 5 { .stack 5; .locals 0; L0: sload_3; sload_0; if_scmplt L3; L1: sload_3; sload_1; if_scmpge L3; L2: aload_2; sload_3; sload_0; ssub; bspush -63; bastore; L3: sinc 3 1; sload_3; sload_0; if_scmplt L6; L4: sload_3; sload_1; if_scmpge L6; L5: aload_2; sload_3; sload_0; ssub; aload 4; invokevirtual 54; // fr/bmartel/aram/RuleEntry.getHashLength()B bastore; L6: sinc 3 1; aload 4; aload_2; sload_3; sload_0; sload_1; invokevirtual 55; // fr/bmartel/aram/RuleEntry.getHash([BSSS)S pop; aload 4; invokevirtual 54; // fr/bmartel/aram/RuleEntry.getHashLength()B sconst_2; sadd; s2b; sreturn; } } .class public RuleEntry 2 extends 3.0 { // extends java/lang/Object .fields { private RuleEntry next 0; // Lfr/bmartel/aram/RuleEntry; private byte[] aid 1; // [B private byte[] hash 2; // [B private byte[] rule 3; // [B private byte aidLength 4; // B private byte hashLength 5; // B private byte ruleLength 6; // B private static RuleEntry first; // Lfr/bmartel/aram/RuleEntry; private static RuleEntry deleted; // Lfr/bmartel/aram/RuleEntry; } .publicMethodTable 1 { equals(Ljava/lang/Object;)Z; getAidLength()B; getHashLength()B; getRuleLength()B; getNext()Lfr/bmartel/aram/RuleEntry;; setAid([BSB)V; setHash([BSB)V; setRule([BSB)V; } .packageMethodTable 0 { getAid([BS)S; getAid([BSSS)S; getHash([BS)S; getHash([BSSS)S; getRule([BS)S; getRule([BSSS)S; getOffsetData(B[B[BSSS)S; } .method private ()V { .stack 2; .locals 0; L0: aload_0; invokespecial 45; // java/lang/Object.()V aload_0; bspush 16; newarray 11; putfield_a 5; // reference fr/bmartel/aram/RuleEntry.aid aload_0; bspush 32; newarray 11; putfield_a 6; // reference fr/bmartel/aram/RuleEntry.hash aload_0; sspush 162; newarray 11; putfield_a 7; // reference fr/bmartel/aram/RuleEntry.rule aload_0; getstatic_a 59; // reference fr/bmartel/aram/RuleEntry.first putfield_a 8; // reference fr/bmartel/aram/RuleEntry.next aload_0; putstatic_a 59; // reference fr/bmartel/aram/RuleEntry.first return; } .method static getInstance()Lfr/bmartel/aram/RuleEntry; { .stack 2; .locals 1; L0: getstatic_a 61; // reference fr/bmartel/aram/RuleEntry.deleted ifnonnull L2; L1: new 62; // fr/bmartel/aram/RuleEntry dup; invokespecial 63; // fr/bmartel/aram/RuleEntry.()V areturn; L2: getstatic_a 61; // reference fr/bmartel/aram/RuleEntry.deleted astore_0; aload_0; getfield_a 8; // reference fr/bmartel/aram/RuleEntry.next putstatic_a 61; // reference fr/bmartel/aram/RuleEntry.deleted aload_0; getstatic_a 59; // reference fr/bmartel/aram/RuleEntry.first putfield_a 8; // reference fr/bmartel/aram/RuleEntry.next aload_0; putstatic_a 59; // reference fr/bmartel/aram/RuleEntry.first aload_0; areturn; } .method static searchAid([BSB)Lfr/bmartel/aram/RuleEntry; { .stack 5; .locals 1; L0: getstatic_a 59; // reference fr/bmartel/aram/RuleEntry.first astore_3; L1: aload_3; ifnull L7; L2: aload_3; getfield_b 9; // byte fr/bmartel/aram/RuleEntry.aidLength sload_2; if_scmpeq L4; L3: goto L6; L4: aload_3; getfield_a 5; // reference fr/bmartel/aram/RuleEntry.aid sconst_0; aload_0; sload_1; sload_2; invokestatic 65; // javacard/framework/Util.arrayCompare([BS[BSS)B ifne L6; L5: aload_3; areturn; L6: aload_3; getfield_a 8; // reference fr/bmartel/aram/RuleEntry.next astore_3; goto L1; L7: aconst_null; areturn; } .method static searchAidHash([BSBSB)Lfr/bmartel/aram/RuleEntry; { .stack 5; .locals 1; L0: getstatic_a 59; // reference fr/bmartel/aram/RuleEntry.first astore 5; L1: aload 5; ifnull L9; L2: aload 5; getfield_b 9; // byte fr/bmartel/aram/RuleEntry.aidLength sload_2; if_scmpne L8; L3: aload 5; getfield_b 10; // byte fr/bmartel/aram/RuleEntry.hashLength sload 4; if_scmpeq L5; L4: goto L8; L5: aload 5; getfield_a 5; // reference fr/bmartel/aram/RuleEntry.aid sconst_0; aload_0; sload_1; sload_2; invokestatic 65; // javacard/framework/Util.arrayCompare([BS[BSS)B ifne L8; L6: aload 5; getfield_a 6; // reference fr/bmartel/aram/RuleEntry.hash sconst_0; aload_0; sload_3; sload 4; invokestatic 65; // javacard/framework/Util.arrayCompare([BS[BSS)B ifne L8; L7: aload 5; areturn; L8: aload 5; getfield_a 8; // reference fr/bmartel/aram/RuleEntry.next astore 5; goto L1; L9: aconst_null; areturn; } .method static searchAidHashRule([BSBSBSB)Lfr/bmartel/aram/RuleEntry; { .stack 5; .locals 1; L0: getstatic_a 59; // reference fr/bmartel/aram/RuleEntry.first astore 7; L1: aload 7; ifnull L11; L2: aload 7; getfield_b 9; // byte fr/bmartel/aram/RuleEntry.aidLength sload_2; if_scmpne L10; L3: aload 7; getfield_b 10; // byte fr/bmartel/aram/RuleEntry.hashLength sload 4; if_scmpne L10; L4: aload 7; getfield_b 11; // byte fr/bmartel/aram/RuleEntry.ruleLength sload 6; if_scmpeq L6; L5: goto L10; L6: aload 7; getfield_a 5; // reference fr/bmartel/aram/RuleEntry.aid sconst_0; aload_0; sload_1; sload_2; invokestatic 65; // javacard/framework/Util.arrayCompare([BS[BSS)B ifne L10; L7: aload 7; getfield_a 6; // reference fr/bmartel/aram/RuleEntry.hash sconst_0; aload_0; sload_3; sload 4; invokestatic 65; // javacard/framework/Util.arrayCompare([BS[BSS)B ifne L10; L8: aload 7; getfield_a 7; // reference fr/bmartel/aram/RuleEntry.rule sconst_0; aload_0; sload 5; sload 6; invokestatic 65; // javacard/framework/Util.arrayCompare([BS[BSS)B ifne L10; L9: aload 7; areturn; L10: aload 7; getfield_a 8; // reference fr/bmartel/aram/RuleEntry.next astore 7; goto L1; L11: aconst_null; areturn; } .method public static getFirst()Lfr/bmartel/aram/RuleEntry; 0 { .stack 1; .locals 0; L0: getstatic_a 59; // reference fr/bmartel/aram/RuleEntry.first areturn; } .method private remove()V { .stack 2; .locals 1; L0: getstatic_a 59; // reference fr/bmartel/aram/RuleEntry.first aload_0; if_acmpne L2; L1: getfield_a_this 8; // reference fr/bmartel/aram/RuleEntry.next putstatic_a 59; // reference fr/bmartel/aram/RuleEntry.first goto L7; L2: getstatic_a 59; // reference fr/bmartel/aram/RuleEntry.first astore_1; L3: aload_1; ifnull L7; L4: aload_1; getfield_a 8; // reference fr/bmartel/aram/RuleEntry.next aload_0; if_acmpne L6; L5: aload_1; getfield_a_this 8; // reference fr/bmartel/aram/RuleEntry.next putfield_a 8; // reference fr/bmartel/aram/RuleEntry.next L6: aload_1; getfield_a 8; // reference fr/bmartel/aram/RuleEntry.next astore_1; goto L3; L7: return; } .method private recycle()V { .stack 2; .locals 0; L0: aload_0; getstatic_a 61; // reference fr/bmartel/aram/RuleEntry.deleted putfield_a 8; // reference fr/bmartel/aram/RuleEntry.next aload_0; sconst_0; putfield_b 9; // byte fr/bmartel/aram/RuleEntry.aidLength aload_0; sconst_0; putfield_b 10; // byte fr/bmartel/aram/RuleEntry.hashLength aload_0; sconst_0; putfield_b 11; // byte fr/bmartel/aram/RuleEntry.ruleLength aload_0; putstatic_a 61; // reference fr/bmartel/aram/RuleEntry.deleted return; } .method static deleteAll()V { .stack 1; .locals 1; L0: getstatic_a 59; // reference fr/bmartel/aram/RuleEntry.first astore_0; L1: aload_0; ifnull L3; L2: invokestatic 31; // javacard/framework/JCSystem.beginTransaction()V aload_0; invokespecial 68; // fr/bmartel/aram/RuleEntry.remove()V aload_0; invokespecial 69; // fr/bmartel/aram/RuleEntry.recycle()V invokestatic 36; // javacard/framework/JCSystem.commitTransaction()V getstatic_a 59; // reference fr/bmartel/aram/RuleEntry.first astore_0; goto L1; L3: return; } .method static deleteAid([BSB)V { .stack 3; .locals 1; L0: aload_0; sload_1; sload_2; invokestatic 38; // fr/bmartel/aram/RuleEntry.searchAid([BSB)Lfr/bmartel/aram/RuleEntry; astore_3; L1: aload_3; ifnull L3; L2: invokestatic 31; // javacard/framework/JCSystem.beginTransaction()V aload_3; invokespecial 68; // fr/bmartel/aram/RuleEntry.remove()V aload_3; invokespecial 69; // fr/bmartel/aram/RuleEntry.recycle()V invokestatic 36; // javacard/framework/JCSystem.commitTransaction()V aload_0; sload_1; sload_2; invokestatic 38; // fr/bmartel/aram/RuleEntry.searchAid([BSB)Lfr/bmartel/aram/RuleEntry; astore_3; goto L1; L3: return; } .method static deleteAidHash([BSBSB)V { .stack 5; .locals 1; L0: aload_0; sload_1; sload_2; sload_3; sload 4; invokestatic 27; // fr/bmartel/aram/RuleEntry.searchAidHash([BSBSB)Lfr/bmartel/aram/RuleEntry; astore 5; L1: aload 5; ifnull L3; L2: invokestatic 31; // javacard/framework/JCSystem.beginTransaction()V aload 5; invokespecial 68; // fr/bmartel/aram/RuleEntry.remove()V aload 5; invokespecial 69; // fr/bmartel/aram/RuleEntry.recycle()V invokestatic 36; // javacard/framework/JCSystem.commitTransaction()V aload_0; sload_1; sload_2; sload_3; sload 4; invokestatic 27; // fr/bmartel/aram/RuleEntry.searchAidHash([BSBSB)Lfr/bmartel/aram/RuleEntry; astore 5; goto L1; L3: return; } .method static deleteAidHashRule([BSBSBSB)V { .stack 7; .locals 1; L0: aload_0; sload_1; sload_2; sload_3; sload 4; sload 5; sload 6; invokestatic 41; // fr/bmartel/aram/RuleEntry.searchAidHashRule([BSBSBSB)Lfr/bmartel/aram/RuleEntry; astore 7; L1: aload 7; ifnull L3; L2: invokestatic 31; // javacard/framework/JCSystem.beginTransaction()V aload 7; invokespecial 68; // fr/bmartel/aram/RuleEntry.remove()V aload 7; invokespecial 69; // fr/bmartel/aram/RuleEntry.recycle()V invokestatic 36; // javacard/framework/JCSystem.commitTransaction()V aload_0; sload_1; sload_2; sload_3; sload 4; sload 5; sload 6; invokestatic 41; // fr/bmartel/aram/RuleEntry.searchAidHashRule([BSBSBSB)Lfr/bmartel/aram/RuleEntry; astore 7; goto L1; L3: return; } .method getAid([BS)S 128 { .stack 5; .locals 0; L0: getfield_a_this 5; // reference fr/bmartel/aram/RuleEntry.aid sconst_0; aload_1; sload_2; getfield_b_this 9; // byte fr/bmartel/aram/RuleEntry.aidLength invokestatic 25; // javacard/framework/Util.arrayCopy([BS[BSS)S pop; sload_2; getfield_b_this 9; // byte fr/bmartel/aram/RuleEntry.aidLength sadd; sreturn; } .method getAid([BSSS)S 129 { .stack 7; .locals 0; L0: aload_0; getfield_b_this 9; // byte fr/bmartel/aram/RuleEntry.aidLength getfield_a_this 5; // reference fr/bmartel/aram/RuleEntry.aid aload_1; sload_2; sload_3; sload 4; invokevirtual 70; // fr/bmartel/aram/RuleEntry.getOffsetData(B[B[BSSS)S sreturn; } .method getHash([BS)S 130 { .stack 5; .locals 0; L0: getfield_a_this 6; // reference fr/bmartel/aram/RuleEntry.hash sconst_0; aload_1; sload_2; getfield_b_this 10; // byte fr/bmartel/aram/RuleEntry.hashLength invokestatic 25; // javacard/framework/Util.arrayCopy([BS[BSS)S pop; sload_2; getfield_b_this 10; // byte fr/bmartel/aram/RuleEntry.hashLength sadd; sreturn; } .method getHash([BSSS)S 131 { .stack 7; .locals 0; L0: aload_0; getfield_b_this 10; // byte fr/bmartel/aram/RuleEntry.hashLength getfield_a_this 6; // reference fr/bmartel/aram/RuleEntry.hash aload_1; sload_2; sload_3; sload 4; invokevirtual 70; // fr/bmartel/aram/RuleEntry.getOffsetData(B[B[BSSS)S sreturn; } .method getRule([BS)S 132 { .stack 5; .locals 0; L0: getfield_a_this 7; // reference fr/bmartel/aram/RuleEntry.rule sconst_0; aload_1; sload_2; getfield_b_this 11; // byte fr/bmartel/aram/RuleEntry.ruleLength invokestatic 25; // javacard/framework/Util.arrayCopy([BS[BSS)S pop; sload_2; getfield_b_this 11; // byte fr/bmartel/aram/RuleEntry.ruleLength sadd; sreturn; } .method getRule([BSSS)S 133 { .stack 7; .locals 0; L0: aload_0; getfield_b_this 11; // byte fr/bmartel/aram/RuleEntry.ruleLength getfield_a_this 7; // reference fr/bmartel/aram/RuleEntry.rule aload_1; sload_2; sload_3; sload 4; invokevirtual 70; // fr/bmartel/aram/RuleEntry.getOffsetData(B[B[BSSS)S sreturn; } .method getOffsetData(B[B[BSSS)S 134 { .stack 7; .locals 0; L0: sload 4; sload 5; if_scmplt L5; L1: sload 4; sload 6; if_scmpge L5; L2: sload_1; sload 6; sload 4; ssub; if_scmpgt L4; L3: aload_2; sconst_0; aload_3; sload 4; sload 5; ssub; sload_1; invokestatic 25; // javacard/framework/Util.arrayCopy([BS[BSS)S pop; goto L8; L4: aload_2; sconst_0; aload_3; sload 4; sload 5; ssub; sload 6; sload 4; ssub; invokestatic 25; // javacard/framework/Util.arrayCopy([BS[BSS)S pop; goto L8; L5: sload 4; sload_1; sadd; sload 5; if_scmple L8; L6: sload 4; sload_1; sadd; sload 6; if_scmpge L8; L7: aload_2; sload 5; sload 4; ssub; aload_3; sconst_0; sload_1; sload 5; sload 4; ssub; ssub; invokestatic 25; // javacard/framework/Util.arrayCopy([BS[BSS)S pop; L8: sload 4; sload_1; sadd; sreturn; } .method public getAidLength()B 1 { .stack 1; .locals 0; L0: getfield_b_this 9; // byte fr/bmartel/aram/RuleEntry.aidLength sreturn; } .method public getHashLength()B 2 { .stack 1; .locals 0; L0: getfield_b_this 10; // byte fr/bmartel/aram/RuleEntry.hashLength sreturn; } .method public getRuleLength()B 3 { .stack 1; .locals 0; L0: getfield_b_this 11; // byte fr/bmartel/aram/RuleEntry.ruleLength sreturn; } .method public getNext()Lfr/bmartel/aram/RuleEntry; 4 { .stack 1; .locals 0; L0: getfield_a_this 8; // reference fr/bmartel/aram/RuleEntry.next areturn; } .method public setAid([BSB)V 5 { .stack 5; .locals 0; L0: aload_1; sload_2; getfield_a_this 5; // reference fr/bmartel/aram/RuleEntry.aid sconst_0; sload_3; invokestatic 25; // javacard/framework/Util.arrayCopy([BS[BSS)S pop; aload_0; sload_3; putfield_b 9; // byte fr/bmartel/aram/RuleEntry.aidLength return; } .method public setHash([BSB)V 6 { .stack 5; .locals 0; L0: aload_1; sload_2; getfield_a_this 6; // reference fr/bmartel/aram/RuleEntry.hash sconst_0; sload_3; invokestatic 25; // javacard/framework/Util.arrayCopy([BS[BSS)S pop; aload_0; sload_3; putfield_b 10; // byte fr/bmartel/aram/RuleEntry.hashLength return; } .method public setRule([BSB)V 7 { .stack 5; .locals 0; L0: aload_1; sload_2; getfield_a_this 7; // reference fr/bmartel/aram/RuleEntry.rule sconst_0; sload_3; invokestatic 25; // javacard/framework/Util.arrayCopy([BS[BSS)S pop; aload_0; sload_3; putfield_b 11; // byte fr/bmartel/aram/RuleEntry.ruleLength return; } } }