Merge pull request #24 from developernotes/prerelease

PRAGMA cipher_version
This commit is contained in:
Stephen Lombardo 2012-05-17 06:15:24 -07:00
commit 8e4d13b57f
4 changed files with 30 additions and 0 deletions

View File

@ -38,6 +38,16 @@
#include "btreeInt.h"
#include "crypto.h"
/* Generate code to return a string value */
void codec_vdbe_return_static_string(Parse *pParse, const char *zLabel, const char *value){
Vdbe *v = sqlite3GetVdbe(pParse);
int mem = ++pParse->nMem;
sqlite3VdbeAddOp4(v, OP_String, 0, mem, 0, (char*)value, P4_STATIC);
sqlite3VdbeSetNumCols(v, 1);
sqlite3VdbeSetColName(v, 0, COLNAME_NAME, zLabel, SQLITE_STATIC);
sqlite3VdbeAddOp2(v, OP_ResultRow, mem, 1);
}
int codec_set_kdf_iter(sqlite3* db, int nDb, int kdf_iter, int for_ctx) {
struct Db *pDb = &db->aDb[nDb];
CODEC_TRACE(("codec_set_kdf_iter: entered db=%p nDb=%d kdf_iter=%d for_ctx=%d\n", db, nDb, kdf_iter, for_ctx));

View File

@ -37,6 +37,10 @@
#define FILE_HEADER_SZ 16
#ifndef CIPHER_VERSION
#define CIPHER_VERSION "2.0.5"
#endif
#ifndef CIPHER
#define CIPHER "aes-256-cbc"
#endif

View File

@ -1535,6 +1535,10 @@ void sqlite3Pragma(
}
}else
/** BEGIN CRYPTO **/
if( sqlite3StrICmp(zLeft, "cipher_version")==0 && !zRight ){
extern void codec_vdbe_return_static_string(Parse *pParse, const char *zLabel, const char *value);
codec_vdbe_return_static_string(pParse, "cipher_version", CIPHER_VERSION);
}else
if( sqlite3StrICmp(zLeft, "cipher")==0 && zRight ){
extern int codec_set_cipher_name(sqlite3*, int, const char *, int);
codec_set_cipher_name(db, iDb, zRight, 2); // change cipher for both

View File

@ -1205,4 +1205,16 @@ do_test change-default-use-hmac-attach {
db close
file delete -force test.db
# verify the pragma cipher_version
# returns the currently configured
# sqlcipher version
do_test verify-pragma-cipher-version {
sqlite_orig db test.db
execsql {
PRAGMA cipher_version;
}
} {2.0.5}
db close
file delete -force test.db
finish_test