我在 C milter 程序中使用 RSA_sign。这个函数线程安全吗,因为我相信 libmilter 使用线程运行,有时我看到 RSA_sign 给出了不正确的签名 n 相同的密钥和文本在其他时间工作正常
问问题
526 次
1 回答
1
假设您指的是 OpenSSL,那么,是的,RSA_sign 是线程安全的。正如@birryree 在评论中指出的那样,您应该设置锁定回调函数。然而,还有一点值得指出(尽管它可能是完全不言而喻的)。即使函数本身是线程安全的,您也必须以线程安全的方式使用它。
具体来说,您必须确保您的应用程序发送给它的参数没有被可能正在更改它们的其他线程使用。
- 两个输入参数
m
和rsa
由函数使用,预计在操作期间保持不变。例如,如果另一个线程m
在调用期间正在修改输入缓冲区,则结果将是不可预测的。 - 输出缓冲区
sigbuf
由 RSA_sign 写入。如果它同时被另一个函数使用,那么结果也将是不可预测的。
于 2012-04-06T14:43:19.230 回答