ERR_load_AEP_strings();
ERR_load_AEPHK_strings();
static int bind_aep(ENGINE *e)	{#ifndef OPENSSL_NO_RSA	const RSA_METHOD  *meth1;#endif#ifndef OPENSSL_NO_DSA	const DSA_METHOD  *meth2;#endif#ifndef OPENSSL_NO_DH	const DH_METHOD	  *meth3;#endif	if(!ENGINE_set_id(e, engine_aep_id) ||		!ENGINE_set_name(e, engine_aep_name) ||#ifndef OPENSSL_NO_RSA		!ENGINE_set_RSA(e, &aep_rsa) ||#endif#ifndef OPENSSL_NO_DSA		!ENGINE_set_DSA(e, &aep_dsa) ||#endif#ifndef OPENSSL_NO_DH		!ENGINE_set_DH(e, &aep_dh) ||#endif#ifdef AEPRAND		!ENGINE_set_RAND(e, &aep_random) ||#endif		!ENGINE_set_init_function(e, aep_init) ||		!ENGINE_set_destroy_function(e, aep_destroy) ||		!ENGINE_set_finish_function(e, aep_finish) ||		!ENGINE_set_ctrl_function(e, aep_ctrl) ||		!ENGINE_set_cmd_defns(e, aep_cmd_defns))		return 0;#ifndef OPENSSL_NO_RSA	/* We know that the "PKCS1_SSLeay()" functions hook properly	 * to the aep-specific mod_exp and mod_exp_crt so we use	 * those functions. NB: We don't use ENGINE_openssl() or	 * anything "more generic" because something like the RSAref	 * code may not hook properly, and if you own one of these	 * cards then you have the right to do RSA operations on it	 * anyway! */	meth1 = RSA_PKCS1_SSLeay();	aep_rsa.rsa_pub_enc = meth1->rsa_pub_enc;	aep_rsa.rsa_pub_dec = meth1->rsa_pub_dec;	aep_rsa.rsa_priv_enc = meth1->rsa_priv_enc;	aep_rsa.rsa_priv_dec = meth1->rsa_priv_dec;#endif#ifndef OPENSSL_NO_DSA	/* Use the DSA_OpenSSL() method and just hook the mod_exp-ish	 * bits. */	meth2 = DSA_OpenSSL();	aep_dsa.dsa_do_sign    = meth2->dsa_do_sign;	aep_dsa.dsa_sign_setup = meth2->dsa_sign_setup;	aep_dsa.dsa_do_verify  = meth2->dsa_do_verify;	aep_dsa = *DSA_get_default_method(); 	aep_dsa.dsa_mod_exp = aep_dsa_mod_exp; 	aep_dsa.bn_mod_exp = aep_mod_exp_dsa;#endif#ifndef OPENSSL_NO_DH	/* Much the same for Diffie-Hellman */	meth3 = DH_OpenSSL();	aep_dh.generate_key = meth3->generate_key;	aep_dh.compute_key  = meth3->compute_key;	aep_dh.bn_mod_exp   = meth3->bn_mod_exp;#endif	/* Ensure the aep error handling is set up */	ERR_load_AEP_strings();	return 1;}