+ const RSA_METHOD *meth1;
+ const DH_METHOD *meth2;
+ ENGINE *ret = ENGINE_new();
+ if(!ret)
+ return NULL;
+ if(!ENGINE_set_id(ret, engine_cswift_id) ||
+ !ENGINE_set_name(ret, engine_cswift_name) ||
+ !ENGINE_set_RSA(ret, &cswift_rsa) ||
+ !ENGINE_set_DSA(ret, &cswift_dsa) ||
+ !ENGINE_set_DH(ret, &cswift_dh) ||
+ !ENGINE_set_BN_mod_exp(ret, &cswift_mod_exp) ||
+ !ENGINE_set_BN_mod_exp_crt(ret, &cswift_mod_exp_crt) ||
+ !ENGINE_set_init_function(ret, cswift_init) ||
+ !ENGINE_set_finish_function(ret, cswift_finish))
+ {
+ ENGINE_free(ret);
+ return NULL;
+ }