Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline pushist1y  
#1 Оставлено : 18 ноября 2010 г. 19:27:05(UTC)
pushist1y

Статус: Участник

Группы: Участники
Зарегистрирован: 18.11.2010(UTC)
Сообщений: 15

Сказал(а) «Спасибо»: 4 раз
В общем, пытаюсь запустить слегка модифицированный пример из хелпа оного SDK:
Код:
Option Explicit
 Const CAPICOM_CURRENT_USER_STORE = 2
 Const CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN = 1

 Dim oSigner
 Set oSigner = CreateObject("CAdESCOM.CPSigner")
 ' Укажите правильный серийный номер сертификата.
 Dim sSerialNumber : sSerialNumber = "29349754000100001e4e"
 ' Укажите правильный адрес службы штампов времени.
 Dim sTSAAddress : sTSAAddress = "http://www.cryptopro.ru/tsp/tsp.srf"
 
 
 
 oSigner.Certificate = GetSignerCertificate(sSerialNumber)
 oSigner.TSAAddress = sTSAAddress
 
 
 Dim oSignedData
 Dim oSettings
 Set oSignedData = CreateObject("CAdESCOM.CadesSignedData")
 oSignedData.Content = "Some very significant message"
 Dim sSignedData
 sSignedData = oSignedData.Sign(oSigner, False)

 WriteStringToFile "exit.sig",sSignedData
 
 Function GetSignerCertificate(SerialNumber)
   Set GetSignerCertificate = Nothing
   Dim oCert
   Dim oStore
   SerialNumber = UCase(SerialNumber)
   Set oStore = CreateObject("CAPICOM.Store")
   oStore.Open CAPICOM_CURRENT_USER_STORE
   For Each oCert In oStore.Certificates
     If oCert.SerialNumber = SerialNumber Then
       Set GetSignerCertificate = oCert
       Exit For
     End If
   Next
 End Function

 Function WriteStringToFile(Filename, Str)
   Set WriteStringToFile = False
   Dim fso, f1
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f1 = fso.CreateTextFile(Filename, True)
   f1.Write (Str) 
   f1.Close
   Set WriteStringToFile = True
 End Function

 


Выполнение валится на строчке:
Код:
 sSignedData = oSignedData.Sign(oSigner, False)


Со следующей ошибкой:
UserPostedImage

При этом свойство oSigner.Chain корректно заполнено на момент выполнения этой строки, т.е. цепочка по факту уже построена.

Сертификат в системе определён как доверенный, сертификат корневого центра для него добавлен в список доверенных корневых центров:
UserPostedImageUserPostedImage
UserPostedImage



Собственно, вопрос - что я делаю не так?
Offline pushist1y  
#2 Оставлено : 19 ноября 2010 г. 14:00:23(UTC)
pushist1y

Статус: Участник

Группы: Участники
Зарегистрирован: 18.11.2010(UTC)
Сообщений: 15

Сказал(а) «Спасибо»: 4 раз
Если вместо
Код:
Set oSignedData = CreateObject("CAdESCOM.CadesSignedData")


использовать
Код:
Set oSignedData = CreateObject("CAPICOM.SignedData")


то всё запускается и работает.

В чём соль?
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.