第二十三章 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)

获取EngineDH_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

11ENGINE_get_digests/ENGINE_set_digests

获取/设置指定Engine的摘要算法选取函数地址,该函数用于从Engine中选择一种摘要算法。

12)  const DSA_METHOD *ENGINE_get_DSA(const ENGINE *e)

获取EngineDSA方法。

13)  int ENGINE_register_XXX(ENGINE *e)

注册函数,将某一个Engine添加到对应方法的哈希表中。

14)  void ENGINE_unregister_XXX(ENGINE *e)

将某一个Engine从对应的哈希表中删除。

15)  void ENGINE_register_all_XXX(void)

将所有的Engine注册到对应方法的哈希表中。

16ENGINE_set_default_XXXX

设置某Engine为对应XXXX方法的默认Engine

17)  ENGINE_get_default_XXXX

获取XXXX方法的默认Engine

18ENGINE_load_XXXX

加载某种Engine

19)  ENGINE_get_RAND/ENGINE_set_RAND

获取/设置Engine的随机数方法。

20)  ENGINE_get_RSA/ENGINE_set_RSA

获取/设置EngineRSA方法。

21)  ENGINE_get_first/ENGINE_get_next/ENGINE_get_prev/ENGINE_get_last

Engine链表操作函数。

22ENGINE_set_name/ENGINE_get_name

设置/获取Engine名字。

23ENGINE_set_id/ENGINE_get_id

设置/获取Engineid

24)  int ENGINE_set_default(ENGINE *e, unsigned int flags)

根据flagse设置为各种方法的默认Engine

25)  ENGINE_set_XXX_function

设置EngineXXX对应的函数。

26)  ENGINE_get_XXX_function

获取EngineXXX对应的函数。

27)  ENGINE_ctrl

Engine控制函数。

28)  ENGINE_get_ex_data/ENGINE_set_ex_data

获取/设置Engine的扩展数据。

29ENGINE_init/ENGINE_finish

Engine初始化/结束。

ENGINE_up_ref

Engine增加一个引用。

ENGINE_new/ENGINE_free

生成/释放一个Engine数据结构。

ENGINE_register_complete

将给定的Engine,对于每个方法都注册一遍。

ENGINE_register_all_complete

将所有的Engine,对于每个方法都注册一遍。