我想使用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
我有一種感覺,該功能不支持EC密鑰,只有RSA .. –