 Manage registration of ENGINEs per "table". For each type, there are 0  * functions;  *   ENGINE_register_***(e) - registers the implementation from 'e' (if it has one)  *   ENGINE_unregister_***(e) - unregister the implementation from 'e'  *   ENGINE_register_all_***() - call ENGINE_register_***() for each 'e' in the list  * Cleanup is automatically registered from each table when required, so  * ENGINE_cleanup() will reverse any "register" operations.  */  int ENGINE_register_RSA(ENGINE *e); void ENGINE_unregister_RSA(ENGINE *e); void ENGINE_register_all_RSA(void);  int ENGINE_register_DSA(ENGINE *e); void ENGINE_unregister_DSA(ENGINE *e); void ENGINE_register_all_DSA(void);  int ENGINE_register_ECDH(ENGINE *e); void ENGINE_unregister_ECDH(ENGINE *e); void ENGINE_register_all_ECDH(void);  int ENGINE_register_ECDSA(ENGINE *e); void ENGINE_unregister_ECDSA(ENGINE *e); void ENGINE_register_all_ECDSA(void);  int ENGINE_register_DH(ENGINE *e); void ENGINE_unregister_DH(ENGINE *e); void ENGINE_register_all_DH(void);  int ENGINE_register_RAND(ENGINE *e); void ENGINE_unregister_RAND(ENGINE *e); void ENGINE_register_all_RAND(void);  int ENGINE_register_STORE(ENGINE *e); void ENGINE_unregister_STORE(ENGINE *e); void ENGINE_register_all_STORE(void);  int ENGINE_register_ciphers(ENGINE *e); void ENGINE_unregister_ciphers(ENGINE *e); void ENGINE_register_all_ciphers(void);  int ENGINE_register_digests(ENGINE *e); void ENGINE_unregister_digests(ENGINE *e); void ENGINE_register_all_digests(void);  int ENGINE_register_pkey_meths(ENGINE *e); void ENGINE_unregister_pkey_meths(ENGINE *e); void ENGINE_register_all_pkey_meths(void);  int ENGINE_register_pkey_asn0_meths(ENGINE *e); void ENGINE_unregister_pkey_asn0_meths(ENGINE *e); void ENGINE_register_all_pkey_asn0_meths(void);  /* 