Simulation using Eclipse plugin for JCOP tools

Dear All,
In search for a simulation environment for java card applet development I tried to use Eclipse plugin for JCOP tools.
The samples which comes with the JCOP tools works fine but when try to debug my applet I receive the error: Wrong Data 6A 80.
Generic JCOP v2.4.1 is selected for Java Card Simulation.
Following is the JCOP Shell screen:
cm- /term "Remote|localhost:8050"
--Opening terminal
/card -a a000000003000000 -c com.ibm.jc.CardManagerresetCard with timeout: 0 (ms)
--Waiting for card...
ATR=3B F8 13 00 00 81 31 FE 45 4A 43 4F 50 76 32 34 ;.....1.EJCOPv24
31 B7 1.
IOCTL().
ATR: T=1, FI=1/DI=3 (93clk/etu), N=0, IFSC=254, BWI=4/CWI=5, Hist="JCOPv241"
=> 00 A4 04 00 08 A0 00 00 00 03 00 00 00 00 ..............
(908058 nsec)
<= 6F 65 84 08 A0 00 00 00 03 00 00 00 A5 59 9F 65 oe...........Y.e
01 FF 9F 6E 06 47 91 92 18 00 00 73 4A 06 07 2A ...n.G.....sJ..*
86 48 86 FC 6B 01 60 0C 06 0A 2A 86 48 86 FC 6B .H..k.`...*.H..k
02 02 01 01 63 09 06 07 2A 86 48 86 FC 6B 03 64 ....c...*.H..k.d
0B 06 09 2A 86 48 86 FC 6B 04 02 15 65 0B 06 09 ...*.H..k...e...
2B 85 10 86 48 64 02 01 03 66 0C 06 0A 2B 06 01 +...Hd...f...+..
04 01 2A 02 6E 01 02 90 00 ..*.n....
Status: No Error
cm> set-key 255/1/DES-ECB/404142434445464748494a4b4c4d4e4f 255/2/DES-ECB/404142434445464748494a4b4c4d4e4f 255/3/DES-ECB/404142434445464748494a4b4c4d4e4f
cm> init-update 255
=> 80 50 00 00 08 B1 04 15 2B 41 3F 62 AB 00 .P......+A?b..
(2668 usec)
<= 00 00 F9 02 71 E3 BB AD BD CD FF 02 00 00 3D 02 ....q.........=.
9C 31 C7 89 AD 44 8E 13 17 15 2E 5A 90 00 .1...D.....Z..
Status: No Error
cm> ext-auth plain
=> 84 82 00 00 10 CE 6C DC D2 8C BE 5E 33 EC 58 D0 ......l....^3.X.
57 3A 52 D2 24 W:R.$
(2288 usec)
<= 90 00 ..
Status: No Error
cm> delete -r a00000006203010c04
=> 80 E4 00 80 0B 4F 09 A0 00 00 00 62 03 01 0C 04 .....O.....b....
00 .
(1084 usec)
<= 6A 88 j.
Status: Reference data not found
jcshell: Error code: 6a88 (Reference data not found)
jcshell: Wrong response APDU: 6A88
Ignoring expected error
cm> upload -d -b 250 "D:\JCOP\eclipse\projects\DigitalTachograph\bin\digitaltachograph\javacard\digitaltachograph.cap"
=> 80 E6 02 00 16 09 A0 00 00 00 62 03 01 0C 04 08 ..........b.....
A0 00 00 00 03 00 00 00 00 00 00 00 ............
(2100 usec)
<= 00 90 00 ...
Status: No Error
=> 80 E8 00 00 FA C4 82 84 42 01 00 25 DE CA FF ED ........B..%....
02 02 04 00 01 09 A0 00 00 00 62 03 01 0C 04 11 ..........b.....
64 69 67 69 74 61 6C 74 61 63 68 6F 67 72 61 70 digitaltachograp
68 02 00 21 00 25 00 21 00 0E 00 29 03 3E 00 CD h..!.%.!...).>..
23 D2 01 BB 04 44 00 00 09 E3 4B E5 00 11 00 05 #....D....K.....
01 A2 04 01 00 04 00 29 04 00 01 07 A0 00 00 00 .......)........
62 00 01 02 01 07 A0 00 00 00 62 01 01 02 01 07 b.........b.....
A0 00 00 00 62 01 02 02 01 07 A0 00 00 00 62 02 ....b.........b.
01 03 00 0E 01 0A A0 00 00 00 62 03 01 0C 04 01 ..........b.....
01 DF 06 00 CD 00 00 00 80 00 00 FF 00 01 00 00 ................
00 01 81 03 13 00 12 07 03 00 00 02 01 03 06 0B ................
8C 81 00 00 00 80 00 0B 00 0B 01 01 00 00 0B F9 ................
00 80 00 11 00 0F 01 01 00 10 0E A9 0D D4 0D F7 ................
0E 07 0E 18 0E 26 0E 35 0E 44 0E 50 0E 72 0E 81 .....&.5.D.P.r..
0E 90 0E 9B 0E F5 11 05 11 1A 11 50 00 80 00 05 ...........P....
00 04 01 04 00 01 13 AF 13 B5 13 BA 14 0C 13 00 ................
(6775 usec)
<= 6A 80 j.
Status: Wrong data
jcshell: Error code: 6a80 (Wrong data)
jcshell: Wrong response APDU: 6A80
Unexpected error; aborting execution
I will be very happy if you can help me. I am desperately in need of a working debugging environment.
Thanks in advance!
Kind regards,
Mehmet

     * Processes incoming READ_BINARY APDUs. Returns data of the currently
     * selected file.
     * @param apdu   where the offset is carried in header bytes p1 and p2.
     * @param le  expected length by terminal
     * @return length of the response APDU
    private short processReadBinary(APDU apdu, boolean protectedApdu,  short leUnprotected) {
        if (!hasFileSelected()) {
            ISOException.throwIt(SW_CONDITIONS_NOT_SATISFIED);
        byte[] buffer = apdu.getBuffer();
        // retrieve p1p2 from apdu buffer
        byte p1 = buffer[OFFSET_P1];
        byte p2 = buffer[OFFSET_P2];
        short offset = Util.makeShort(p1, p2);     // offset encoded in P1/P2, 15 lowest bit
        // offset encoded in P1/P2, 15 lowest bit
        // check if le != 0 <-- no response expected
        if (leUnprotected == 0) {
            ISOException.throwIt(ISO7816.SW_WRONG_LENGTH);
        if (selectedFile == null) {
            ISOException.throwIt(ISO7816.SW_FILE_NOT_FOUND);
        if ((selectedFile.getAccessConditions() & READ_REQUIRES_SM) == READ_REQUIRES_SM) {
            if(!protectedApdu)
               ISOException.throwIt(ISO7816.SW_SECURITY_STATUS_NOT_SATISFIED);
        short fileSize = (short) selectedFile.getFileLength();
        // check offset
        if (offset >= fileSize) {
            ISOException.throwIt(ISO7816.SW_INCORRECT_P1P2);
        // check expected length
        if ((short) (offset + leUnprotected) > fileSize) {
            ISOException.throwIt(ISO7816.SW_WRONG_LENGTH);
            //ISOException.throwIt(SW_TAMAM);
        short bufferOffset = 0;
        crypto.setEncryptionStatus(isSelectedFileEncrypted());
        if (protectedApdu) {
            bufferOffset = crypto.getApduBufferOffsetDT(leUnprotected);
            if(isSelectedFileEncrypted())
               bufferOffset = crypto.getApduBufferOffset(leUnprotected);
            apdu.setOutgoing();
        Util.arrayCopyNonAtomic(selectedFile.getData(), offset, buffer, bufferOffset, leUnprotected);
        return leUnprotected;
     * Processes and UPDATE_BINARY apdu. Writes data in the currently selected
     * file.
     * @param apdu
     *            carries the offset where to write date in header bytes p1 and
     *            p2.
    private void processUpdateBinary(APDU apdu, boolean protectedApdu) {
        if (!hasFileSelected() || isLocked()) {
            ISOException.throwIt(ISO7816.SW_COMMAND_NOT_ALLOWED);
        if ((selectedFile.getAccessConditions() & DigitalTachograph.UPDATE_ALW) != DigitalTachograph.UPDATE_ALW) {
            if ((selectedFile.getAccessConditions() & DigitalTachograph.UPDATE_REQUIRES_SM) != DigitalTachograph.UPDATE_REQUIRES_SM) {
                ISOException.throwIt(ISO7816.SW_SECURITY_STATUS_NOT_SATISFIED);
                return;
            }else if(!protectedApdu){
                    ISOException.throwIt(ISO7816.SW_SECURITY_STATUS_NOT_SATISFIED);
        byte[] buffer = apdu.getBuffer();
        byte p1 = buffer[OFFSET_P1];
        byte p2 = buffer[OFFSET_P2];
        short offset = Util.makeShort(p1, p2);
        short readCount = (short) (buffer[ISO7816.OFFSET_LC] & 0xff);
        //if (!protectedApdu){
            readCount = apdu.setIncomingAndReceive();
        while (readCount > 0) {
            selectedFile.writeData(offset, buffer, OFFSET_CDATA, readCount);
            offset += readCount;
            readCount = apdu.receiveBytes(ISO7816.OFFSET_CDATA);
    private short processInternalAuthenticate(APDU apdu , boolean protectedApdu) throws CryptoException {
        byte[] buffer = apdu.getBuffer();
        short lc = (short) (buffer[OFFSET_LC] & 0xFF);
        if (lc != (short) (KID_LENGTH * 2)) {
            ISOException.throwIt(SW_WRONG_LENGTH);
        if (apdu.setIncomingAndReceive() != lc) {
            ISOException.throwIt(ISO7816.SW_WRONG_DATA);
        // Check if VU.CHR maches the one of the selected certificate on the card
        if (Util.arrayCompare(buffer, (short) (OFFSET_CDATA + KID_LENGTH), keyStore.selected_KID, (short) 0, KID_LENGTH) != 0) {
            ISOException.throwIt(SW_REFERENCE_DATA_NOT_FOUND);
        if (Util.arrayCopyNonAtomic(buffer, OFFSET_CDATA, Rnd1, (short) 0, (short) 8) != (short) 8) { // Receive Rnd1
            ISOException.throwIt(ISO7816.SW_WRONG_DATA);
        // Hash(PRnd2||K1||Rnd1||VU.CHR)
        random.generateData(PRnd2, (short) 0, (short) 90);
        random.generateData(K1, (short) 0, (short) 16);
        crypto.shaDigest.update(PRnd2, (short) 0, (short) 90); // PRnd2
        crypto.shaDigest.update(K1, (short) 0, (short) 16); // PRnd2||K1
        crypto.shaDigest.doFinal(buffer, OFFSET_CDATA, lc, digest, (short) 0); //Rnd1||VU.CHR
        BigNumber mod = new BigNumber((short) 128);
        mod.init(keyStore.Card_PubMod, (short) 0, (short) keyStore.Card_PubMod.length, BigNumber.FORMAT_HEX);
        mod.subtract(signed, (short) 0, (short) 128, BigNumber.FORMAT_HEX);
        if (mod.compareTo(signed, (short) 0, (short) 128, BigNumber.FORMAT_HEX) == -1) {
            mod.toBytes(signed, (short) 0, (short) 128, BigNumber.FORMAT_HEX);
        // To be added: if the selected private key is considered corrupted, the processing state returned is '6400' or '6581'.
        signed[0] = (byte) 0x6A;
        Util.arrayCopyNonAtomic(PRnd2, (short) 0, signed, (short) 1, (short) 90);
        Util.arrayCopyNonAtomic(K1, (short) 0, signed, (short) 91, (short) 16);
        Util.arrayCopyNonAtomic(digest, (short) 0, signed, (short) 107, (short) 20);
        signed[127] = (byte) 0xBC;
        if (!keyStore.cardPrivateKey.isInitialized()) {
            CryptoException.throwIt(CryptoException.ILLEGAL_VALUE);
        try {
            crypto.rsaSigner.init(keyStore.cardPrivateKey, Signature.MODE_SIGN);
            crypto.rsaSigner.doFinal(signed, (short) 0, (short) 128, signed, (short) 0);
        } catch (Exception e) {
            ISOException.throwIt(SW_REFERENCE_DATA_NOT_FOUND);
        if (!keyStore.selectedPublicKey.isInitialized()) {
            CryptoException.throwIt(CryptoException.ILLEGAL_VALUE);
        try {
            crypto.rsaCipher.init(keyStore.selectedPublicKey, Cipher.MODE_ENCRYPT);
            crypto.rsaCipher.doFinal(signed, (short) 0, (short) 128, signed, (short) 0);
        } catch (Exception e) {
            ISOException.throwIt(SW_REFERENCE_DATA_NOT_FOUND);
        apdu.setOutgoing();
        Util.arrayCopyNonAtomic(signed, (short) 0, buffer, (short) 0, (short) 128);
        return (short) signed.length;
    private void processExternalAuthenticate(APDU apdu) {
        short equipmentType = 0;
        if (keyStore.Selected_Cert != null) {
            equipmentType = (short) keyStore.Selected_Cert.CHA[6]; // check equipment type
        if (equipmentType != (short) 1 && equipmentType != (short) 2 && equipmentType != (short) 3 && equipmentType != (short) 4 && equipmentType != (short) 6) {
            ISOException.throwIt(ISO7816.SW_FUNC_NOT_SUPPORTED); // Instead of 6F00 throw a more meaningfull SW in case CHA is not valid.
        if (Util.arrayCompare(keyStore.Selected_Cert.CHA, (short) 0, TACHOGRAPH_AID, (short) 0, (short) 6) != 0) {
            ISOException.throwIt(ISO7816.SW_FUNC_NOT_SUPPORTED);
        byte[] buffer = apdu.getBuffer();
        byte p1 = (byte) (buffer[OFFSET_P1] & 0xff);
        byte p2 = (byte) (buffer[OFFSET_P2] & 0xff);
        if (p1 != 0 || p2 != 0) {
            ISOException.throwIt(SW_WRONG_P1P2);
        short lc = (short) (buffer[OFFSET_LC] & 0xFF);
        if (lc != (short) (128)) {
            ISOException.throwIt(SW_WRONG_LENGTH);
        if (apdu.setIncomingAndReceive() != lc) {
            ISOException.throwIt(ISO7816.SW_WRONG_DATA);
        Util.arrayCopyNonAtomic(buffer, OFFSET_CDATA, signed, (short) 0, (short) 128); // receive the cryptogram from the VU
        // decrypt the encrypted message with the card private key
        try {
            crypto.rsaCipher.init(keyStore.cardPrivateKey, Cipher.MODE_DECRYPT);
            crypto.rsaCipher.doFinal(signed, (short) 0, (short) 128, signed, (short) 0);
        } catch (Exception e) {
            ISOException.throwIt(SW_REFERENCE_DATA_NOT_FOUND);
        // verify the signature with the VU public key
        try {
            crypto.rsaCipher.init(keyStore.selectedPublicKey, Signature.MODE_VERIFY); // Cipher.MODE_ENCRYPT
            crypto.rsaCipher.doFinal(signed, (short) 0, (short) 128, signed, (short) 0);
        } catch (Exception e) {
            ISOException.throwIt(SW_REFERENCE_DATA_NOT_FOUND);
        if (signed[0] != (byte) 0x6A || signed[127] != (byte) 0xBC) {
            ISOException.throwIt(Util.makeShort(signed[0], signed[127]));
        try {
            verifyCardCertificates();
            Util.arrayCopyNonAtomic(signed, (short) 1, preDigest, (short) 0, (short) 106); // accumulate preDigest
            Util.arrayCopyNonAtomic(Rnd3, (short) 0, preDigest, (short) 106, (short) 8); // accumulate preDigest
            Util.arrayCopyNonAtomic(keyStore.Card_Cert.CHR, (short) 0, preDigest, (short) 114, (short) 8); // accumulate preDigest
            Util.arrayCopyNonAtomic(signed, (short) 91, K2, (short) 0, (short) 16); // receive K2 value
            crypto.shaDigest.update(signed, (short) 1, (short) 106); // PRnd4||K2
            crypto.shaDigest.update(Rnd3, (short) 0, (short) 8); // Rnd3
            crypto.shaDigest.doFinal(keyStore.Card_Cert.CHR, (short) 0, (short) 8, digest, (short) 0); //||Card.CHR
        } catch (Exception e) {
            ISOException.throwIt(SW_TAMAM);
        if (Util.arrayCompare(signed, (short) 107, digest, (short) 0, (short) 20) != 0) {
            ISOException.throwIt(SW_TAMAM);
        volatileState[0] |= MUTUAL_AUTHENTICATED;
        try {
            DTUtil.xor(K1, (short) 0, K2, (short) 0, KaKb, (short) 0, (short) 16);
            Util.arrayCopyNonAtomic(Rnd3, (short) 4, SSC, (short) 0, (short) 4); // tail of Rnd3
            Util.arrayCopyNonAtomic(Rnd1, (short) 4, SSC, (short) 4, (short) 4); // tail of Rnd1
        } catch (Exception e) {
            ISOException.throwIt(SW_TAMAM);
        try {
            keyStore.setKey_Ka(KaKb, (short) 0);
            keyStore.setKey_Kb(KaKb, (short) 8);
            keyStore.setSecureMessagingKeys(KaKb, (short) 0, KaKb, (short) 0);
        } catch (Exception e) {
            ISOException.throwIt(SW_TAMAM_DEGIL);
        return;
    private short returnPreDigest(APDU apdu) {
        byte[] buffer = apdu.getBuffer();
        apdu.setOutgoing();
        Util.arrayCopyNonAtomic(preDigest, (short) 0, buffer, (short) 0, (short) 122);
        return (short)preDigest.length;
    private short returnDigest(APDU apdu) {
        byte[] buffer = apdu.getBuffer();
        apdu.setOutgoing();
        Util.arrayCopyNonAtomic(digest, (short) 0, buffer, (short) 0, (short) 20);
        return (short)digest.length;
    private short returnOriginalText(APDU apdu) {
        byte[] buffer = apdu.getBuffer();
        apdu.setOutgoing();
        Util.arrayCopyNonAtomic(signed, (short) 0, buffer, (short) 0, (short) 128);
        return (short)signed.length;
    private void processVerify(APDU apdu) { // Verify_CHV(Pin_Ws)
        byte[] buffer = apdu.getBuffer();
        // retrieve the PIN data for validation.
        byte byteRead = (byte) (apdu.setIncomingAndReceive());
        // the PIN data is read into the APDU buffer
        // at the offset ISO7816.OFFSET_CDATA the PIN data length = byteRead
        if (pin.check(buffer, ISO7816.OFFSET_CDATA, byteRead) == false) {
            ISOException.throwIt(SW_VERIFICATION_FAILED);
        return;
    private void processPSO(APDU apdu) { // verify certificate
        byte[] buffer = apdu.getBuffer();
        byte p1 = (byte) (buffer[OFFSET_P1] & 0xff);
        byte p2 = (byte) (buffer[OFFSET_P2] & 0xff);
        short lc = (short) (buffer[ISO7816.OFFSET_LC] & 0xFF);
        if (p1 == (byte) 0x00 && p2 == P2_VERIFYCERT) {
            if (lc != TACHO_CERT_LENGTH) {
                ISOException.throwIt(SW_WRONG_LENGTH);
            if (apdu.setIncomingAndReceive() != lc) {
                ISOException.throwIt(ISO7816.SW_WRONG_LENGTH);
            try { // copy the certificate to be verified from APDU buffer to cert object
                Util.arrayCopyNonAtomic(buffer, OFFSET_CDATA, cert, (short) 0, lc);
            } catch (Exception e) {
                ISOException.throwIt(SW_TAMAM);
            if (Util.arrayCompare(keyStore.selected_KID, (short) 0, keyStore.ERCA_KID, (short) 0, KID_LENGTH) == 0) {
                keyStore.VUCA_Cert.verifyCert(cert, keyStore.selectedPublicKey, keyStore.selected_KID);
            } else if (Util.arrayCompare(keyStore.selected_KID, (short) 0, keyStore.VUCA_Cert.CHR, (short) 0, KID_LENGTH) == 0) {
                keyStore.VU_Cert.verifyCert(cert, keyStore.selectedPublicKey, keyStore.selected_KID);
            } else {
                ISOException.throwIt(SW_CERT_VERIFICATION_FAILED); // Selected keyId, with MSE, is neither ERCA_KID nor VUCA_KID
        } else {
            ISOException.throwIt(SW_CERT_VERIFICATION_FAILED);
        return;
    private short processGetChallenge(APDU apdu, boolean protectedApdu) {
        byte[] buffer = apdu.getBuffer();
        byte p1 = (byte) (buffer[OFFSET_P1] & 0xff);
        byte p2 = (byte) (buffer[OFFSET_P2] & 0xff);
        if (p1 != 0 || p2 != 0) {
            ISOException.throwIt(SW_WRONG_P1P2);
        random.generateData(Rnd3, (short) 0, (short) 8);
        short Le = apdu.setOutgoing();
        if (Le != (short) 8) {
            ISOException.throwIt(SW_WRONG_LENGTH);
        Util.arrayCopyNonAtomic(Rnd3, (short) 0, buffer, (short) 0, (short) 8);
        return Le;
    private void processMSE(APDU apdu) {
        byte[] buffer = apdu.getBuffer();
        if (buffer[OFFSET_P1] == (byte) 0xC1 && buffer[OFFSET_P2] == P2_DST) {
            short lc = (short) (buffer[OFFSET_LC] & 0xFF);
            if (lc != (short) (KID_LENGTH + 2)) {
                ISOException.throwIt(SW_WRONG_LENGTH);
            if (apdu.setIncomingAndReceive() != lc) {
                ISOException.throwIt(ISO7816.SW_WRONG_DATA);
            if (buffer[OFFSET_CDATA] != (byte) 0x83) {//check the tag of the data
                ISOException.throwIt(SW_SECURE_MESSAGING_DATA_OBJECTS_MISSING);
            } else if (buffer[OFFSET_CDATA + 1] != (byte) 0x08) {
                ISOException.throwIt(SW_INCORRECT_DATA_OBJECT); // check if the key is already selected one
            } else if (Util.arrayCompare(buffer, (short) (OFFSET_CDATA + 2), keyStore.selected_KID, (short) 0, KID_LENGTH) != 0) {
                if (Util.arrayCompare(buffer, (short) (OFFSET_CDATA + 2), keyStore.ERCA_KID, (short) 0, KID_LENGTH) == 0) {// KID is EUR_KID
                    keyStore.selected_KID = keyStore.ERCA_KID;
                    keyStore.selectedPublicKey = keyStore.eurPublicKey;
                    keyStore.Selected_Cert = null; // ERCA public key is selected
                    return;
                } else if (Util.arrayCompare(buffer, (short) (OFFSET_CDATA + 2), keyStore.VUCA_Cert.CHR, (short) 0, KID_LENGTH) == 0) {// KID is MSCA_KID
                    keyStore.Selected_Cert = keyStore.VUCA_Cert;
                } else if (Util.arrayCompare(buffer, (short) (OFFSET_CDATA + 2), keyStore.VU_Cert.CHR, (short) 0, KID_LENGTH) == 0) { // KID is VU_KID
                    keyStore.Selected_Cert = keyStore.VU_Cert;
                } else {
                    ISOException.throwIt(SW_REFERENCE_DATA_NOT_FOUND);
                }// KID not found
                keyStore.selectedPublicKey = keyStore.Selected_Cert.publicKey;
                keyStore.selected_KID = keyStore.Selected_Cert.CHR;
            } else { // if the KID is already set, just return
                return;
        } else {
            ISOException.throwIt(ISO7816.SW_WRONG_P1P2);
    private void processSelectFile(APDU apdu) {
        byte[] buffer = apdu.getBuffer();
        short lc = (short) (buffer[OFFSET_LC] & 0x00FF);
        // retrieve p1p2 from apdu buffer
        byte p1 = buffer[OFFSET_P1];
        byte p2 = buffer[OFFSET_P2];
        short p1p2 = Util.makeShort(p1, p2);
        apdu.setIncomingAndReceive();
        if (p1 == 4) {
            if (lc == (short) TACHO_AID_LENGTH) {
                if (Util.arrayCompare(buffer, (short) OFFSET_CDATA, TACHOGRAPH_AID, (short) 0, (short) TACHO_AID_LENGTH) == 0) {
                    selectedFile = fileSystem.getDT();
                    fileSystem.selectDT();
                    volatileState[0] |= FILE_SELECTED;
                    return;
                } else {
                    ISOException.throwIt(ISO7816.SW_WRONG_DATA);
            } else if (lc != 2) {
                ISOException.throwIt(SW_WRONG_LENGTH);
            short fid = Util.getShort(buffer, OFFSET_CDATA);
            if (fileSystem.getFile(fid) != null) {
                selectedFile = fileSystem.getDT();
                fileSystem.selectDT();
                volatileState[0] |= FILE_SELECTED;
                return;
        } else if (p1 == 2) {
            if (lc != 2) {
                ISOException.throwIt(SW_WRONG_LENGTH);
            short fid = Util.getShort(buffer, OFFSET_CDATA);
            if (fileSystem.getFile(fid) != null) {
                selectedFile = fileSystem.getFile(fid);
                volatileState[0] |= FILE_SELECTED;
                return;
        } else {
            ISOException.throwIt(ISO7816.SW_WRONG_P1P2);
        setNoFileSelected();
        ISOException.throwIt(ISO7816.SW_FILE_NOT_FOUND);
    public static void setNoFileSelected() {
        if (hasFileSelected()) {
            volatileState[0] ^= FILE_SELECTED;
    public static boolean hasFileSelected() {
        return (volatileState[0] & FILE_SELECTED) == FILE_SELECTED;
    public static boolean hasMutuallyAuthenticated() {
        return (volatileState[0] & MUTUAL_AUTHENTICATED) == MUTUAL_AUTHENTICATED;
    static boolean isLocked() {
        return (persistentState & LOCKED) == LOCKED;
    public boolean isSelectedFileEncrypted() {
        return ((selectedFile.getAccessConditions() & DigitalTachograph.ENCRYPTED) == DigitalTachograph.ENCRYPTED);
}

Similar Messages

  • Oracle OSB - Tutorial for development using Eclipse Plugin

    Hi,
    1. I need a tutorial to develop a simple application using file adapter. For example it was very easier in Oracle ESB 10.3 version where I can drag and drop adapters and configure. What should I do if I have to create similar adapters in OSB. Can you provide documentation. For Oracle ESB(old version) there was ESB Quick Start guide and it was very useful. Do we have some thing similar for OSB?
    2. Most of the tutorials that are in Oracle website points to using JDeveloper. When I download the JDeveloper I no longer get those option. When I browsed I found that we should use Eclipse Plugin for OSB development. Is it true.
    Thanks for your help.
    Thanks,
    Uma

    Hi Uma,
    You may find OSB samples and tutorials at below links -
    http://download.oracle.com/docs/cd/E13159_01/osb/docs10gr3/examples/samples.html
    http://download.oracle.com/docs/cd/E13159_01/osb/docs10gr3/tutorial/tutGettingStarted.html
    http://www.oracle.com/technology/sample_code/products/osb/samples/osb_examples_tutorials_0.pdf
    http://www.oracle.com/technology/products/soa/service-bus/collateral/osbsamples.html
    http://www.oracle.com/technetwork/articles/jumpstart-for-osb-development-page--084104.html
    Oracle service bus installer comes with a eclipse plugin which can be used to develope OSB applications using Eclipse. Refer installation guide to know more.
    You should post OSB related questions in Oracle SOA Suite forum to get better and faster response -
    SOA Suite
    Regards,
    Anuj

  • Is there a Bug in Oracle Eclipse Plugin for OSB11gR1PS2

    i have been using the Eclipse plugin for Oracle Service bus, and while desiginng the WSDL in ther design view i faced the following problem
    If you create a skeleton and then add operations, they are not mapped to WSDL:binding
    also if one changes the type of operation, ( from default input output in skeleton) the corrosponding changes are not reflected in WSDl....
    did any1 else face the same problem while designing WSDL??
    Edited by: tarang on Jun 7, 2011 4:23 PM

    Cross post in OEPE forum as well -
    Enterprise Pack for Eclipse
    Regards,
    Anuj

  • Unable to install Eclipse Plugin for Azure

    I am unable to install the Eclipse Plugin for Azure.  I have Eclipse Indigo and have installed the Azure SDK 2.3.  When I try to add the site http://dl.msopentech.com/eclipse in the Install New Software window I get an authentication pop-up.
     When I try my Microsoft ID it fails authentication.  The instructions do not mention any authentication.  What should I put in here?

    Hi,
    This plugin requires Azure SDK 2.3. This can be downloaded using the Web Platform Installer (WebPI) at
    http://go.microsoft.com/fwlink/?LinkID=252838. However, if you don’t have it installed, when you create your first Azure deployment project, the plugin will automatically install
    Azure SDK 2.3.
    Also, you could download the sdk from GitHub (https://github.com/MSOpenTech/WindowsAzureToolkitForEclipseWithJava ) and manually install . And you could refer to this blog
    (http://java.interoperabilitybridges.com/cloud ).
    Please try it.
    Regards,
    Will
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • Eclipse   plugin   for version 10.3

    Is there eclipse plugin for weblogic 10.3

    Yes, you can install Oracle Enterprise Pack for Eclipse.
    [http://www.oracle.com/tools/enterprise-eclipse-pack.html]
    [http://www.oracle.com/technology/software/products/oepe/index.html]

  • Eclipse plugin for ejbgen

    Hi,
    Does BEA have a eclipse plugin for ejbgen to use?
    Thanks
    brian

    I have used Doclipse plugin with Eclipse3.1 and found it very useful to generate all weblogic specific annotations. Please check out this http://www.beust.com/doclipse/.

  • Eclipse Plugin for SAP MII

    Good afternoon everyone.
    I am beginner and I've been reading about the eclipse plugin for SAP MII.
    And I was with some doubt someone could help me?
    1) This plugin is paid?
    2) With the plugion I can have all the features that the SAP MII Workbench?
    3) How can I get this plugin?
    Thank U.

    Hi Carlos,
    It should be available on your eclipse through this menu:
    I have tried to find it but it's not available. This could be due to many reasons but I think it could be that:
    a) I'm running Eclipse Luna so it might be possible that it is not listed because I'm using an unsupported version.
    b) I don't have the correct marketplace in my list of available marketplaces and I should add the correct one. This one doesn't look likely but I can't tell for sure.
    c) It has been discontinued and is no longer available for download in which case we won't be able to find it.
    If I find out what the problem was I'll let you know.
    Kind regards,
    Ibai

  • Eclipse plugin for flex

    Hi,
    Is there any Flex plugin for Eclipse which has features like
    syntax coloring, auto-suggestion and compilation for
    actionscript and mxml. I tried using ASDT but it isn't of much
    help. It supports only syntax coloring. Writing action script code
    in plain editor is sometimes a very big pain.
    Thanks,
    Ashish Abrol

    You can download the Eclipse plugin for Flex in the Adobe
    Website. Then in Eclipse you have to configure the editor's section
    and select the mxml and as extensions to be edited with the Flex
    plugin, that way you will have syntax coloring and
    auto-suggestion

  • Eclipse Plugins for Servlets and JSP.

    Hi Guys,
    Can any one suggest where i can get the eclipse plugins for Servlets and JSP. May i am wrong posting this question in this forum. I already browsed thru all the forum to get the info but in vain. so any help will be appreciated.
    Thank You,
    cheers,
    thrinath.j

    [url http://www.eclipse.org/webtools/]http://www.eclipse.org/webtools/
    Regards

  • Eclipse Plugin for debugging apps on the WebSphere Application Server 5.0

    Does anyone know about an Eclipse plugin for the debugging of the applications deployed on the WebSphere Application Server 5.0 like JBOSS-IDE for jboss???
    Any info would be highly appreciated.
    Thanks

    There is a new JBoss project with the aim to provide a world class IDE for JBoss. Its first release contains the debugging and monitoring of JBoss servers and the controlling of there life cycles as well as a very comfortable and sophisticated support for XDoclet.
    You can visit: https://sourceforge.net/projects/jboss/ for the download.
    Hope this helps,
    Nectarios Tsolakis

  • Eclipse Plugins for Glue

    Dear All,
    Can any one provide me the link frow where i can get the Eclipse plugin for Glue. Thanks in advance.
    Your's,
    Hari

    Google probably could, if such a thing exists. Did you try "glue eclipse plugin" as your search keywords?

  • Acrobat Reader - Use Fixed Resolution for Snapshot tool images setting

    Hello,
    We're currently running Acrobat Reader 9.x on our production Windows Vista SP2 Enterprise image and we're running Acrobat Reader X on our development Windows 7 Enterprise 64-bit image.  I'm curious if there's a registry setting that sets the "Use fixed Resolution for Snapshop tool images" from 72dpi to 300 dpi. 
    Any help would be greatly appreciated.
    Thanks,
    Rob

    The per user settings are held in the following registry location:
    HKCU\SOFTWARE\Adobe\Acrobat Reader\10.0\Selection
    There is a hexadecimal value named iSnapshotResolution which contains the resolution for the Snapshot Tool. Also a parameter called bUseFixedSnapshotResolution which needs to be set to 1 to switch the feature on or 0 to disable the feature.
    This is a per user setting but I believe Reader checks the per machine location
    HKLM\SOFTWARE\Adobe\Acrobat Reader 10.0\Selection
    Presumably you can put the same values into the HKLM section (it doesn't exist by default) so you will need to create the Selection key.
    Hope this makes sense.
    You might also find benefit of using the Enterprise Deployment tools for your deployment environment.
    Enterprise Deployment Technical Resources
    https://www.adobe.com/content/dotcom/en/products/acrobat/technical-resources.html
    Adobe Reader 9 Customization Wizard
    https://www.adobe.com/support/downloads/detail.jsp?ftpID=3993
    Adobe Reader X Customization Wizard
    https://www.adobe.com/support/downloads/detail.jsp?ftpID=4950

  • Using FMS2 eclipse plugin for 3.5, is it possible?

    Is it possible to use the FMS2 plugin for eclipse I found on the internet with version 3.5 of FMS?
    Or will it give to many errors, because coding has changed?

    I'd say it's safe to use. Server side actionscript hasn't been updated much since FMS2 (or FCS 1.5 for that matter).

  • Support of Eclipse Plugin for Oracle CEP tools IDEs

    I am having issue with Eclipse plugin to update the Oracle CEP tools.
    Here is the details about error in one of the environment:
    Cannot complete the install because one or more required items could not be found.
      Software being installed: Oracle CEP Tools 11.1.1.20111115-1500 (com.bea.wlevs.eclipse.tools.feature.feature.group 11.1.1.20111115-1500)
      Missing requirement: Oracle CEP Tools 11.1.1.20111115-1500 (com.bea.wlevs.eclipse.tools.feature.feature.group 11.1.1.20111115-1500) requires 'org.eclipse.jdt.feature.group [3.6.0,3.7.0)' but it could not be found
    In another environment , I am getting the error Eclipse could not connect to "http://download.oracle.com/technology/software/cep-ide/11/"
    Does oracle provide the latest Eclipse IDE Plug-in or not ?
    Any help would be helpful.
    Thanks,
    Srini

    http://download.oracle.com/docs/cd/E17904_01/doc.1111/e14476/install.htm#CHDIDGBI

  • Searching Eclipse-Plugin for EL

    Hi @all!
    I wanna try to write an application with EL.
    Actually I'm using Eclipse 2.1.1. and I'm using the Lomboz-Plugin for creating JSP-pages by Java-Code.
    But I've noticed this Plugin is not able to know EL.
    In kind of errors, no corrections will be displayed...
    So my question is, if you know a Plugin for Eclipse being able to create jsp-pages with java (scriptlets) and EL within one page.
    I also would be thankful, if you mention any other editor being able to manage both (java and EL).
    Many thanks in advance!
    Chris

    Yes, you can install Oracle Enterprise Pack for Eclipse.
    [http://www.oracle.com/tools/enterprise-eclipse-pack.html]
    [http://www.oracle.com/technology/software/products/oepe/index.html]

Maybe you are looking for