#endif
}
+void mlm_setup0(MDB_env *env, MDB_crypto_funcs *cf, const char *password)
+{
+ MDB_val enckey = {0};
+ if (cf->mcf_sumfunc) {
+ mdb_env_set_checksum(env, cf->mcf_sumfunc, cf->mcf_sumsize);
+ }
+ if (cf->mcf_encfunc && password) {
+ char keybuf[2048];
+ enckey.mv_data = keybuf;
+ enckey.mv_size = cf->mcf_keysize;
+ if (cf->mcf_str2key)
+ cf->mcf_str2key(password, &enckey);
+ else
+ strncpy(enckey.mv_data, password, enckey.mv_size);
+ mdb_env_set_encrypt(env, cf->mcf_encfunc, &enckey, cf->mcf_esumsize);
+ memset(enckey.mv_data, 0, enckey.mv_size);
+ }
+}
+
void *mlm_setup(MDB_env *env, const char *file, const char *password, char **errmsg)
{
MDB_crypto_funcs *cf;
- MDB_val enckey = {0};
void *mlm = mlm_load(file, NULL, &cf, errmsg);
if (mlm) {
- if (cf->mcf_sumfunc) {
- mdb_env_set_checksum(env, cf->mcf_sumfunc, cf->mcf_sumsize);
- }
- if (cf->mcf_encfunc && password) {
- char keybuf[2048];
- enckey.mv_data = keybuf;
- enckey.mv_size = cf->mcf_keysize;
- if (cf->mcf_str2key)
- cf->mcf_str2key(password, &enckey);
- else
- strncpy(enckey.mv_data, password, enckey.mv_size);
- mdb_env_set_encrypt(env, cf->mcf_encfunc, &enckey, cf->mcf_esumsize);
- memset(enckey.mv_data, 0, enckey.mv_size);
- }
+ mlm_setup0(env, cf, password);
}
return mlm;
}
void *mlm_load(const char *file, const char *name, MDB_crypto_funcs **mcf_ptr, char **errmsg);
void mlm_unload(void *lm);
void *mlm_setup(MDB_env *env, const char *file, const char *password, char **errmsg);
+void mlm_setup0(MDB_env *env, MDB_crypto_funcs *cf, const char *password);