首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何中止RSA_generate_key?

如何中止RSA_generate_key?
EN

Stack Overflow用户
提问于 2013-03-03 14:34:32
回答 6查看 2.9K关注 0票数 8

考虑下面的RSA_generate_key()调用

代码语言:javascript
运行
复制
RSA * rsa = RSA_generate_key(8192, RSA_F4, NULL, NULL);

生成8,192位RSA密钥可能需要很长时间(从几秒钟到几分钟不等)。假设包含上述代码行的应用程序为用户提供了一个取消密钥生成的按钮。

如何在密钥生成之前中止计算并使函数返回?我记得RSA_generate_key()的第三个参数是一个用于显示进度的回调函数--有没有办法让回调返回一个表示“中止操作并返回”的值?

在另一个线程中运行函数,然后终止该线程不是一种选择。

EN

Stack Overflow用户

发布于 2013-03-30 11:53:30

虽然我从来没有遇到过这样的情况,也从来没有做过任何事情。如果您可以修改OpenSSL的源代码,可以尝试如下操作:

假设一个变量V在两个函数之间共享。所以它要么是一个全局变量,要么是文件中的静态变量,并被RSA_generate_key使用,也就是另一个函数RSA_set_V。

RSA_generate_key将仅读取该变量。RSA_set_V设置变量。

在RSA_generate_key中,耗时的循环可能会使用检查此变量的附加条件。它可以终止此循环或在某个V值时退出函数。

代码语言:javascript
运行
复制
  while (V!=CERTAIN_VALUE && Rest_of_Condition) {
      //Loop body.
  }

现在,在RSA_set_V中,将V设置为CERTAIN_VALUE。当用户单击Stop时,调用RSA_set_V。它应该会停止RSA_generate_key。

然而,它几乎没有什么问题。这可能会减慢RSA_generate_key的速度。

票数 1
EN
查看全部 6 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15183101

复制
相关文章

相似问题

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