Issue Type: Bug Bug
Affects Versions: 1.3.0
Assignee: Unassigned
Components: datamanager
Created: 11/Dec/13 5:36 AM
Description:

Given:

I need to create two stores which have different store names and passphrases but they are using same model class underneath.

When:

I call

dataManager.encryptedStore("store1", sqlStoreConfig, "passphrase1", SimpleUser.class);
dataManager.encryptedStore("store2", sqlStoreConfig, "passphrase2", SimpleUser.class);

Then:

I expect that when I do any operation on store2 as readAll(), no exception is thrown.

Error stack:

E/AndroidRuntime( 2006): org.jboss.aerogear.android.impl.crypto.InvalidKeyException: java.lang.RuntimeException: Error: 
E/AndroidRuntime( 2006): 	at org.jboss.aerogear.android.impl.util.CryptoUtils.decrypt(CryptoUtils.java:68)
E/AndroidRuntime( 2006): 	at org.jboss.aerogear.android.impl.datamanager.EncryptedSQLStore.readAll(EncryptedSQLStore.java:173)
E/AndroidRuntime( 2006): 	at org.aerogear.android.offline.demo.OfflineRegistrationActivity$1$1.onSuccess(OfflineRegistrationActivity.java:99)
E/AndroidRuntime( 2006): 	at org.aerogear.android.offline.demo.OfflineRegistrationActivity$1$1.onSuccess(OfflineRegistrationActivity.java:89)
E/AndroidRuntime( 2006): 	at org.jboss.aerogear.android.authentication.impl.loader.support.SupportAuthenticationModuleAdapter$CallbackHandler.run(SupportAuthenticationModuleAdapter.java:302)
E/AndroidRuntime( 2006): 	at android.os.Handler.handleCallback(Handler.java:725)
E/AndroidRuntime( 2006): 	at android.os.Handler.dispatchMessage(Handler.java:92)
E/AndroidRuntime( 2006): 	at android.os.Looper.loop(Looper.java:137)
E/AndroidRuntime( 2006): 	at android.app.ActivityThread.main(ActivityThread.java:5039)
E/AndroidRuntime( 2006): 	at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime( 2006): 	at java.lang.reflect.Method.invoke(Method.java:511)
E/AndroidRuntime( 2006): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
E/AndroidRuntime( 2006): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
E/AndroidRuntime( 2006): 	at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime( 2006): Caused by: java.lang.RuntimeException: Error: 
E/AndroidRuntime( 2006): 	at org.jboss.aerogear.crypto.CryptoBox.decrypt(CryptoBox.java:167)
E/AndroidRuntime( 2006): 	at org.jboss.aerogear.android.impl.util.CryptoUtils.decrypt(CryptoUtils.java:64)
E/AndroidRuntime( 2006): 	... 13 more
E/AndroidRuntime( 2006): Caused by: org.bouncycastle.crypto.InvalidCipherTextException: mac check in GCM failed
E/AndroidRuntime( 2006): 	at org.bouncycastle.crypto.modes.GCMBlockCipher.doFinal(Unknown Source)
E/AndroidRuntime( 2006): 	at org.jboss.aerogear.crypto.CryptoBox.decrypt(CryptoBox.java:165)
E/AndroidRuntime( 2006): 	... 14 more

Proposed change to API:

There should be the way how to change the name of the database. Right now, its name is derived from name of the model class, it can be set as

storeConfig.setDatabaseName("someName");
Project: AeroGear Android
Priority: Major Major
Reporter: Stefan Miklosovic
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira