* These callback types are for an ENGINE's handler for cipher and digest logic.  * These handlers have these prototypes;  *   int foo(ENGINE *e, const EVP_CIPHER **cipher, const int **nids, int nid);  *   int foo(ENGINE *e, const EVP_MD **digest, const int **nids, int nid);  * Looking at how to implement these handlers in the case of cipher support, if  * the framework wants the EVP_CIPHER for 'nid', it will call;  *   foo(e, &p_evp_cipher, NULL, nid);    (return zero for failure)  * If the framework wants a list of supported 'nid's, it will call;  *   foo(e, NULL, &p_nids, 0); (returns number of 'nids' or -0 for error)  */ /* Returns to a pointer to the array of supported cipher 'nid's. If the 