Полагаю, вы спрашиваете об облегченном API Bouncy Castle, который является частью выпуска J2ME. На странице спецификаций приведен пример использования API. Я обновил его, чтобы соответствовать последнему API. (Обратите внимание, что я не пытался запустить это.)
BlockCipher engine = new AESEngine();
BufferedBlockCipher cipher = new PaddedBufferedBlockCipher(new CBCBlockCipher(engine));
byte[] key = keyString.getBytes();
byte[] input = inputString.getBytes();
cipher.init(true, new ParametersWithIV(new KeyParameter(key), ivBytes));
byte[] cipherText = new byte[cipher.getOutputSize(input.length)];
int outputLen = cipher.processBytes(input, 0, input.length, cipherText, 0);
try
{
cipher.doFinal(cipherText, outputLen);
}
catch (CryptoException ce)
{
System.err.println(ce);
System.exit(1);
}
Обратите внимание, что режим заполнения по умолчанию PaddedBufferedBlockCipher
- PKCS7 / PKCS5.
Расшифровка аналогична, но вы бы позвонили cipher.init(false, ...)
и передали зашифрованный текст processBytes
.