Добрый день!
Выполняю получение данных из отделённой подписи из файла sig через COM с помощью лицензионной КриптоПро CSP 4.0.xxxxx. Сервера времени нет.
Подписание выполняю так (в сокращённом виде):Set oSigner = CreateObject("CAdESCOM.CPSigner")
Set oSigner.Certificate = oCert
Set SignedData = CreateObject("CAdESCOM.CadesSignedData")
SignedData.ContentEncoding = CAPICOM_BASE64_TO_BINARY
SignedData.Content = fileData 'В Base64
signature = SignedData.SignCades(oSigner, CADES_BES, True, CAPICOM_ENCODE_BASE64)
Получение данных из подписи выполняю так (Другого способа не нашёл в COM):signature = streamSig.ReadText() 'данные из sig файла
Set SignedData = CreateObject("CAdESCOM.CadesSignedData")
SignedData.ContentEncoding = CAPICOM_BASE64_TO_BINARY
SignedData.Content = fileData
Call SignedData.VerifyCades(signature, CADES_BES, True)
Как результат, если серификаты которыми осуществлялась подпись не просрочены в SignedData.Signers заполняется параметрами, в том числе oSign.Certificate и oSign.SigningTime (oSign типа CAdESCOM.CPSigner). Но если сертификаты например просрочены, то oSign.Certificate заполняется, но oSign.SigningTime нет, даже если не считать уведомление о том что подпись не действительна.
При этом если выполнить
Call SignedData.Display()
открывается окно Windows, со всей необходимой информацией о подписях и сертификатах из sig файла.
Можно как-то иначе чем через Call SignedData.VerifyCades(signature, CADES_BES, True), заполнить данными SignedData.Signers, чтобы можно было прочитать достпные параметры, в том числе oSign.SigningTime, хоть и была она поставлена на основании данных локального ПК, где выполнялась подпись?
Мои попытки найти варинты данного решениея пока что не увенчались успехом.
Заранее спасибо за любую помощь и совет!Находил объект CAdESSignature, но для COM такого похоже нет, а есть он на Java. Также вопрос, если выполнить получение этих данных на Java, нужна ли для этого лицензия КриптоПро JCP?
Отредактировано пользователем 10 марта 2022 г. 11:14:32(UTC)
| Причина: Не указана