2016-09-24 222 views
0

我想使用PHP來計算ECDH(橢圓曲線Diffie Hellman)的共享機密。openssl_dh_compute_key返回false

假設我有一個人的公鑰:

exec('openssl ecparam -genkey -name prime256v1 -noout -out example-ecc.pem'); 
$private = openssl_pkey_get_private("file://example-ecc.pem"); 

然後我打電話:

$clientPublickey="BOLcHOg4ajSHR6BjbSBeX_6aXjMu1V5RrUYXqyV_FqtQSd8RzdU1gkMv1DlRPDIUtFK6Nd16Jql0eSzyZh4V2uc"; 

我使用OpenSSL的產生我的鑰匙

$sharedSecret=openssl_dh_compute_key(base64_decode($clientPublickey), $private); 

...我得到錯誤的。 調用openssl_error_string()不會返回任何錯誤。

我var_dumped openssl_pkey_get_details($ private)並驗證它是正確創建的。

有任何建議嗎?這個功能似乎沒有太多的信息。 http://php.net/manual/en/function.openssl-dh-compute-key.php

+0

我有一種感覺,該功能不支持EC密鑰,只有RSA .. –

回答