Добрый день, коллеги.
Есть ли этот метод в KalkanCrypt?
Или эти методы, которые есть в NCALayer в JS?
"module": "kz.gov.pki.knca.commonUtils",
"method": "createCMSSignatureFromBase64",
OS Linux, PHP.
Добрый день, коллеги.
Есть ли этот метод в KalkanCrypt?
Или эти методы, которые есть в NCALayer в JS?
"module": "kz.gov.pki.knca.commonUtils",
"method": "createCMSSignatureFromBase64",
OS Linux, PHP.
Это названия одного из модулей в NCALayer и название метода из этого модуля.
Добрый день, коллега.
Реализация этого метода в KalkanCrypt есть, или альтенатива?
Нашел метод _SignData(), но как подписывать значения? И есть аргумент, которое передается, flags - их параметры как найти?
Коллеги, есть документация.
PHP_FUNCTION KalkanCrypt_SignData ([in] CHAR alias, [in] INT flags, [in] CHAR inData, [out] CHAR* outSign);
Параметры:
[in] CHAR alias — label (alias) сертификата;
[in] INT flags — флаги. Устанавливают формат входных/выходных данных, тип подписи (см. KalkanCrypt flags);
[in] CHAR inData — входные данные;
KalkanCrypt flags - как найти эти параметры?
Добрый день!
Флаги указаны в таблице KALKANCRYPTCOM_FLAGS Константы, определяющие дополнительные условия выполнения операций. Используется как параметр в функциях. на 3 странице в документации.
Применение флагов библиотек описано в файле: COM(Windows)\docs\SignData_and_VerifyData.docx
Как мне подписать данные, с включением данных в подпись через KalkanCrypt?
Есть метод KalkanCrypt_SignData();
Этим методом Я могу подписывать данные?
Скажем используя свой ЭЦП файл RSA_xxx.p12?
В SDK есть пример по использованию php-библиотеки kalkancrypt.
С помощью метода KalkanCrypt_SignData();
Вот простенький пример по подписи “Hello World!”
Рахмет, Данил.
По исходникам смотрел и разбирался.
Мне кажется есть ошибка в методе VerifyData
. Т.е. порядок аргументов не правильно указан в документации.
В документации:
VerifyData(" ", kalkanFlags, 0, inData, inSign, out outData, out outVerifyInfo, out outCert);
В C заголовке:
unsigned long(*VerifyData)(char *alias, int flags, char *inData, int inDataLength, unsigned char *inoutSign, int inoutSignLength,
В примере на Windows:
$PHP_LIB->VerifyData("", $kalkanFlags, 0, $inData, $inSign, $outData, $outVerifyInfo, $outCert);
В примере на Linux:
$err = KalkanCrypt_VerifyData($alias, $flags_sign, $inData, 0, $outSign, $outData, $outVerifyInfo, $outCert);
Т.е. порядок inData, inDataLength меняется местами. Прошу посмотреть и исправить, если ошибочно написали.
А этот метод есть в KalkanCrypt?
Я сам попробовал подписать используя ЭЦП ключ, который начинаетсяс RSA_xxx.p12.
Можно ли как-то проверить выходные данные из NCALayer createCMSSignatureFromBase64()
через KalkanCrypt_VerifyData()
?
Или это разные модули и у них по-разному реализован способы шифрования?
Данная ошибка уже исправлена и в следующем обновлении выйдут изменения.
Спасибо за бдительность!
Есть. Это тот же метод KalkanCrypt_SignData(). Входные и выходные данные в BASE64 и еще устанавливаем метку времени,
$inData = "SGVsbG8gV29ybGQ=";
$flags_sign = $KC_SIGN_CMS + $KC_IN_BASE64 + $KC_OUT_BASE64 + $KC_WITH_TIMESTAMP;
Для проверки вышедшей подписи в формате BASE64 используется метод KalkanCrypt_VerifyData().
$flags_verify = $KC_SIGN_CMS + $KC_IN_BASE64 + $KC_OUT_BASE64;
Можно. Как раз для этого и можно использовать выше описанный метод KalkanCrypt_VerifyData() с указанными флагами.