2012-04-06 14 views
0

Ich verwende RSA_sign in einem C-Milter-Programm. Unter der Annahme, Ist diese Funktion Thread-sicher, weil ich libmilter believer läuft Threads und manchmal sehe ich, dass RSA_sign falsche Signaturen n die gleichen Tasten & Text,ist RSA_sign thread safe

+0

Für jeden, der diese Frage liest, fragt er wahrscheinlich nach 'RSA_sign' von OpenSSL. Ram, wenn Sie OpenSSL in einem Multithread-Programm verwenden, haben Sie das Setup auf dieser Seite befolgt? http://www.openssl.org/docs/crypto/threads.html – birryree

Antwort

1

zu anderen Zeiten funktionieren gibt, dass Sie OpenSSL beziehen, dann, ja , RSA_sign ist Thread-sicher. Wie @birrreee im Kommentar ausführt, sollten Sie die Sperr-Callback-Funktionen einrichten. Es gibt jedoch noch etwas, auf das es sich zu beziehen lohnt (obwohl es völlig selbstverständlich ist). Obwohl die Funktion selbst threadsicher ist, müssen Sie sie threadsicher verwenden.

Insbesondere müssen Sie sicherstellen, dass die Parameter, die Ihre Anwendung sendet, nicht von anderen Threads verwendet werden, die sie möglicherweise ändern.

  • Zwei der Eingangsparameter und mrsa von der Funktion verwendet werden, und wird erwartet, dass während des Betriebs unveränderlich sein. Wenn beispielsweise ein anderer Thread während des Aufrufs den Eingabepuffer m geändert hat, sind die Ergebnisse unvorhersehbar.
  • Der Ausgabepuffer sigbuf wird von RSA_sign geschrieben. Wenn es gleichzeitig von einer anderen Funktion verwendet wird, sind die Ergebnisse auch nicht vorhersagbar.