Ich verwende PHP 5.2.13 auf einem Windows Server 2008 R2-Rechner (Windows 7 äquivalent).PHP OpenSSL undefinierte Konstante OPENSSL_ALGO_DSS1
Ich schreibe meistens nur, weil ich eine google dead end Suche nach der Warnung bekomme und ich versuche, etwas dafür hinzuzufügen.
ich die folgende Mitteilung/Warnung erhalten:
Verwendung von undefinierter Konstante OPENSSL_ALGO_DSS1 - angenommen 'OPENSSL_ALGO_DSS1'
openssl_verify() Parametern 4 seine lange erwartet, string
gegeben
Beim Ausführen dieser Codezeile:
return openssl_verify($data, $signature, $this->getPublicKey(), OPENSSL_ALGO_DSS1);
Offensichtlich wird die zweite Warnung durch die erste verursacht.
aber das Problem ist nicht, dass die OpenSSL-Bibliothek nicht geladen wird, wie ich die folgende Ausgabe von phpinfo
haben: auf allen anderen Maschinen
OpenSSL support enabled
OpenSSL Version OpenSSL 0.9.8k 25 Mar 2009
Dies funktioniert, dass es auf getestet wurde, so Da ist etwas Maschinenspezifisches.
Der einzige Unterschied, den ich entdeckt habe, ist die folgende von phpinfo:
Registered Stream Socket Transports tcp, udp
vs auf Maschinen, bei denen es funktioniert:
Registered Stream Socket Transports tcp, udp, ssl, sslv3, sslv2, tls
Aber ich bin nicht sicher, ob das ein roter Hering oder nicht.
Wie erhalten Sie den ** öffentlichen Schlüssel ** für openssl_verfiy()? –
ich bin mir sicher, dass du das schon besuchst aber immernoch mit anderen typen guckst und versuche zu debuggen: http://php.net/manual/en/function.openssl-verify.php –
@SoniVimal das geht über ein 'fred' von der DSA öffentlicher Schlüssel, den ich verwende. Ich gebe also eine Reihe von Dateiinhalten ein. Das hat aber nicht viel damit zu tun, dass die open_ssl-Bibliothek die Konstante 'OPENSSL_ALGO_DSS1', die Teil der Bibliothek – icc97