主要函数如下:
1) ENGINE_add
将Engine加入全局到链表中。
2) ENGINE_by_id
根据id来获取Engine。
3) ENGINE_cleanup
清除所有Engine数据。
4) const EVP_CIPHER *ENGINE_get_cipher(ENGINE *e, int nid)
根据指定的硬件Engine以及对称算法的nid,获取Engine实现的对应的 EVP_CIPHER,用于对称计算。
5) ENGINE_get_cipher_engine
根据对称算法nid来获取Engine。
6) ENGINE_get_ciphers/ENGINE_set_ciphers
获取/设置指定Engine的对称算法选取函数地址,该函数用于从Engine中选择一种对称算法。
7) ENGINE_get_ctrl_function
获取Engine的控制函数地址。
8) const DH_METHOD *ENGINE_get_DH(const ENGINE *e)
获取Engine的DH_METHOD。
9) const EVP_MD *ENGINE_get_digest(ENGINE *e, int nid)
根据Engine和摘要算法nid来获取Engine中实现的摘要方法EVP_MD。
10) ENGINE *ENGINE_get_digest_engine(int nid)
根据摘要算法nid来获取Engine。
11)ENGINE_get_digests/ENGINE_set_digests
获取/设置指定Engine的摘要算法选取函数地址,该函数用于从Engine中选择一种摘要算法。
12) const DSA_METHOD *ENGINE_get_DSA(const ENGINE *e)
获取Engine的DSA方法。
13) int ENGINE_register_XXX(ENGINE *e)
注册函数,将某一个Engine添加到对应方法的哈希表中。
14) void ENGINE_unregister_XXX(ENGINE *e)
将某一个Engine从对应的哈希表中删除。
15) void ENGINE_register_all_XXX(void)
将所有的Engine注册到对应方法的哈希表中。
16)ENGINE_set_default_XXXX
设置某Engine为对应XXXX方法的默认Engine。
17) ENGINE_get_default_XXXX
获取XXXX方法的默认Engine。
18)ENGINE_load_XXXX
加载某种Engine。
19) ENGINE_get_RAND/ENGINE_set_RAND
获取/设置Engine的随机数方法。
20) ENGINE_get_RSA/ENGINE_set_RSA
获取/设置Engine的RSA方法。
21) ENGINE_get_first/ENGINE_get_next/ENGINE_get_prev/ENGINE_get_last
Engine链表操作函数。
22)ENGINE_set_name/ENGINE_get_name
设置/获取Engine名字。
23)ENGINE_set_id/ENGINE_get_id
设置/获取Engine的id。
24) int ENGINE_set_default(ENGINE *e, unsigned int flags)
根据flags将e设置为各种方法的默认Engine。
25) ENGINE_set_XXX_function
设置Engine中XXX对应的函数。
26) ENGINE_get_XXX_function
获取Engine中XXX对应的函数。
27) ENGINE_ctrl
Engine控制函数。
28) ENGINE_get_ex_data/ENGINE_set_ex_data
获取/设置Engine的扩展数据。
29)ENGINE_init/ENGINE_finish
Engine初始化/结束。
ENGINE_up_ref
给Engine增加一个引用。
ENGINE_new/ENGINE_free
生成/释放一个Engine数据结构。
ENGINE_register_complete
将给定的Engine,对于每个方法都注册一遍。
ENGINE_register_all_complete
将所有的Engine,对于每个方法都注册一遍。