views:

2598

answers:

4

How to write a BlackBerry program for AES/CBC with Initialization Parameter ecncryption and Decryption and this encryption and decryption should work independent on Programming language Ex= If I encrypt some data using BlackBery I must be able to decrypt the same data using Java Program.

Thanks Deepak

+1  A: 

The decryption half of your question is answered here: http://stackoverflow.com/questions/901251/decrypting-data-with-aes-cbc-pkcs5padding-using-blackberry

It should be easy to figure out encryption using the same pattern (use Encryptor instead of Decryptor engines, etc).

Anthony Rizk
The link tells to use bouncy castle. Its an external jar we can not use external jar. So is there any other way to achieve this.
Deepak
My answer to that question is about the BlackBerry API - sorry, I can see where that wasn't clear, I edited the first sentence to hopefully make it clearer.
Anthony Rizk
Hi Anthony, I tried in the way you have mentioned. But I can encrypt or decrypt upto 16 bytes means 128 bits. So If I increase the block size then i am getting error because of CBC.I have inserted block size as multiple of 16.
imMobile
+1  A: 

Have you read this KB article? http://www.blackberry.com/knowledgecenterpublic/livelink.exe/fetch/2000/348583/800332/800779/How_to_-_Use_Basic_Encryption.html?nodeid=800640&vernum=0

You will also need to use net.rim.device.api.crypto.CBCEncryptorEngine on top of the AESEncryptorEngine (and similar for decryption).

Richard
A: 

Hi, CBCEngine allows you upto 16 bytes for across platform. so donot use CBC. try to use the default supported cipher engine.

I think ECB will be great if you use.

Thanks Sunil Kumar sahoo

Deepak
Raw ECB is NOT recommended for usage for encryption of data because of some weaknesses.
Nickolay O.
A: 

Actually, you write your own code for AES algorithm and CBC mode, it is quite simple, around some hundreds of code lines. And, there should be reference implementation in Java language.

Nickolay O.