2017-03-08 2 views
1

eine openssl Funktion wieIst es sicher, RSA, EVP_PKEY usw. Strukturen wieder zu verwenden?

int RSA_private_decrypt(int flen, unsigned char *from, 
unsigned char *to, RSA *rsa, int padding); 

es scheint wahrscheinlich, dass "unsigned char * von" Gegeben tatsächlich "const unsigned char * aus" ist.

Aber wie wäre es mit der RSA? Gibt es andere Dokumentation als den Quellcode, um festzustellen, ob diese und ähnliche Funktionen den übergebenen RSA ändern können?

Ist es sicher, dieselbe RSA zu verwenden, um RSA_private_decrypt erneut zu verwenden, indem dieselbe RSA übergeben wird?

Das Lesen des Quellcodes zur Bestimmung scheint ziemlich angespannt - es zeigt an, ob die Version, die ich betrachte, sicher ist, aber da die API keine Ansprüche an const erhebt, könnte das Verhalten jederzeit geändert werden.

+0

Ich glaube, OpenSSL macht heute eine bessere Arbeit bei Const-Ness. Welche Version der Bibliothek verwenden Sie? – jww

+0

Meine Anwendung verwendet 1.0.2. Aber die API ist die gleiche in 1.1.0 –

Antwort

1

Tatsächlich wird das Argument "from" in OpenSSL 1.1.0 und 1.0.2 als const deklariert, aber es gibt einen Fehler in der Dokumentation. Ich hob nur ein PR, es zu beheben:

https://github.com/openssl/openssl/pull/2899

RSA ist definitiv nicht konst. Es kann modifiziert werden (z. B. für Verblendungszwecke).

Ja, Sie können das gleiche RSA-Objekt in einem nachfolgenden Aufruf verwenden.

+0

Und die oben genannten PR ist jetzt in Git, so dass die Dokumente in der nächsten Version behoben werden. –

Verwandte Themen