Mi raccomando di utilizzare l'API BlackBerry (Bouncy Castle funzionerà, ma perché complicare le cose?).
Utilizzare il pacchetto net.rim.crypto: si utilizza tutta la crittografia simmetrica per utilizzare lo standard RIM signing keys per l'esecuzione su un dispositivo ($ 20 e 2-3 giorni per ottenere) - nel frattempo è possibile fai tutto con il simulatore.
Fondamentalmente si vorrà creare un PKCS5UnformatterEngine che avvolge un CBCDecryptorEngine che avvolge un AESDecryptorEngine. Probabilmente avvolgere tutto in un BlockDecryptor per poterlo trattare come in InputStream. Qualcosa di simile (ed è stato un po 'di tempo da quando ho fatto questo, quindi potrebbe non funzionare al 100% come scritto):
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
fonte
2009-05-25 02:25:14
che è una risposta migliore del mio, ma in mia difesa non ho visto la tag blackberry fino a quando ho letto il tuo. :-) – wds