第二十三章 Engine / 23.5 Engine函数

主要函数如下:

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,对于每个方法都注册一遍。