Здравствуйте!
Вам необходимо вызвать так:
KalkanCrypt_Init(); //Инициализация библиотеки
//Входные параметры
//$inSign = “-----BEGIN CMS-----MIIPVQYJKoZ…”; //Подпись, которую необходимо проверить
//$flags_verify = //$KC_SIGN_CMS + //$KC_IN_PEM + //$KC_OUT_PEM; //Флаги проверяемой подписи
//$idCert = 1; //Номер сертификата из подписи
//$alias = ""; //Алиас сертификата (Нужно передавать, когда проверяется DraftSign, а сертификат находится на токене)
//$inData = ""; //Исходные данные (Нужно передавать, в случае если подпись без вложенных данных - DetachedSign)
//Выходные параметры
//$outData = ""; //Исходные данные
//$outVerifyInfo = ""; //Информация о проверке
//$outCert = ""; //Сертификат подписанта
//$err = KalkanCrypt_VerifyData(//$alias, //$flags_verify, //$inData, //$idCert, //$inSign, //$outData, //$outVerifyInfo, //$outCert);
if (//$err > 0){
echo "Error: ".//$err."\n";
print_r(KalkanCrypt_GetLastErrorString());
}
При успешной проверке, вы получите ответ в //$outVerifyInfo:
Signature N 1
- CAdES-BES: verify signer certificate hash - OK.
Verify - OK
CMS Verify - OK
Необходимо проверить сертификат на статус “Отозванность”:
//Входные параметры
//$flags_validate = //$KC_USE_OCSP; //Тип проверки валидности сертификата - OCSP
//$validPath = "http://test.pki.gov.kz/ocsp/"; //Путь к OCSP сервису НУЦ РК
//$flag_validate = 0; //В случае, если нужно вывести ответ сервиса, то флаги указываем: //$KC_GET_OCSP_RESPONSE + //$KC_OUT_BASE64
//Выходные параметры
//$outInfo = ""; //Информация о проверке
//$getResp = ""; //Ответ сервиса OCSP, если нужно его сохранить.
//$err = KalkanCrypt_X509ValidateCertificate(//$outCert, //$flags_validate, //$validPath, 0, //$outInfo, //$flag_validate, //$getResp);
if (//$err > 0){
echo "Error: ".//$err."\n";
print_r(KalkanCrypt_GetLastErrorString());
}
При успешной проверке, вы получите ответ в //$outInfo:
OCSP: check certificate status: good
certificateSerialNumber=56...8D
This Update: 28.10.2025 00:21:20 +05:00
Verify chain and certificates: - OK
Далее необходимо получить информацию из сертификата:
//Входные параметры
//$inCert = //$outCert;
//$flag = //$KC_CERTPROP_ISSUER_COUNTRYNAME; //Здесь указываете тот флаг, которую информацию необходимо получить из сертификата.
//Выходные параметры
//$OutData = "";
//$err = KalkanCrypt_X509CertificateGetInfo(//$flag, //$outCert, //$OutData);
if (//$err > 0 && //$err != 149946424){
echo "Error: ".//$err."\n";
} else {
echo"//$OutData."\n";
}
Затем поочередно вызываете последний метод, указывая нужный флаг. Перечень флагов есть в документации SDK 2.0\PHP_Linux\docs\Описание KalkanCryptPHP.docx: Константы, определяющие значение поля/расширения в запросе/сертификате
p.s. комментарии перед $ удалите. Иначе на форуме не поместить код на php