Апплет JavaCard не работает с шифрованием RSA

Я занимаюсь разработкой апплета JavaCard. Апплет генерирует открытый и закрытый ключи RSA в конструкторе и с помощью команды APDU шифрует некоторый байтовый массив:

 public RSATestApplet() {
    keyPair = new KeyPair(KeyPair.ALG_RSA_CRT, KeyBuilder.LENGTH_RSA_2048);
    keyPair.genKeyPair();
    rsaPrivateKey = (RSAPrivateKey) keyPair.getPrivate();
    rsaPublicKey = (RSAPublicKey) keyPair.getPublic();

    cipher = Cipher.getInstance(Cipher.ALG_RSA_PKCS1, false);

    register();
}

И основным методом является:

private void encryptData(APDU apdu) {
    if (!rsaPublicKey.isInitialized()) {
        ISOException.throwIt(ISO7816.SW_CONDITIONS_NOT_SATISFIED);
    }
    byte[] apduBuffer = apdu.getBuffer();
    apdu.setIncomingAndReceive();

    cipher.init(rsaPrivateKey, Cipher.MODE_ENCRYPT);
    byte[] encryptedBuffer = new byte[apduBuffer.length];
    Util.arrayFillNonAtomic(encryptedBuffer, (short) 0,
            (short) encryptedBuffer.length, (byte) 0xAA);
    cipher.doFinal(encryptedBuffer, (short) 0, (short) encryptedBuffer.length, apduBuffer, (short) 0);
    // Just for testing send 120 bytes
    apdu.setOutgoingAndSend((short) 0, (short) 120);
}

И когда я пытаюсь установить апплет APDU ответ 6E00 (что означает: нет точной диагностики).

Я думаю, что проблема может возникнуть при выполнении cipher.doFinal ().

Я пробовал с другими апплетами, и все работает отлично.

Я компилирую свой апплет с JavaCard 2.2.1 и Java 1.2

У вас есть идеи, что происходит?

Ответы на вопрос(1)

Ваш ответ на вопрос