Since 4.4 my encryption code (working since Android 1.5) fails with...

java.security.InvalidKeyException: initialisation vector must be the same 
length as block size

....at the init call in the following code:

            String passphrase = "pass";
            String alg = "PBEWITHSHA-256AND256BITAES-CBC-BC";
            
            PBEKeySpec keySpec = new PBEKeySpec( passphrase.toCharArray(), 
salt, 2001 );

            SecretKey key =  SecretKeyFactory.getInstance( alg 
).generateSecret( keySpec );
            
            Cipher ecipher = Cipher.getInstance( key.getAlgorithm() );

            AlgorithmParameterSpec paramSpec = new IvParameterSpec( 
initVector );

            ecipher.init( Cipher.ENCRYPT_MODE, key, paramSpec );

initVector and salt are both 8 byte arrays.

ecipher.getBlockSize() reports 16, so yes, it doesn't match the 
initialization vector.

Presumably some default has changed somewhere.

This leaves all my users who used encryption in any way completely stuck.

I've tried to arrange without success that the cipher block size is set to 
8.

For instance:

Cipher.getInstance( "AES/CBC8/PKCS5Padding" );

Gives:

java.security.NoSuchAlgorithmException: can't support mode CBC8

On the other hand, making initVector a 16 byte array causes init() to throw:

java.security.InvalidKeyException: invalid parameter passed to AES init - 
com.android.org.bouncycastle.crypto.params.ParametersWithIV

Any ideas ?

TIA, 

Pent

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Android Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to android-developers+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to