iVela
iVela

Reputation: 1201

SQLcipher how to create cypted database?

I'm trying to follow this tutorial: http://sqlcipher.net/ios-tutorial/

I create a database called "sqlcipher.db" then I recreate this

When I execute this code:

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    NSString *databasePath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] 
                              stringByAppendingPathComponent: @"encrypted.db"];
    sqlite3 *db;
    if (sqlite3_open([databasePath UTF8String], &db) == SQLITE_OK) {
        const char* key = [@"secret" UTF8String];
        int sqlite3_key(sqlite3 *db, const void *pKey, int nKey);
        sqlite3_key(db, key, strlen(key));
        if (sqlite3_exec(db, (const char*) "SELECT count(*) FROM t1;", NULL, NULL, NULL) == SQLITE_OK) {
            // password is correct, or, database has been initialized
            NSLog(@"Hello 1");
        } else {
            // incorrect password!
            NSLog(@"Hello 2");
        }

        sqlite3_close(db);
    } else {
        NSLog(@"Hello 3");
    }
}

It allways outs "Hello 2".

When I try to reproduce the steps to crate an encrypted db described here http://zetetic.net/blog/2009/12/29/how-to-encrypt-a-plaintext-sqlite-database-to-use-sqlcipher.html#disqus_thread I can't get it encrypted, I believe that it is beacause I am using sqlite3 mac command.

So I saw in the comments that S Lombardo says that I have to compile a command line sqlcipher executable but the link doesn't works.

How should I encrypt my database to use it with SQLcipher?

Did anyone have success using sqlicipher in iOS?

Upvotes: 0

Views: 4541

Answers (1)

iVela
iVela

Reputation: 1201

After one hour Googling i've found how to compile sqlcipher command line for OSX:

I hope this could help somebody.

https://groups.google.com/forum/#!msg/sqlcipher/bd1R13RpZHQ/SEPK8YrRt1gJ

Upvotes: 1

Related Questions