0

C milter プログラムで RSA_sign を使用しています。libmilter はスレッドを使用して実行されると信じているため、この関数はスレッド セーフですか?

4

1 に答える 1

1

OpenSSL について言及していると仮定すると、はい、RSA_sign はスレッドセーフです。@birryree がコメントで指摘しているように、ロック コールバック関数をセットアップする必要があります。ただし、指摘する価値のあることがもう 1 つあります (完全に自明かもしれませんが)。関数自体はスレッドセーフですが、スレッドセーフな方法で使用する必要があります。

具体的には、アプリケーションが送信するパラメーターが、それらを変更している可能性のある他のスレッドによって使用されていないことを確認する必要があります。

  • 入力パラメーターの 2mつとrsaは関数によって使用され、操作中に変更されないことが期待されます。たとえばm、呼び出し中に別のスレッドが入力バッファーを変更していた場合、結果は予測できません。
  • 出力バッファsigbufは RSA_sign によって書き込まれます。同時に別の関数で使用されている場合、結果も予測できなくなります。
于 2012-04-06T14:43:19.230 に答える