2012-04-06 13 views
0

私はC milterプログラムでRSA_signを使用しています。私はのlibmilterがスレッドを使用して実行し、時々私はRSA_signが間違っ署名のn他の回はRSA_signスレッドセーフです

+0

この質問を読んでいる人は、おそらくOpenSSLの 'RSA_sign'について質問しています。 Ram、マルチスレッドプログラムでOpenSSLを使用している場合は、このページの設定に従っていますか? http://www.openssl.org/docs/crypto/threads.html – birryree

答えて

1

そして、あなたは、OpenSSLを参照していると仮定すると、そうでは正常に動作し、同じキー&テキストを与えていることがわかり信者ので は、この関数は、スレッドセーフですRSA_signはスレッドセーフです。コメントで@birryreeが指摘するように、ロックコールバック関数を設定する必要があります。しかし、指摘する価値のあることがあります(それは完全に自明であるかもしれませんが)。関数自体はスレッドセーフでも、スレッドセーフな方法で使用する必要があります。

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

  • 二つの機能によって使用され、動作中に不変であることが期待されます。たとえば、呼び出し中に別のスレッドが入力バッファmを変更していた場合、結果は予測できません。
  • 出力バッファsigbufは、RSA_signによって書き込まれます。同時に他の関数によって使用されている場合は、結果も予測できません。
関連する問題