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:
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
c:\\keys\\test_cert.pem
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 :) ]