[PHP] Openssl_verify werkt niet

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Cyrus-The-Virus
  • Registratie: Juni 2003
  • Laatst online: 22-10-2024
Hallo allen,

Ik heb een probleem met de functie openssl_verify()

De bedoeling is om een message body te encrypten en aan de andere kant van de lijn de signature daarvan te checken om zo te kijken of de body niet veranderd is.

nu heb ik even een klein stukje code gemaakt die het zou moeten doen.

Als ik gewoon de openssl_public_decrypt gebruik werkt het perfect, de goede body komt weer tevoorschijn.

openssl_verify zou een TRUE moeten geven maar helaas doet hij dat niet. Nu lees ik bij php.net dat de voorbeelden daar niet goed zijn. maar de oplossingen die ze daarvoor aanbieden werken ook niet.

De private key en certificate zijn goed anders zou de decrypt naar mijn weten ook niet lukken.

Hier mijn sample code:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php 

$message = "Hallo dit is een test";
$nl = chr(10).chr(13);

echo "Message: " . $message . $nl;

$priv = openssl_get_privatekey(file_get_contents("c:\\keys\\test_privatekey.pem"), "123456");

$sha = strtoupper(sha1($message));

echo "SHA1: " . $sha . $nl;

$x = openssl_private_encrypt($sha, $sig, $priv);

echo "SIG: " . $sig . $nl;

openssl_free_key($priv);

$pub = openssl_get_publickey(file_get_contents("c:\\keys\\test_cert.pem"));

$y = openssl_public_decrypt($sig, $decr, $pub);

echo "DECR: " . $decr . $nl;

$z = openssl_verify($sha,$sig, $pub);

echo "VERIFY: " . $z . $nl;

openssl_free_key($pub);

?>


als ik dit uitvoer dan is $decr = $sha wat dus goed is. maar helaas blijft de verify FALSE...

iemand een idee hoe dit toch wel werkend te krijgen?

alvast bedankt :)


Gr,

Maurice

keys:

c:\\keys\\test_privatekey.pem
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,D02FAE2401571263

agbkWZ5qVr6AzzlGbxKNJXzY6DdRt9gRaCIgJ+CvF/JgVlHxyGa6JFsXCKiR+yQC
tcFflYCZAt4TE7IOK5eMsdyOyknHpbQ87OI7D1/AZGKnq44TH6os1hI2oju6GGDC
Q2bZNd5Lm6mlHCNbv8McaMXR5pn1sbVdzBClyiaXZxzKRcVPeOd5W/4spl0025G5
g/7pI/94hoWnx65Ue/StEkREGvRY3MHfbFnHESn1cGVjQev+laT8TqtLaBZcIp9w
XZtQXdK6j+jvTbnS/9ZjU65B9yKonjovmbSyWUY8PAOJrXTOREiYLqildDPA65OM
uLmmXpJKYYW25mcwmUCOtg56RFPdGgWuiwgKByDAa6KB2rRNq9sxAm8HSHS6leXa
aYwPmWxZ/BjGxKne5AcEhdpe7cQR/c9PBQv+uQTkm6YptVEdNj+5c4kcDSI41c6f
ch+m8XtpnHPtesMWdWlPqmyqx1fCmLNNdBd/njCdkwlGs2Ojw2R4cg9z7bhU2KS8
BwZ6H/88aFT5/eN3PzI+aXdKEbYo71qypexDLhIrvMn97r9kyyvAwfiSiHHZ0lNs
nrVrRKaCzxH/B9lF5pnj/1BqnRkDxXjkqwUVg6DWlfUMfq2g8LcrAi3BQVrGKo6R
8tVcWjCIvmLk2i7+zAoLwam+tUYHzgcXWpm36+FPOyiRO7yGGsMT+AOyAavyEUpI
SXkbZy8c3zYXZV0c3hVt+rvLGehiSmj2hnTPGPCAxhYIhGo9CH81w71oPukfscQi
MVYJr8bBvQdg+8bV2pf9iEprvQjWOCc3peuIfEg6BR5FSUjdLDbtHg==
-----END RSA PRIVATE KEY-----


c:\\keys\\test_cert.pem

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
-----BEGIN CERTIFICATE-----
MIIDfTCCAuagAwIBAgIBADANBgkqhkiG9w0BAQQFADCBjDELMAkGA1UEBhMCbmwx
EDAOBgNVBAgTB1V0cmVjaHQxDTALBgNVBAoTBDRETVMxFDASBgNVBAcTC0lKc3Nl
bHN0ZWluMQwwCgYDVQQLEwNJQ1QxFjAUBgNVBAMTDWRtY2FtcGFnbmUuZXUxIDAe
BgkqhkiG9w0BCQEWEW0uYmVja21hbkA0ZG1zLm5sMB4XDTA5MTAyMjE0NTg1MFoX
DTE5MTAyMDE0NTg1MFowgYwxCzAJBgNVBAYTAm5sMRAwDgYDVQQIEwdVdHJlY2h0
MQ0wCwYDVQQKEwQ0RE1TMRQwEgYDVQQHEwtJSnNzZWxzdGVpbjEMMAoGA1UECxMD
SUNUMRYwFAYDVQQDEw1kbWNhbXBhZ25lLmV1MSAwHgYJKoZIhvcNAQkBFhFtLmJl
Y2ttYW5ANGRtcy5ubDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA1PyOa6fK
ryZJgHKC8YPADQLM34YGwOptOgP2TNIUnpNp2WATLsBjxaPxX5kgeXzj1ipU/TD+
rO2bgTFiN1ziJLY5o0xNAJSP9iBf9oaY2iWLs2T09B4sUAmujw5umfQOjCLlJSS/
8gCOCIdD2jJMAjozOTH0lYo0FA6yGF83TNECAwEAAaOB7DCB6TAdBgNVHQ4EFgQU
Zf4hbMSCvQrbHUsvvgeMZkRJGoAwgbkGA1UdIwSBsTCBroAUZf4hbMSCvQrbHUsv
vgeMZkRJGoChgZKkgY8wgYwxCzAJBgNVBAYTAm5sMRAwDgYDVQQIEwdVdHJlY2h0
MQ0wCwYDVQQKEwQ0RE1TMRQwEgYDVQQHEwtJSnNzZWxzdGVpbjEMMAoGA1UECxMD
SUNUMRYwFAYDVQQDEw1kbWNhbXBhZ25lLmV1MSAwHgYJKoZIhvcNAQkBFhFtLmJl
Y2ttYW5ANGRtcy5ubIIBADAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBAUAA4GB
AG68OaxHE9jgRvHeOqFWMRb8Qj/JyBBPDGnucg3cj8oXmTfhbSsyJLCgP8WoPoOM
Klu/rFMcyqMzXNI1qklW05GLBqr5ROQMhoAP7f0mF/HqfUEyOE2zmtrKf8RztO7g
0kX0DhmhfpxlV8HI2OzVjoWaLOqPVFZAkH6dsuA1JaHt
-----END CERTIFICATE-----

[ Voor 0% gewijzigd door Cyrus-The-Virus op 10-11-2009 16:03 . Reden: ipv [code] [php] n.a.v. tip van modje :) ]


Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
offtopic:
Als je [php] of [code=php] tags gebruikt heb je code highlighting en is het wat beter te lezen

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Volgens mij moet je die signature genereren met openssl_sign functie en dat zie ik je niet gebruiken. Toevallig bezig met OpenSSL dingetje dus moest ineens aan dit topic denken ;)

edit: werkt dus prima icm. openssl_sign :)

[ Voor 8% gewijzigd door Cartman! op 11-11-2009 16:53 ]


Acties:
  • 0 Henk 'm!

  • Cyrus-The-Virus
  • Registratie: Juni 2003
  • Laatst online: 22-10-2024
ok, ik zal dat morgen eens proberen. hopelijk werkt het dan wel.

Edit: Het werkt inderdaad met openssl_sign. tnx voor de hulp nu kan ik weer verder ermee.

[ Voor 42% gewijzigd door Cyrus-The-Virus op 12-11-2009 13:15 . Reden: . ]


  • Cartman!
  • Registratie: April 2000
  • Niet online
Volgende keer gewoon even de handleiding lezen dus ;)