@I_Vetrov

Как сформировать подпись строки на PHP с использованем private key и passphrase?

Всем привет, нужен совет.
В процессе интеграции сайта с сервисом, появилась необходимость подписывать api запросы (по факту - просто некоторую MD5 последовательность) приватным ключом. На сервере мы используем php.

Что было сделано до:
1. С помощью софтины сервиса сгенерировали ключевую пару открытый/закрытый ключ, указав парольную фразу.
2. Публичный ключ отправили сервису.
3. Приватный ключ закинули к себе на сервер.

И тут возник затык.
Сервис требует, чтобы процесс подписи запроса, (то есть функция, которая это выполняет) как аргумент использовал не только приватный ключ, но и парольную фразу.
То есть получается, что метод openssl_sign($str, $signature, $privkey); из openssl не подходит.
Ума не приложу, какую функцию/метод/библиотеку можно использовать, чтобы соблюдались условия.
Сервис, с которым интегрируемся, прислал нам пример реализации на .net c#, но я не пойму, как использовать это на PHP. По ссылке их пример: pastebin.com/SXT0fniy

Собственно вопрос: какую функцию/библиотеку использовать? Смотрел на gnupg, но там тоже нет парольной фразы как аргумента string gnupg_sign ( resource $identifier , string $plaintext )
Как быть?
Спасибо.
  • Вопрос задан
  • 1432 просмотра
Пригласить эксперта
Ответы на вопрос 2
riot26
@riot26
<:З )~~
php.net/manual/ru/function.gnupg-sign.php :
Подписывает переданный в параметре plaintext текст ключом, который был прежде установлен с помощью gnupg_addsignkey...

php.net/manual/ru/function.gnupg-addsignkey.php :
bool gnupg_addsignkey ( resource $identifier , string $fingerprint [, string $passphrase ] )
Ответ написан
uranik
@uranik
$sign = hash_hmac("sha512", $post_data, $secret.$passphrase);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы