powerup; // Select the installer applet 0x00 0xA4 0x04 0x00 0x09 0xa0 0x00 0x00 0x00 0x62 0x03 0x01 0x08 0x01 0x7F; // 90 00 = SW_NO_ERROR // begin installer command 0x80 0xB0 0x00 0x00 0x00 0x7F; // create wallet applet 0x80 0xB8 0x00 0x00 0x11 0x0a 0xa0 0x0 0x0 0x0 0x62 0x3 0x1 0xc 0x6 0x1 0x05 0x01 0x02 0x03 0x04 0x05 0x7F; // end installer command 0x80 0xBA 0x00 0x00 0x00 0x7F; ///////////////////////////////////////////////////////////////////// // Initialize Wallet ///////////////////////////////////////////////////////////////////// //Select Wallet 0x00 0xA4 0x04 0x00 0x0a 0xa0 0x0 0x0 0x0 0x62 0x3 0x1 0xc 0x6 0x1 0x7F; // 90 00 = SW_NO_ERROR //Verify user pin 0xB0 0x20 0x00 0x00 0x05 0x01 0x02 0x03 0x04 0x05 0x7F; //90 00 = SW_NO_ERROR //Get wallet balance 0xB0 0x50 0x00 0x00 0x00 0x02; //0x00 0x00 0x00 0x00 0x90 0x00 = Balance = 0 and SW_ON_ERROR //Attemp to debit from an empty account 0xB0 0x40 0x00 0x00 0x01 0x64 0x7F; //0x6A85 = SW_NEGATIVE_BALANCE //Credit $100 to the empty account 0xB0 0x30 0x00 0x00 0x01 0x64 0x7F; //0x9000 = SW_NO_ERROR //Get Balance 0xB0 0x50 0x00 0x00 0x00 0x02; //0x00 0x64 0x9000 = Balance = 100 and SW_NO_ERROR //Debit $50 from the account 0xB0 0x40 0x00 0x00 0x01 0x32 0x7F; //0x9000 = SW_NO_ERROR //Get Balance 0xB0 0x50 0x00 0x00 0x00 0x02; //0x00 0x32 0x9000 = Balance = 50 and SW_NO_ERROR //Credit $128 to the account 0xB0 0x30 0x00 0x00 0x01 0x80 0x7F; //0x6A83 = SW_INVALID_TRANSACTION_AMOUNT //Get Balance 0xB0 0x50 0x00 0x00 0x00 0x02; //0x00 0x32 0x9000 = Balance = 50 and SW_NO_ERROR //Debit $51 from the account 0xB0 0x40 0x00 0x00 0x01 0x33 0x7F; //0x6A85 = SW_NEGATIVE_BALANC //Get Balance 0xB0 0x50 0x00 0x00 0x00 0x02; //0x00 0x32 0x9000 = Balance = 50 and SW_NO_ERROR //Debit $128 from the account 0xB0 0x40 0x00 0x00 0x01 0x80 0x7F; //0x6A83 = SW_INVALID_TRANSACTION_AMOUNT //Get Balance 0xB0 0x50 0x00 0x00 0x00 0x02; //0x00 0x32 0x9000 = Balance = 50 and SW_NO_ERROR //Reselect Wallet applet so that userpin is reset 0x00 0xA4 0x04 0x00 0x0a 0xa0 0x0 0x0 0x0 0x62 0x3 0x1 0xc 0x6 0x1 0x7F; // 90 00 = SW_NO_ERROR //Credit $127 to the account before pin verification 0xB0 0x30 0x00 0x00 0x01 0x7F 0x7F; //0x6301 = SW_PIN_VERIFICATION_REQUIRED //Verify User pin with wrong pin value 0xB0 0x20 0x00 0x00 0x04 0x01 0x03 0x02 0x66 0x7F; //0x6300 = SW_VERIFICATION_FAILED //Verify user pin again with correct pin value //0xB0 0x20 0x00 0x00 0x08 0xF2 0x34 0x12 0x34 0x56 0x10 0x01 0x01 0x7F; 0xB0 0x20 0x00 0x00 0x05 0x01 0x02 0x03 0x04 0x05 0x7F; //0x9000 = SW_NO_ERROR //Get balance with incorrrect LE value 0xB0 0x50 0x00 0x00 0x00 0x01; //0x6700 = ISO7816.SW_WRONG_LENGTH //Get balance 0xB0 0x50 0x00 0x00 0x00 0x02; //0x00 0x32 0x9000 = Balance = 50 and SW_NO_ERROR // *** SCRIPT END *** powerdown;