|
ЭЦП, Сертификат, Подпись. Что есть что? | ☑ | ||
---|---|---|---|---|
0
Help1с
23.03.16
✎
14:51
|
Вообще запутался.
Есть у меня подписанный файл. Нужно проверить в 1с подпись действительна или нет. Для нормальной работы я должен: 1. сначала установить сертификат контрагента на свой ПК. 2. Выполнить проверку: МенеджерКриптографии.ПроверитьПодпись(Файл, Подпись, Сертификат); где взять Продпись? Сертификат я могу из хранилища сертификатов найти, а как с подписью быть? |
|||
1
Help1с
23.03.16
✎
15:29
|
ап
|
|||
2
Help1с
23.03.16
✎
15:37
|
нужно использовать СОМ объект типа CAPICOM?
|
|||
3
portowyi
23.03.16
✎
15:40
|
(0) Корневой сертификат удостоверяющего центра (серт. контрагента) который выдавал подпись тому кто подписал файл. А подпись это же как раз и есть файл подписи с расширением *.bin, *.sgn и так далее.
Лично я использую крипто-про установленную на компьютере (на сервере). |
|||
4
portowyi
23.03.16
✎
15:41
|
(2) Функция ПолучитьМенеджерКриптографии()
ПровайдерЭЦП = "Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider"; ПутьМодуляКриптографии = ""; ТипПровайдераЭЦП = 75; Попытка МенеджерКриптографии = Новый МенеджерКриптографии(ПровайдерЭЦП, ПутьМодуляКриптографии, ТипПровайдераЭЦП); МенеджерКриптографии.АлгоритмПодписи = "GOST R 34.10-2001"; МенеджерКриптографии.АлгоритмХеширования = "GOST R 34.11-94"; МенеджерКриптографии.АлгоритмШифрования = "GOST 28147-89"; МенеджерКриптографии.ВключениеСертификатовВПодпись = РежимВключенияСертификатовКриптографии.ВключатьСертификатСубъекта; Исключение ТекстОшибки = НСтр("ru = 'Ошибка при инициализации менеджера криптографии. |" + ОписаниеОшибки() + "'" ); ЗаписьЖурналаРегистрации("ПодписьТОРГ2", УровеньЖурналаРегистрации.Ошибка,,, ТекстОшибки); пМенеджерКриптографии = Неопределено; КонецПопытки; Возврат МенеджерКриптографии; КонецФункции Это получение менеджера криптографии |
|||
5
portowyi
23.03.16
✎
15:42
|
(3) А как то так проверяется
МенеджерКриптографии.ПроверитьПодпись(ДвоичныеДанныеФайла, ДвоичныеДанныеПодписи, ЛокальныйСертификат); |
|||
6
Garykom
гуру
23.03.16
✎
15:54
|
Сертификат.ОткрытыйКлюч
|
|||
7
Help1с
24.03.16
✎
06:45
|
(5) в моем случае нет отдельного файла подписи. подписывается документ ексель. нужно как-то из него вытащить подпись.
|
|||
8
Woldemar177
24.03.16
✎
08:06
|
(7) VBA поможет?
|
|||
9
portowyi
24.03.16
✎
08:56
|
(7) Ну кот то же файл подписывает. Узнайте с помощью какой технологии это производится и дальше методом "от противного".
|
|||
10
Help1с
24.03.16
✎
09:12
|
(8) (9) нашел объект CAPICOM. Есть метод ChekSignature(Файл), этот метод вроде позволяет прочитать ЭЦП в документе, но не получается его использовать.
Вот как я пытаюсь сделать: //КапиКом = Новый COMОбъект("CAPICOM.Signer"); //КапиКом = Новый COMОбъект("CAPICOM.DigestProcessor"); //КапиКом = Новый COMОбъект("CAPICOM.Attribute"); //КапиКом = Новый COMОбъект("CAPICOM.StoreType"); //КапиКом = Новый COMОбъект("CAPICOM.Certificate"); //КапиКом = Новый COMОбъект("CAPICOM.ChekSignature"); //КапиКом = Новый COMОбъект("CAPICOM.Store"); КапиКом = Новый COMОбъект("CAPICOM.SignedData"); СоставДокумента = КапиКом.ChekSignature(Файл); КапиКом.SignedDocument = ДДФайла; |
|||
11
Help1с
24.03.16
✎
09:53
|
CAPICOM снята с поддержки. Какой другой объект можно использовать?
|
|||
12
zak555
29.03.16
✎
21:32
|
||||
13
zak555
29.03.16
✎
21:32
|
МенеджерКриптографии (CryptoManager)
ПроверитьПодпись (VerifySignature) Синтаксис: ПроверитьПодпись(<ИсходныеДанные>, <Подпись>, <Сертификат>) Параметры: <ИсходныеДанные> (обязательный) Тип: Строка: ДвоичныеДанные. Исходные данные для проверки. Данные могут размещаться в файле (в этом случае указывается имя файла) или представлены как ДвоичныеДанные. <Подпись> (обязательный) Тип: Строка: ДвоичныеДанные. Подпись для проверки. Исходные данные могут размещаться в файле (в этом случае указываются именем исходного файла) или представлены как ДвоичныеДанные. <Сертификат> (необязательный) Тип: СертификатКриптографии. В параметре возвращается сертификат, с помощью которого была произведена подпись (если сертификат включен в данные подписи). Описание: Проверяет действительность подписи. Формат исходных данных - PKCS#7. Метод не осуществляет импорт сертификатов в хранилище сертификатов из данных подписи. Доступность: Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение. Примечание: Если проверка подписи завершилась неудачно, генерируется исключительная ситуация. См. также: МенеджерКриптографии, метод НачатьПроверкуПодписи |
|||
14
zak555
29.03.16
✎
21:40
|
МенеджерКриптографии.ПолучитьСертификатыИзПодписи (CryptoManager.GetCertificatesFromSignature)
МенеджерКриптографии (CryptoManager) ПолучитьСертификатыИзПодписи (GetCertificatesFromSignature) Синтаксис: ПолучитьСертификатыИзПодписи(<ИсходныеДанные>) Параметры: <ИсходныеДанные> (обязательный) Тип: Строка: ДвоичныеДанные. Исходные данные, из которых будет извлечен сертификат. Данные могут размещаться в файле (в этом случае указывается имя файла) или представлены как ДвоичныеДанные. Возвращаемое значение: Тип: Массив. Содержит объекты СертификатКриптографии. Описание: Извлекает массив сертификатов из данных подписи. Доступность: Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение. См. также: МенеджерКриптографии, метод НачатьПолучениеСертификатовИзПодписи -------------------------------------------------------------------------------- |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |