Jump to content
php.lv forumi

problēmas ar openssl dgst verify


briedis

Recommended Posts

Parakstīt datus izdodas, bet nevaru pārbaudīt, vai saņemtie dati atbilst parakstam :(

 

tātad, izpildot komandu:

shell_exec('openssl dgst -sha1 -verify '.escapeshellarg(CERT_LOCATION).' -signature ' . escapeshellarg($filename2) . ' ' . escapeshellarg($filename1));

..tiek atgriezta vērtība NULL

 

Ieliekot pāris slešus (īsti nezinu kāda ir viņu nozīmē, laikam jaunu rindiņu apzīmē vai ko...)...

$return = shell_exec('openssl dgst -sha1 \ -verify '.escapeshellarg(CERT_LOCATION).' \ -signature ' . escapeshellarg($filename2) . ' \ ' . escapeshellarg($filename1));

 

Tiek atgriezts:

 

SHA1(cert.pem)= b1af7b3659fd8305ec35cd626ef65cd694dd6e8d SHA1(C:\Users\[..]\AppData\Local\Temp\ED81.tmp)= 0a82e3c5b8c94d961266779f6d023ca630f4dd61 SHA1(C:\Users\[..]\AppData\Local\Temp\ED80.tmp)= ee9756cc73115ebb84554b8dc74f4287f3467f1e

..bet ne smakas no "Verified OK" :(

 

(visi faili atrodas vajadzīgajās vietās)

 

Nesaprotu, kas par štellēm, komdanda itkā taču pareiza...

 

Heeelp!

Edited by briedis
Link to comment
Share on other sites

Nolamājos ar to shell_exec un atradu alternatīvu - openssl funkcijas...

 

strādā kā smērēts:

		$pubkeyid = openssl_get_publickey(file_get_contents(CERT_LOCATION));
	$return = openssl_verify($data, $signature, $pubkeyid);

 

..bet tāpat, kāds zin risinājumu pirmajai problēmai?

Edited by briedis
Link to comment
Share on other sites

shell_exec('openssl dgst -sha1 -verify '.escapeshellarg(CERT_LOCATION).' -signature ' . escapeshellarg($filename2) . ' ' . escapeshellarg($filename1));

//aizvietojam ar
$komanda = 'openssl dgst -sha1 -verify '.escapeshellarg(CERT_LOCATION).' -signature ' . escapeshellarg($filename2) . ' ' . escapeshellarg($filename1);
//shell_exec($komanda);

echo $komanda;

un peec tam to ko izvada no $komanda, palaižam konsolē

 

p.s a iebūvētās fcijas nedarbosies labāk kā shell_exec ?

Edited by Klez
Link to comment
Share on other sites

Komandas saturs:

 

openssl dgst -sha1 -verify "[relatīvs ceļš uz .pem]" -signature "C:\Users\[..]\AppData\Local\Temp\han829B.tmp" "C:\Users\[..]\AppData\Local\Temp\han829A.tmp"

 

Atverot konsolē, un pielabojot relatīvu ceļu uz pilno izmet kļūdu:

Error opening key file [ceļš uz .pem]
5680:error:02001003:system library:fopen:No such process:.\crypto\bio\bss_file.c
:356:fopen('[ceļš uz .pem]','rb')
5680:error:20074002:BIO routines:FILE_CTRL:system lib:.\crypto\bio\bss_file.c:35
8:
unable to load key file
error in dgst

 

..bet es nezinu kā ir uz unix production servera (slinkus eksperimentēt, jo jau esmu strādājošo variantu palaidis), man ir win sistēma...

 

 

bet nu whatever, nebūs jālieto bīstamā funkcija shell_exec... (uz production sisadmins nelabprāt man viņu pieslēdza, bet nu jau atkal var rubīt nost ;) )

Edited by briedis
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...