Статус: Активный участник
Группы: Участники
Зарегистрирован: 25.01.2013(UTC) Сообщений: 55 Откуда: Москва Сказал(а) «Спасибо»: 1 раз
|
Код:
Dim sFilePath : sFilePath = "C:\Users\...\подпись.p7s"
Dim oFSO
Dim sText
Dim vCode
Dim oTextStream
Set oFSO = CreateObject("ADODB.Stream")
oFSO.Type = 2
oFSO.Open
oFSO.Type = 1
oFSO.LoadFromFile sFilePath
vCode = oFSO.Read
oFSO.Close
WScript.Echo vCode
Dim oStore
Set oStore = CreateObject("CAdESCOM.CadesSignedData")
oStore.ContentEncoding = 0
oStore.Content = vCode
On Error Resume next
oStore.VerifyCades vCode, 0
if err.Number <> 0 then
WScript.Echo err.dESCRIPTION
end if
On Error GoTo 0
Dim oSigner
Set oSigner = oStore.Signers.Item(1) - ошибка происходит в этом месте
WScript.Echo "Данные подписи:" + oSigner.Certificate.SubjectName
Отредактировано пользователем 30 января 2013 г. 13:57:22(UTC)
| Причина: Не указана
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 25.01.2013(UTC) Сообщений: 55 Откуда: Москва Сказал(а) «Спасибо»: 1 раз
|
Все! Спасибо Вам огромное за помощь, все заработало!!!!
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 25.01.2013(UTC) Сообщений: 55 Откуда: Москва Сказал(а) «Спасибо»: 1 раз
|
Дело было в том, что не правильно реализован чтение файла, с файла надо было считывать бинарные данные, а не текст + как вы и писали надо было обработать исключение: On Error Resume next oStore.VerifyCades vCode, 0 if err.Number <> 0 then WScript.Echo err.dESCRIPTION end if On Error GoTo 0
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,340 Сказал «Спасибо»: 550 раз Поблагодарили: 2212 раз в 1727 постах
|
Автор: Ruvip Все! Спасибо Вам огромное за помощь, все заработало!!!! Удачи... |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 25.01.2013(UTC) Сообщений: 55 Откуда: Москва Сказал(а) «Спасибо»: 1 раз
|
Я все таки надеюсь на ваше снисхождение, я уже всю вашу документацию перевернул и все примеры просмотрел. При записи атрибута Код:
Option Explicit
Dim oSigningTimeAttr
Set oSigningTimeAttr = CreateObject("CADESCOM.CPAttribute")
oSigningTimeAttr.Name = 0 '(1 - тоже пробовал вводить, но все бестолку)
oSigningTimeAttr.Value = Now
Dim oSigner
Set oSigner = CreateObject("CADESCOM.CPSigner")
Dim oSignedData
Set oSignedData = CreateObject("CADESCOM.CadesSignedData")
Dim oFSO
Set oFSO = CreateObject("Scripting.FileSystemObject")
Dim oAttributes
Set oAttributes = oSigner.AuthenticatedAttributes2
oAttributes.add oSigningTimeAttr '- Выдается ошибка "Недопустимый вызов или аргумент процедуры"
oSigner.TSAAddress = "http://cryptopro.ru/tsp/" '- штамп времени так и не попадает в подпись
oSignedData.ContentEncoding = 1
oSignedData.Content = "Проверка подписи"
Dim sSignFilePath
sSignFilePath = "c:\123" & ".p7s"
If oFSO.FileExists(sSignFilePath) Then
oFSO.DeleteFile sSignFilePath
End If
Dim sSignedData
sSignedData = oSignedData.SignCades(oSigner, 1, False, 0)
SaveFile sSignFilePath, sSignedData
Большая просьба объясните дураку, что не так я делаю Отредактировано пользователем 31 января 2013 г. 13:56:15(UTC)
| Причина: Не указана
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 25.01.2013(UTC) Сообщений: 55 Откуда: Москва Сказал(а) «Спасибо»: 1 раз
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 25.01.2013(UTC) Сообщений: 55 Откуда: Москва Сказал(а) «Спасибо»: 1 раз
|
Андрей, извините пожалуйста за двухдневный вынос мозга, разобрался почему я не могу добавить атрибуты с помощью CADESCOM, оказывается дело все в особенностях среды программирования в которой я кодил! Единственное остается открытым вопрос с ШТАМПОМ ВРЕМЕНИ! Если можете подскажите с этим вопросом.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,340 Сказал «Спасибо»: 550 раз Поблагодарили: 2212 раз в 1727 постах
|
Автор: Ruvip Андрей, извините пожалуйста за двухдневный вынос мозга, разобрался почему я не могу добавить атрибуты с помощью CADESCOM, оказывается дело все в особенностях среды программирования в которой я кодил! Единственное остается открытым вопрос с ШТАМПОМ ВРЕМЕНИ! Если можете подскажите с этим вопросом. а) Я не сотрудник КриптоПРО б) у Вас нет сертификата на их тех. поддержку в) у меня нарисовались свои задачи на ближайшие недели... Так что, я сейчас "не писатель, а читатель на форуме" |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 25.01.2013(UTC) Сообщений: 55 Откуда: Москва Сказал(а) «Спасибо»: 1 раз
|
Все понял!!! Спасибо за разъяснение и за помощь оказанную ранее!
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 18.03.2013(UTC) Сообщений: 3
|
Добрый день, похожая проблема. Использую КриптоПро ЭЦП SDK (версия 1.05.1178). На сервере C# + COM пытаюсь получить содержание подписанного сообщения (подпись присоединённая):
private bool verifyCades(String sSignedMessage) { try { CadesSignedData dataClass = new CadesSignedDataClass(); dataClass.VerifyCades(sSignedMessage, CADESCOM_CADES_TYPE.CADESCOM_CADES_BES, false); string content = dataClass.Content; return true; } catch (Exception e) { Console.WriteLine(e); return false; } }
переменная content остаётся равной null. Хотя проверка подписи происходит без ошибок. Не подскажите как получить исходной сообщение, которое подписывается?
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close