public void trasferisco() {
try {
net.sqlcipher.database.SQLiteDatabase dab;
SQLiteDatabase.loadLibs(this);
String passphrase=“649121”;
File originalFile = getDatabasePath(DB_PATH+DB_NAME);
File newFile = File.createTempFile(“sqlcipherutils”, “tmp”, getCacheDir());
SQLiteDatabase existing_db = SQLiteDatabase.openDatabase(DB_PATH + DB_NAME, “”, null, SQLiteDatabase.OPEN_READWRITE);
existing_db.rawExecSQL(“ATTACH DATABASE '” + newFile.getPath() + “’ AS encrypted KEY '” + passphrase + “’;”);
existing_db.rawExecSQL(“SELECT sqlcipher_export(‘encrypted’);”);
existing_db.rawExecSQL(“DETACH DATABASE encrypted;”);
existing_db.close();
originalFile.delete();
newFile.renameTo(originalFile);;
} catch (Exception e) {
Log.e("error ", e.getMessage());
}
Error:
net.sqlcipher.database.sqliteexception error code 14 could not open database
[quote=“Marchesotti, post:21, topic:4905, full:true”]
public void trasferisco() {
try {
net.sqlcipher.database.SQLiteDatabase dab;
SQLiteDatabase.loadLibs(this);
String passphrase=“649121”;
File originalFile = getDatabasePath(DB_PATH+DB_NAME);
File newFile = File.createTempFile(“sqlcipherutils”, “tmp”, getCacheDir());
SQLiteDatabase existing_db = SQLiteDatabase.openDatabase(DB_PATH + DB_NAME, “”, null, SQLiteDatabase.OPEN_READWRITE);
existing_db.rawExecSQL(“ATTACH DATABASE '” + newFile.getPath() + “’ AS encrypted KEY '” + passphrase + “’;”);
existing_db.rawExecSQL(“SELECT sqlcipher_export(‘encrypted’);”);
existing_db.rawExecSQL(“DETACH DATABASE encrypted;”);
existing_db.close();
originalFile.delete();
newFile.renameTo(originalFile);;
} catch (Exception e) {
Log.e("error ", e.getMessage());
}public void trasferisco() {
try {
net.sqlcipher.database.SQLiteDatabase dab;
SQLiteDatabase.loadLibs(this);
String passphrase=“649121”;
File originalFile = getDatabasePath(DB_PATH+DB_NAME);
File newFile = File.createTempFile(“sqlcipherutils”, “tmp”, getCacheDir());
SQLiteDatabase existing_db = SQLiteDatabase.openDatabase(DB_PATH + DB_NAME, “”, null, SQLiteDatabase.OPEN_READWRITE);
existing_db.rawExecSQL(“ATTACH DATABASE '” + newFile.getPath() + “’ AS encrypted KEY '” + passphrase + “’;”);
existing_db.rawExecSQL(“SELECT sqlcipher_export(‘encrypted’);”);
existing_db.rawExecSQL(“DETACH DATABASE encrypted;”);
existing_db.close();
originalFile.delete();
newFile.renameTo(originalFile);;
} catch (Exception e) {
Log.e("error ", e.getMessage());
}
Error:
net.sqlcipher.database.sqliteexception error code 14 could not open database
Hello @Marchesotti
What exact line do you receive the error on? Can you fork the SQLCipher for Android test suite and try running that scenario within the suite? Instructions for creating a new test can be found here.
SecureRandom blocks the SQLCipherTest program
if(behaviorSuite != null){
behaviorSuite.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(TestRunnerSelectionActivity.this,
net.zetetic.tests.ImportUnencryptedDatabaseTest.class);
startActivity(intent);
}
});
}
i would like to use to convert Database to sqlcipher Database but i can’t start ImportUnencrytedDatabaseTest
Thank you
Hi @Marchesotti
The ImportUnencryptedDatabaseTest test is part of the suite which will run on a device/emulator. You don’t need to write specific code to invoke that test, it is already integrated within the suite. If you are receiving an error when running the suite, please post the full error. Without additional information, it is difficult to troubleshoot the issue you are experiencing.
the program does not start, gives no error, I tried to create a new program using;
ImportUnencrypteDatabaseTest, ISupportTest, NativeInitializer, TestResult, ZeteticApplication.
I use MainActivity to start the application.
Click Button to start ImportUnencrypteDatabaseTest and the program crashes and does not start the application
r1=findViewById(R.id.start);
r1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent avvio= new Intent(MainActivity.this, ImportUnencryptedDatabaseTest.class);
startActivity(avvio);
}
});
Thank you
Hi @Marchesotti
You will need to load this application within Android Studio, compile it, the deploy to either a device or emulator. You will see a lot of output via logcat in Android Studio.
SQLCipher Test Suite works, but I would like to use ImportUnencryptedDatabaseTest to copy my Database to enter password.
Run Test gives me error: Encrypt Bytes Test
Passed : 100 Failed : 1
my database is in /sdcard/Mkp/Archvio.db, but I can’t open with ImportUnencryptedDatabaseTest.jav
thank you
I managed to create encrypted database, everything works, I just can’t manage Cursor
How can I do?
Thank you
SQLcipher for C # examples exist