0
私はC milterプログラムでRSA_signを使用しています。私はのlibmilterがスレッドを使用して実行し、時々私はRSA_signが間違っ署名のn他の回はRSA_signスレッドセーフです
私はC milterプログラムでRSA_signを使用しています。私はのlibmilterがスレッドを使用して実行し、時々私はRSA_signが間違っ署名のn他の回はRSA_signスレッドセーフです
そして、あなたは、OpenSSLを参照していると仮定すると、そうでは正常に動作し、同じキー&テキストを与えていることがわかり信者ので は、この関数は、スレッドセーフですRSA_signはスレッドセーフです。コメントで@birryreeが指摘するように、ロックコールバック関数を設定する必要があります。しかし、指摘する価値のあることがあります(それは完全に自明であるかもしれませんが)。関数自体はスレッドセーフでも、スレッドセーフな方法で使用する必要があります。
具体的には、アプリケーションが送信するパラメータが、変更している可能性のある他のスレッドによって使用されていないことを確認する必要があります。入力パラメータm
とrsa
の
m
を変更していた場合、結果は予測できません。sigbuf
は、RSA_signによって書き込まれます。同時に他の関数によって使用されている場合は、結果も予測できません。
この質問を読んでいる人は、おそらくOpenSSLの 'RSA_sign'について質問しています。 Ram、マルチスレッドプログラムでOpenSSLを使用している場合は、このページの設定に従っていますか? http://www.openssl.org/docs/crypto/threads.html – birryree