回调与程序执行控制流

Provider开发设计的一大难点就是其中的参数传递与回调方式,查看OpenSSL关于provider相关部分的手册页,可以发现有一段共同的描述:

   All "functions" mentioned here are passed as function pointers
   between libcrypto and the provider in OSSL_DISPATCH(3) arrays
   via OSSL_ALGORITHM(3) arrays that are returned by the
   provider's provider_query_operation() function (see "Provider
   Functions" in provider-base(7)).

   All these "functions" have a corresponding function type
   definition named OSSL_FUNC_{name}_fn, and a helper function to
   retrieve the function pointer from an OSSL_DISPATCH(3) element
   named OSSL_FUNC_{name}.

所有在这里被提到的函数都在OSSL_DISPATCH数组中,由provider的查询操作函数,通过OSSL_ALGORITHM数组进行返回。
而信息传递则通过OSSL_PARAM数组进行,保障类型安全与扩展性。
这是Provider开发中的通用模式。

程序控制流-OSSL_Provider.gif

程序控制流-OSSL_Provider.png


回调与程序执行控制流
https://47.108.189.123/2026/08/12/实习经历/OpenHiTLS-2026/回调与程序执行控制流/
Author
Dong
Posted on
August 12, 2026
Licensed under