C RSA\u sign是线程安全的吗

C RSA\u sign是线程安全的吗,c,rsa,C,Rsa,我在一个C语言程序中使用RSA_符号。 这个函数是线程安全的吗?因为我相信libmilter使用线程运行,有时我看到RSA\u sign在同一个密钥和文本中给出了错误的签名,而在其他时候,这些签名可以正常工作。假设您引用的是OpenSSL,那么,是的,RSA\u sign是线程安全的。正如@birrree在注释中指出的,您应该设置锁定回调函数。然而,还有一件事值得指出(尽管这可能是不言而喻的)。即使函数本身是线程安全的,您也必须以线程安全的方式使用它 具体地说,您必须确保应用程序发送给它的参数没

我在一个C语言程序中使用RSA_符号。
这个函数是线程安全的吗?因为我相信libmilter使用线程运行,有时我看到RSA\u sign在同一个密钥和文本中给出了错误的签名,而在其他时候,这些签名可以正常工作。假设您引用的是OpenSSL,那么,是的,RSA\u sign是线程安全的。正如@birrree在注释中指出的,您应该设置锁定回调函数。然而,还有一件事值得指出(尽管这可能是不言而喻的)。即使函数本身是线程安全的,您也必须以线程安全的方式使用它

具体地说,您必须确保应用程序发送给它的参数没有被可能正在更改它们的其他线程使用

  • 函数使用两个输入参数
    m
    rsa
    ,预计在操作过程中保持不变。例如,如果另一个线程在调用期间修改输入缓冲区
    m
    ,则结果将是不可预测的
  • 输出缓冲区
    sigbuf
    由RSA\u符号写入。如果它同时被另一个函数使用,那么结果也将是不可预测的

对于任何阅读此问题的人来说,它可能是在问OpenSSL的
RSA\u sign
。Ram,如果您在多线程程序中使用OpenSSL,是否遵循本页的设置?