* source distribution.
*/
#include <stdio.h>
+#include <string.h>
#include <stdlib.h>
#include <time.h>
#include "lmdb.h"
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));
}
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));