diff --git a/libraries/liblmdb/mtest_enc2.c b/libraries/liblmdb/mtest_enc2.c index c99663d..e8e8b1a 100644 --- a/libraries/liblmdb/mtest_enc2.c +++ b/libraries/liblmdb/mtest_enc2.c @@ -11,6 +11,7 @@ * source distribution. */ #include +#include #include #include #include "lmdb.h" @@ -37,8 +38,8 @@ int main(int argc,char * argv[]) int count; int *values; char sval[32] = ""; - char password[] = "This is my passphrase for now"; - char ekey[32]; + char password[] = "This is my passphrase for now..."; + char *ekey; srand(time(NULL)); @@ -50,14 +51,23 @@ int main(int argc,char * argv[]) } cf = MDB_crypto(); - enckey.mv_data = ekey; - enckey.mv_size = sizeof(ekey); - cf->mcf_str2key(password, &enckey); E(mdb_env_create(&env)); E(mdb_env_set_maxreaders(env, 1)); E(mdb_env_set_mapsize(env, 10485760)); - E(mdb_env_set_encrypt(env, cf->mcf_encfunc, &enckey, cf->mcf_esumsize)); + if (cf->mcf_sumfunc) { + E(mdb_env_set_checksum(env, cf->mcf_sumfunc, cf->mcf_sumsize)); + } + if (cf->mcf_encfunc) { + ekey = malloc(cf->mcf_keysize); + enckey.mv_data = ekey; + enckey.mv_size = cf->mcf_keysize; + if (cf->mcf_str2key) + cf->mcf_str2key(password, &enckey); + else + strncpy(ekey, password, cf->mcf_keysize); + E(mdb_env_set_encrypt(env, cf->mcf_encfunc, &enckey, cf->mcf_esumsize)); + } E(mdb_env_open(env, "./testdb", 0 /*|MDB_NOSYNC*/, 0664)); E(mdb_txn_begin(env, NULL, 0, &txn));