[php] ERROR 0x8f0004b: Sign Hash - input hash size error

php 8.2 fpm
SDK (2023-09-04)

KalkanCrypt_HashData(“sha256”, 0x00000800, “Hello World”, $outData);
KalkanCrypt_SignHash(“sha256”, 0x212, $outData, $outSignedHash);

Если подписывать ГОСТ-овым ключом, может возникать такая ошибка. Хэш sha256 надо подписывать RSA-ключами. Убедитесь, что вы загрузили RSA-ключ.

KalkanCrypt_HashData("", 0x00040800, “Hello World”, $outData);
KalkanCrypt_HashData("Gost34311_95", 0x00000800, “Hello World”, $outData);
KalkanCrypt_HashData("Gost34311_95", 0x00040800, “Hello World”, $outData);

с ГОСТ ключем такая же ошибка.
KalkanCrypt_SignHash(“Gost34311_95”, 0x212, $outData, $outSignedHash);

:man_superhero: @Daniyar призываю :mage: вас :sos::pray::innocent:

Запустил весь порядок у себя. Все успешно отработалось.
Предварительно загрузил с помощью LoadKeyStore() Гост ключ ЮрЛица.

Можете код прислать на knca@pki.gov.kz?

Разобрался в чем была у меня проблема - такая ошибка появляется если пытаться подписать с помощью Gost2015.

Этот алгоритм не присутствует в этой фунции? не планируется его добавлять?

Верно!

Хэш на алгоритме sha256 подписывается ключом RSA
Хэш на алгоритме Gost34311_95 подписывается ключом Gost2004
Хэш на алгоритме GostR3411_2015_512 подписывается ключом Gost2015

1 Симпатия

в документации данный параметр фигурирует?
какой флаг соответствует этому типу хэша?
вроде бы подобрал по логике - отработатывает 0x00200000 с таким значнием.

Актуальные параметры флагов на сегодняшний день.

#define KC_HASH_SHA256 0x00020000
#define KC_HASH_GOST95 0x00040000
#define KC_HASH_GOST15_512 0x00200000

Если нет в документации, добавим в след. выпуске.