Извлечь прикрепленный документ из подписанного файла (.cms) как в ezsigner.kz PHP SDK

Добрый день, я хотел спросить есть ли возможность извлечь прикрепленный документ из подписанного файла (.cms) как в ezsigner.kz?

Добрый день!
Для этой процедуры необходимо выполнить функцию KalkanCrypt_VerifyData()
В переменной outData - и есть подписанные данные. Выведите данные с флагом outBase64. Затем конвертируйте их и запишите в файл.

На почту отправил пример реализации

такой библиотекой можно

Добрый день.
Могли бы вы мне так же отправить на почту пример реализации?

И подскажите, какое значение ключа $flags_sign правильно указывать для KalkanCrypt_VerifyData(), если для KalkanCrypt_SignData() использовался ключ
$flags_sign = $KC_SIGN_CMS + $KC_OUT_PEM + $KC_IN_FILE.

Добрый день!
Выслал по почте подробный пример

Спасибо за пример.
Подпись создается, но проверить подпись не получается.
$outCert и $outData — пустые,
$outVerifyInfo = «error:00000000:lib(0):func(0):reason(0)»

Пробовал изменять $kalkanFlags для проверки, в т.ч. $KC_OUT_BASE64 заменить на $KC_IN_BASE64, но результат прежний.

Тестирую на тестовых ключах из SDK 2.0 — может быть причина в этом?

Добрый день.
Могли бы вы мне тоже отправить на почту пример реализации?

Добрый день!
Выслал.

Добрый вечер! Столкнулся с точно такой же проблемой: вызов KalkanCrypt_VerifyData() возвращает $outVerifyInfo = “error:00000000:lib(0):func(0):reason(0)”, $outCert и $outData — пустые. Подскажите, пожалуйста, в чем может быть причина и как это победить. Флаги $flags_sign=$KC_IN_BASE64+$KC_SIGN_CMS.

Добрый день!
Пришлите на knca@pki.gov.kz подписанный файл

Добрый день! Отправил.

1 Симпатия

Добрый вечер! Я, к сожалению, так и не получил ответ на свой вопрос: первый раз я отправил по ошибке не те данные, получил ответ, что это - DER, отправил в base64, и на этом, увы, все.

Добрый день!

Проверил файл в формате DER с вот такими параметрами:
inSign = “C:\Temp\Exam_certificate_0000042.pdf.cms”
flags = KC_IN_FILE + KC_IN_DER + KC_SIGN_CMS

Signature N 1
– CAdES-BES: verify signer certificate hash - OK.
– CAdES-T: verify TSA token - OK.
Signing time 07.11.2024 11:50:18 +05:00
Verify - OK
CMS Verify - OK

Добрый день!
Насчет варианта с файлом я не подумал попробовать, спасибо за подсказку. Уточните, пожалуйста, а что вы передаете в $alias? И еще вопрос: какой путь надо указывать к файлу? Я передал абсолютный, но получил “ERROR 0x8f00008: Reading file - unable to open file. ERROR 0x8f00008: Verify Data - unable to open file.”

В alias я передал пустую строку. Alias необходим только для случая, когда используются токены и необходимо проверить сырую подпись - в этом случае в alias передается alias сертификата из токена.

По идее особо не важно какой путь, и абсолютный путь, и относительный - все должно отработать успешно. Может дело в доступе?

Понятно, спасибо, значит я насчет параметра alias все правильно понял. А какие права должны быть? У меня 644 для файла стоят и 755 для каталогов.

Добрый день! А Вы куда передаете путь до файла? Необходимо передавать в параметр $outSign - пятый параметр по порядку. $inData для оригинальных данных, в случае когда Вы будете проверять detached подписи.

1 Симпатия

Добрый день, Данияр!
Вы правы, я в $inData подставил, как в ответе у Данила:

Спасибо за подсказку, сейчас поменяю на $outSign.

Добрый день!
Спасибо огромное, проблема была действительно в $outSign/$inData, сейчас все работает как часы!

1 Симпатия