首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Openssl引擎和Openssl软件实现之间动态切换?

如何在Openssl引擎和Openssl软件实现之间动态切换?
EN

Stack Overflow用户
提问于 2020-10-21 19:37:15
回答 1查看 169关注 0票数 1

我正在尝试通过以下方式使用软件实现来测试我的openssl引擎代码。

步骤1:加载我的openssl引擎。

步骤2:使用ECDSA和openssl-Engine进行签名(api使用ECDSA_sign)。

步骤3:卸载openssl引擎。

步骤4:验证使用openssl的软件实现(使用ECDSA_verify的api)。

我发现一旦引擎被加载,我就不能卸载openssl引擎。

我使用了ENIGINE_finish和ENGINE_free应用程序接口,它们去掉了结构和函数引用。仍然不会删除引擎反射。

如何在Openssl引擎和openssl软件实现之间进行动态切换?

EN

回答 1

Stack Overflow用户

发布于 2020-10-23 05:52:35

假设您在第1步中执行类似的操作,为了简洁起见,我省略了所有返回代码检查:

代码语言:javascript
复制
ENGINE *e = ENGINE_by_id("dynamic");
ENGINE_ctrl_cmd_string(e, "SO_PATH", "my-engine", 0);
ENGINE_ctrl_cmd_string(e, "LOAD", NULL, 0);
ENGINE_set_default_EC(e)

然后,在完成您的ECDSA签名计算之后,我相信(实际上没有测试过它)应该可以使用相同的e值调用它,

代码语言:javascript
复制
ENGINE_unregister_EC(e);

切换回OpenSSL附带的默认EC实现,并继续进行签名验证。

请注意,如果您的引擎也实现了该摘要,并且您也想对其进行测试,则您可能必须对您在签名计算过程中使用的摘要执行类似的操作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64462706

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档