@@ -356,11 +356,12 @@ static int sqlcipher_find_db_index(sqlite3 *db, const char *zDb) {
356
356
}
357
357
358
358 int sqlite3_key (sqlite3 * db , const void * pKey , int nKey ) {
359
+ CODEC_TRACE (("sqlite3_key entered: db=%p pKey=%s nKey=%d\n" , db , (char * )pKey , nKey ));
359
360
return sqlite3_key_v2 (db , "main" , pKey , nKey );
360
361
}
361
362
362
363
int sqlite3_key_v2 (sqlite3 * db , const char * zDb , const void * pKey , int nKey ) {
363
- CODEC_TRACE (("sqlite3_key : entered db=%p pKey=%s nKey=%d\n" , db , (char * )pKey , nKey ));
364
+ CODEC_TRACE (("sqlite3_key_v2 : entered db=%p zDb=%s pKey=%s nKey=%d\n" , db , zDb , (char * )pKey , nKey ));
364
365
/* attach key if db and pKey are not null and nKey is > 0 */
365
366
if (db && pKey && nKey ) {
366
367
int db_index = sqlcipher_find_db_index (db , zDb );
@@ -370,6 +371,7 @@ int sqlite3_key_v2(sqlite3 *db, const char *zDb, const void *pKey, int nKey) {
370
371
}
371
372
372
373
int sqlite3_rekey (sqlite3 * db , const void * pKey , int nKey ) {
374
+ CODEC_TRACE (("sqlite3_rekey entered: db=%p pKey=%s nKey=%d\n" , db , (char * )pKey , nKey ));
373
375
return sqlite3_rekey_v2 (db , "main" , pKey , nKey );
374
376
}
375
377
@@ -384,11 +386,11 @@ int sqlite3_rekey(sqlite3 *db, const void *pKey, int nKey) {
384
386
** 3. If there is a key present, re-encrypt the database with the new key
385
387
*/
386
388
int sqlite3_rekey_v2 (sqlite3 * db , const char * zDb , const void * pKey , int nKey ) {
387
- CODEC_TRACE (("sqlite3_rekey : entered db=%p pKey=%s, nKey=%d\n" , db , (char * )pKey , nKey ));
389
+ CODEC_TRACE (("sqlite3_rekey_v2 : entered db=%p zDb=%s pKey=%s, nKey=%d\n" , db , zDb , (char * )pKey , nKey ));
388
390
if (db && pKey && nKey ) {
389
391
int db_index = sqlcipher_find_db_index (db , zDb );
390
392
struct Db * pDb = & db -> aDb [db_index ];
391
- CODEC_TRACE (("sqlite3_rekey : database pDb=%p\n" , pDb ));
393
+ CODEC_TRACE (("sqlite3_rekey_v2 : database pDb=%p db_index:%d \n" , pDb , db_index ));
392
394
if (pDb -> pBt ) {
393
395
codec_ctx * ctx ;
394
396
int rc , page_count ;
@@ -400,13 +402,13 @@ int sqlite3_rekey_v2(sqlite3 *db, const char *zDb, const void *pKey, int nKey) {
400
402
401
403
if (ctx == NULL ) {
402
404
/* there was no codec attached to this database, so this should do nothing! */
403
- CODEC_TRACE (("sqlite3_rekey : no codec attached to db, exiting\n" ));
405
+ CODEC_TRACE (("sqlite3_rekey_v2 : no codec attached to db, exiting\n" ));
404
406
return SQLITE_OK ;
405
407
}
406
408
407
409
sqlite3_mutex_enter (db -> mutex );
408
410
409
- codec_set_pass_key (db , 0 , pKey , nKey , CIPHER_WRITE_CTX );
411
+ codec_set_pass_key (db , db_index , pKey , nKey , CIPHER_WRITE_CTX );
410
412
411
413
/* do stuff here to rewrite the database
412
414
** 1. Create a transaction on the database
@@ -424,21 +426,21 @@ int sqlite3_rekey_v2(sqlite3 *db, const char *zDb, const void *pKey, int nKey) {
424
426
if (rc == SQLITE_OK ) {
425
427
sqlite3PagerUnref (page );
426
428
} else {
427
- CODEC_TRACE (("sqlite3_rekey : error %d occurred writing page %d\n" , rc , pgno ));
429
+ CODEC_TRACE (("sqlite3_rekey_v2 : error %d occurred writing page %d\n" , rc , pgno ));
428
430
}
429
431
} else {
430
- CODEC_TRACE (("sqlite3_rekey : error %d occurred getting page %d\n" , rc , pgno ));
432
+ CODEC_TRACE (("sqlite3_rekey_v2 : error %d occurred getting page %d\n" , rc , pgno ));
431
433
}
432
434
}
433
435
}
434
436
435
437
/* if commit was successful commit and copy the rekey data to current key, else rollback to release locks */
436
438
if (rc == SQLITE_OK ) {
437
- CODEC_TRACE (("sqlite3_rekey : committing\n" ));
439
+ CODEC_TRACE (("sqlite3_rekey_v2 : committing\n" ));
438
440
rc = sqlite3BtreeCommit (pDb -> pBt );
439
441
sqlcipher_codec_key_copy (ctx , CIPHER_WRITE_CTX );
440
442
} else {
441
- CODEC_TRACE (("sqlite3_rekey : rollback\n" ));
443
+ CODEC_TRACE (("sqlite3_rekey_v2 : rollback\n" ));
442
444
sqlite3BtreeRollback (pDb -> pBt , SQLITE_ABORT_ROLLBACK );
443
445
}
444
446
0 commit comments