+ ENGINE *ret = ENGINE_new();
+ if(!ret)
+ return NULL;
+ if(!ENGINE_set_id(ret, engine_atalla_id) ||
+ !ENGINE_set_name(ret, engine_atalla_name) ||
+ !ENGINE_set_RSA(ret, &atalla_rsa) ||
+ !ENGINE_set_DSA(ret, &atalla_dsa) ||
+ !ENGINE_set_DH(ret, &atalla_dh) ||
+ !ENGINE_set_BN_mod_exp(ret, atalla_mod_exp) ||
+ !ENGINE_set_init_function(ret, atalla_init) ||
+ !ENGINE_set_finish_function(ret, atalla_finish))
+ {
+ ENGINE_free(ret);
+ return NULL;
+ }