Я рекомендую использовать BlackBerry API (Bouncy Castle будет работать, но зачем все усложнять?).
Используйте пакет net.rim.crypto - вы используете все симметричное шифрование, поэтому вам понадобятся только стандартные ключи подписи RIM для запуска на устройстве (20 долларов и 2-3 дня, чтобы получить ) - тем временем вы можете делать все с помощью симулятора.
В основном вы захотите создать PKCS5UnformatterEngine, который оборачивает CBCDecryptorEngine, который оборачивает AESDecryptorEngine. Вероятно, обернуть все в BlockDecryptor, чтобы вы могли обрабатывать, как в InputStream. Что-то вроде (и прошло немного времени с тех пор, как я это сделал, поэтому он может не работать на 100%, как написано):
InputStream encryptedInput; // if you have a byte[] of data, use a ByteArrayInputStream
AESKey key = new AESKey(<your key data as a byte[]>)
InitializationVector iv = new InitializationVector(<your iv data as a byte[]>) // of course you need to know your IV since you're doing CBC encryption
BlockDecryptor decryptor = new BlockDecryptor(
new PKCS5UnformatterEngine(
new CBCDecryptorEngine(
new AESDecryptorEngine(key),
iv
)
)
);
// then decryptor acts as an InputStream which gives you your decrypted, unpacked data
decryptor.read(buffer); // buffer will contain decrypted, unpacked data