Развернуть все
Свернуть все

Создание подписанного сообщения

Пример 1

Параметры подписи и сертификат указываются явно.

VBScript
 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 = "12345678000100000000"
 ' Укажите правильный адрес службы штампов времени.
 Dim sTSAAddress : sTSAAddress = "http://domain/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)
 
 Function GetSignerCertificate(SerialNumber)
   Set GetSignerCertificate = Nothing
   Dim oCert
   Dim oStore
   Set oStore = CreateObject("CAdESCOM.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

Пример 2

Параметры подписи не указываются. Будут использованы параметры по умолчанию. Правила выбора сертификата: см. описание метода Sign объекта CAPICOM.SignedData.

VBScript
 Option Explicit
 Dim oSignedData
 Dim oSettings
 Set oSettings = CreateObject("CAPICOM.Settings")
 oSettings.EnablePromptForCertificateUI = True
 Set oSignedData = CreateObject("CAdESCOM.CadesSignedData")
 oSignedData.Content = "Some very significant message"
 Dim sSignedData
 sSignedData = oSignedData.Sign(Nothing, False)