+int ENGINE_set_load_privkey_function(ENGINE *e, ENGINE_LOAD_KEY_PTR loadpriv_f)
+ {
+ e->load_privkey = loadpriv_f;
+ return 1;
+ }
+
+int ENGINE_set_load_pubkey_function(ENGINE *e, ENGINE_LOAD_KEY_PTR loadpub_f)
+ {
+ e->load_pubkey = loadpub_f;
+ return 1;
+ }
+
+int ENGINE_set_flags(ENGINE *e, int flags)
+ {
+ e->flags = flags;
+ return 1;
+ }
+
+int ENGINE_cpy(ENGINE *dest, const ENGINE *src)
+ {
+ if(ENGINE_set_id(dest, ENGINE_get_id(src)) &&
+ ENGINE_set_name(dest, ENGINE_get_name(src)) &&
+ ENGINE_set_RSA(dest, ENGINE_get_RSA(src)) &&
+ ENGINE_set_DSA(dest, ENGINE_get_DSA(src)) &&
+ ENGINE_set_DH(dest, ENGINE_get_DH(src)) &&
+ ENGINE_set_RAND(dest, ENGINE_get_RAND(src)) &&
+ ENGINE_set_BN_mod_exp(dest,
+ ENGINE_get_BN_mod_exp(src)) &&
+ ENGINE_set_BN_mod_exp_crt(dest,
+ ENGINE_get_BN_mod_exp_crt(src)) &&
+ ENGINE_set_init_function(dest,
+ ENGINE_get_init_function(src)) &&
+ ENGINE_set_finish_function(dest,
+ ENGINE_get_finish_function(src)) &&
+ ENGINE_set_ctrl_function(dest,
+ ENGINE_get_ctrl_function(src)) &&
+ ENGINE_set_load_privkey_function(dest,
+ ENGINE_get_load_privkey_function(src)) &&
+ ENGINE_set_load_pubkey_function(dest,
+ ENGINE_get_load_pubkey_function(src)) &&
+ ENGINE_set_flags(dest, ENGINE_get_flags(src)))
+ return 1;
+ return 0;
+ }
+
+const char *ENGINE_get_id(const ENGINE *e)