Я пытаюсь создать подпись данных, используя мой закрытый ключ.
Этот код работает на моей локальной машине, тогда как openssl_pkey_get_private
всегда возвращает false на моем сервере разработки, поэтому он не работает. я получил openssl_sign(): supplied key param cannot be coerced into a private key
, Что-то не так с сервером? Нужно ли мне изменять какие-либо конфигурации моего сервера?
class MyClass {
protected $pub = <<< EOT
-----BEGIN RSA PUBLIC KEY-----
..Public Key....
-----END RSA PUBLIC KEY-----
EOT;
protected $pri = <<<EOT
-----BEGIN RSA PRIVATE KEY-----
.. Private Key....-----END RSA PRIVATE KEY-----
EOT;
public function getSignature($data)
{
$signature = null;
$priKey = openssl_pkey_get_private($this->pri);
openssl_sign(iconv('UTF-8', 'UTF-16LE', $data), $signature, $priKey, "sha1WithRSAEncryption");
return base64_encode( $signature );
}
}
Задача ещё не решена.
Других решений пока нет …