![]() |
RSA Signatur unter PHP - Verify in Delphi
Hallo,
eigentlich sollte dies ganz einfach sein .... in PHP benutze ich openssl um ein public/privat key paar zu erstellen
Code:
Und erstelle nun eine Signatur aus meinen Daten:
$config = array(
"digest_alg" => "SHA256", "private_key_bits" => 2048, "private_key_type" => OPENSSL_KEYTYPE_RSA, ); $res = openssl_pkey_new($config); openssl_pkey_export($res, $privKey); openssl_sign($data, $signatur, $privKey, "sha256" ); In Delphi möchte ich nun die Signatur mit dem öffentlichen Schlüssel prüfen. In PHP geht das ganz einfach:
Code:
Ich habe leider keine Delphi Anbindung an openssl gefunden die verify (oder alternativ public_decrypt) unterstützt. (private_decrypt wird u.a.
$pubKey = openssl_pkey_get_details($res);
$pubKey = $pubKey["key"]; $ok = openssl_verify($data, $signatur, $pubKey, "sha256" ); ![]() Also habe ich TMSCrypt lizensiert. Dort wird als Eingabe Parameter aber modulus/PublicExponent erwartet. Und hier komme ich nicht weiter, nicht mit RSAEncSign1.FromOpenSSLPublicKey und auch nicht durch Eintragen der Werte die ich mit PHP so ermittelt habe. Verify gibt immer -316 zurück.
Code:
Hat jemand die Lösung?
$all=openssl_pkey_get_details( $res );
$rsa = $all["rsa"]; echo 'Modulus='.base64_encode ($rsa["n"]).'<br>'; echo 'Exponent='.base64_encode ($rsa["e"]).'<br>'; Julian |
AW: RSA Signatur unter PHP - Verify in Delphi
Fehler gefunden
es funktioniert! Falls jemand dies auch machen will, hier der code zur Konvertierung // Convert OpenSLL to TMSCrypt RSAEncSign1.outputFormat := base64; RSAEncSign1.withOpenSSL := true; RSAEncSign1.FromOpenSSLPublicKey( '.....PEM' ); PublicExponentStr := RSAEncSign1.PublicExponent; modulusStr := RSAEncSign1.modulus; Um den Key für die Zukunft zu speichern verwendet man in PHP openssl_pkey_export_to_file($res, "../../name.pem", "password", $config ); Das laden get dann so $newPrivKey = openssl_pkey_get_private( "file://../../name.pem", "password" ); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:24 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz