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

Уведомление

Icon
Error

3 Страницы123>
Опции
К последнему сообщению К первому непрочитанному
Offline vovick  
#1 Оставлено : 12 июля 2016 г. 17:17:12(UTC)
vovick

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

Группы: Участники
Зарегистрирован: 12.07.2016(UTC)
Сообщений: 17
Российская Федерация
Откуда: Липецк

Сказал(а) «Спасибо»: 8 раз
Добрый день.
Есть простейший VBS-скрипт, предназначенный для подписи файлов.

Код:

const CURRENT_USER_STORE = 2            
const MY_STORE = "My"			
const STORE_OPEN_READ_ONLY = 0	
const CAPICOM_CERTIFICATE_FIND_SHA1_HASH = 0

Set Store = CreateObject ("CAPICOM.Store")
Store.Open CURRENT_USER_STORE, MY_STORE, STORE_OPEN_READ_ONLY
Set Certs = Store.Certificates.Find (CAPICOM_CERTIFICATE_FIND_SHA1_HASH, "352ce56fb616c6ccda834da631b3cad5fdd69fd3")
if Certs.Count > 0 Then

	FileName = "ON_SFAKT_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"	

	Set Cert = Certs.Item (1)
	Set FileIn = CreateObject ("ADODB.Stream")
	FileIn.Type = 1
	FileIn.Mode = 3
	FileIn.Open ()
	FileIn.LoadFromFile (FileName + ".xml")
	BinaryIn = FileIn.Read (-1)
	
	Set Signer = CreateObject ("CAPICOM.Signer")
	Signer.Certificate = Cert
	Signer.Options = 2
	Set SignedData = CreateObject ("CAPICOM.SignedData")
	SignedData.Content = BinaryIn
	Base64Out = SignedData.Sign (Signer, True, 0)	

	Set FileOut = CreateObject ("ADODB.Stream")
	FileOut.Type = 2
	FileOut.Charset = "US-ASCII"
	FileOut.Mode = 3
	FileOut.Open ()
	FileOut.WriteText (Base64Out)
	FileOut.SaveToFile FileName + ".bin", 2
	FileOut.Close ()
	FileIn.Close ()

	SignedData = Unassgned
	Signer = Unassigned
	FileIn = Unassigned
	FileOut = Unassigned
	
End if

Store = Unassigned


Он правильно работает на старых ОС, но не работает на Windows 10 х64 Как я понимаю, в ней CAPICOM уже в принципе не поддерживается.
На какие средства можно перейти, чтобы корректно работало на современных ОС?
Возможно, на CADESCOM? Каким образом это корректно сделать?

Wanna join the discussion?! Login to your Форум КриптоПро forum account. Новые регистрации запрещены.

Offline Андрей Писарев  
#2 Оставлено : 12 июля 2016 г. 18:08:27(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 13,727
Мужчина
Российская Федерация

Сказал «Спасибо»: 574 раз
Поблагодарили: 2303 раз в 1804 постах
Здравствуйте.

Цитата:

в ней CAPICOM уже в принципе не поддерживается.


Как и для Windows 7 и выше, но его можно установить и использовать.

Можно использовать КриптоПро ЭЦП Browser plug-in

На демо-странице есть примеры работы, в т.ч. и для подписания файла.
Техническую поддержку оказываем тут
Наша база знаний
Offline Андрей Писарев  
#3 Оставлено : 12 июля 2016 г. 18:12:19(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 13,727
Мужчина
Российская Федерация

Сказал «Спасибо»: 574 раз
Поблагодарили: 2303 раз в 1804 постах

Руководство разработчика > КриптоПро ЭЦП SDK
Техническую поддержку оказываем тут
Наша база знаний
Offline vovick  
#4 Оставлено : 12 июля 2016 г. 18:53:21(UTC)
vovick

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

Группы: Участники
Зарегистрирован: 12.07.2016(UTC)
Сообщений: 17
Российская Федерация
Откуда: Липецк

Сказал(а) «Спасибо»: 8 раз
Спасибо, понял. Моя ошибка была в том что я не зарегистрировал CAPICOM в десятке, после регистрации все получилось.
Offline vovick  
#5 Оставлено : 12 июля 2016 г. 19:40:24(UTC)
vovick

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

Группы: Участники
Зарегистрирован: 12.07.2016(UTC)
Сообщений: 17
Российская Федерация
Откуда: Липецк

Сказал(а) «Спасибо»: 8 раз
Увы, не так-то все легко! Скачал, поместил в SysWOW64 и зарегистрировал как положено под администратором. Но - при попытке выполнить скрипт получаю ошибку

Невозможно создание объекта контейнером AciveX: 'CAPICOM.Signer'
Код: 800A01AD

собственно, как и ранее, сбой происходит на попытке создания этого объекта. CAPICOM.Store нормально создается, нормально перечисляет и ищет сертификаты, находит то что надо.
Но вот Signer не создается.
Гугление по этой проблеме не дает никаких внятных результатов.
Offline vovick  
#6 Оставлено : 12 июля 2016 г. 19:56:53(UTC)
vovick

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

Группы: Участники
Зарегистрирован: 12.07.2016(UTC)
Сообщений: 17
Российская Федерация
Откуда: Липецк

Сказал(а) «Спасибо»: 8 раз
Посмотрел примеры, попытался переехать на CADESCOM:

Код:

Set Store = CreateObject ("CADESCOM.Store")
Store.Open CURRENT_USER_STORE, MY_STORE, STORE_OPEN_READ_ONLY
Set Certs = Store.Certificates.Find (CAPICOM_CERTIFICATE_FIND_SHA1_HASH, "352ce56fb616c6ccda834da631b3cad5fdd69fd3")
if Certs.Count > 0 Then

	FileName = "ON_SFAKT_XXXXXXXXXXXXXXXXXXXXXXXXXXXXX"	

	Set Cert = Certs.Item (1)
	Set FileIn = CreateObject ("ADODB.Stream")
	FileIn.Type = 1
	FileIn.Mode = 3
	FileIn.Open ()
	FileIn.LoadFromFile (FileName + ".xml")
	BinaryIn = FileIn.Read (-1)
	
	Set Signer = CreateObject ("CADESCOM.CpSigner")
	Signer.Certificate = Cert
	Signer.TSAAddress = "http://www.cryptopro.ru/tsp/tsp.srf"
	Signer.Options = 2
	Set SignedData = CreateObject ("CADESCOM.CadesSignedData")
	SignedData.Content = BinaryIn
	Base64Out = SignedData.Sign (Signer, True, 0)
	Set FileOut = CreateObject ("ADODB.Stream")
	FileOut.Type = 2
	FileOut.Charset = "US-ASCII"
	FileOut.Mode = 3
	FileOut.Open ()
	FileOut.WriteText (Base64Out)
	FileOut.SaveToFile FileName + ".bin.1", 2
	FileOut.Close ()
	FileIn.Close ()
	
End if
Store = Unassigned


Столкнулся с новой проблемой: подписание запускается, но в процессе него происходит ошибка
URL-адрес не использует поддерживаемый протокол
Код: 80072EE6

я так понимаю, проблема связана с получением штампа времени. Между тем у машины выход в сеть есть и SRF-файл скачивается, если просто задать строку в браузере.
Что может быть не так?

Offline Андрей Писарев  
#7 Оставлено : 12 июля 2016 г. 22:04:49(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 13,727
Мужчина
Российская Федерация

Сказал «Спасибо»: 574 раз
Поблагодарили: 2303 раз в 1804 постах
Автор: vovick Перейти к цитате
Увы, не так-то все легко! Скачал, поместил в SysWOW64 и зарегистрировал как положено под администратором. Но - при попытке выполнить скрипт получаю ошибку

Невозможно создание объекта контейнером AciveX: 'CAPICOM.Signer'
Код: 800A01AD

собственно, как и ранее, сбой происходит на попытке создания этого объекта. CAPICOM.Store нормально создается, нормально перечисляет и ищет сертификаты, находит то что надо.
Но вот Signer не создается.
Гугление по этой проблеме не дает никаких внятных результатов.



Запускаете vbs из 64x процесса (explorer.exe)?

И wscript.exe запускается из c:\windows\system32\ (это можно проверить из диспетчера задач, не закрывая окно с ошибкой или
мониторингом процессов)?


Сделайте так:
test.vbs - файл с кодом.
run.cmd - для запуска файла в 32-битном wscript.exe

в run.cmd пропишите так:
c:\windows\sysWow64\wscript.exe "полный путь в файлу test.vbs"

и всё заработает.

Техническую поддержку оказываем тут
Наша база знаний
thanks 1 пользователь поблагодарил Андрей * за этот пост.
vovick оставлено 12.07.2016(UTC)
Offline vovick  
#8 Оставлено : 12 июля 2016 г. 22:49:11(UTC)
vovick

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

Группы: Участники
Зарегистрирован: 12.07.2016(UTC)
Сообщений: 17
Российская Федерация
Откуда: Липецк

Сказал(а) «Спасибо»: 8 раз
Спасибо, помогло. Век живи - век учись, не подумал что есть 64-битный интерпретатор wscript отдельно от 32-битного, хотя, конечно, нужно было такое предположить.
А все-таки, в порядке обучения - куда посмотреть, чтобы довести до ума работу с CADESCOM? Все-таки будущее, как я понимаю, за ней...
Offline vovick  
#9 Оставлено : 27 октября 2018 г. 9:50:54(UTC)
vovick

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

Группы: Участники
Зарегистрирован: 12.07.2016(UTC)
Сообщений: 17
Российская Федерация
Откуда: Липецк

Сказал(а) «Спасибо»: 8 раз
Подниму ветку. Время идет, CAPICOM давно скорее мертв чем жив, не говоря уже об отсутствии версии х64. Все-таки, чем современным пользоваться в скриптах для подписания документов? Наставьте на путь истинный. Если можно, с примером. Интересует главным образом подписание файлов для электронного документооборота (ЭДО). На капикоме все работает, но уже сейчас процесс его скачивания и установки на новые системы вызывает некоторую озабоченность.

Отредактировано пользователем 27 октября 2018 г. 9:54:16(UTC)  | Причина: Не указана

Offline Андрей Писарев  
#10 Оставлено : 27 октября 2018 г. 11:41:00(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 13,727
Мужчина
Российская Федерация

Сказал «Спасибо»: 574 раз
Поблагодарили: 2303 раз в 1804 постах
Автор: vovick Перейти к цитате
Подниму ветку. Время идет, CAPICOM давно скорее мертв чем жив, не говоря уже об отсутствии версии х64. Все-таки, чем современным пользоваться в скриптах для подписания документов? Наставьте на путь истинный. Если можно, с примером. Интересует главным образом подписание файлов для электронного документооборота (ЭДО). На капикоме все работает, но уже сейчас процесс его скачивания и установки на новые системы вызывает некоторую озабоченность.


Здравствуйте.

Ответ был дан в начале.
Ничего не изменилось.
Техническую поддержку оказываем тут
Наша база знаний
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest (4)
3 Страницы123>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.