|
Подписание файлов excel c помощью КриптоПро Office Signature | ☑ | ||
---|---|---|---|---|
0
dr3amer
23.08.19
✎
13:23
|
Добрый день!
Надо подписывать созданные файлы excel с помощью утилиты КриптоПро Office Signature. Подпись должна быть в самом файле. Сталкивался кто-нибудь с таким? Есть пример кода? Пробовал так: МенеджерКриптографии = Новый МенеджерКриптографии("Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider","",80); ХранилищеСертификатов = МенеджерКриптографии.ПолучитьХранилищеСертификатов(); Сертификаты = ХранилищеСертификатов.ПолучитьВсе(); МенеджерКриптографии.Подписать(ИмяФайла,Сертификаты[0]); Всё работает, но ничего не подписывается. |
|||
1
VladZ
23.08.19
✎
13:24
|
(0) "Всё работает, но ничего не подписывается." - что это значит? Можно подробнее описать, что происходит? И какой результат хотите увидеть.
|
|||
2
Chum
23.08.19
✎
13:37
|
(1) это значит, что никогда такого не было и вот опять.
Система не ругается, но и ничего не происходит. |
|||
3
dr3amer
23.08.19
✎
14:04
|
Всё верно.
Ругани от системы нет. Но и файлы сохранились без подписи. |
|||
4
sitex
naïve
23.08.19
✎
14:08
|
(0) Что то не пойму так вы с помощью утилиты проверяете ?
и да я подписваю так и все норм Подписать(<ИсходныеДанные>, <ВыходныеДанные>, <Сертификат>) |
|||
5
sitex
naïve
23.08.19
✎
14:10
|
+(4) ПарольДоступаКЗакрытомуКлючу есть ? Установлен сам сертификат в Хранилище ?
|
|||
6
Di-dog
23.08.19
✎
14:17
|
Ничего не происходит, потому что 1С генерирует подпись отдельными двоичными данными и возвращает их в функции МенеджерКриптографии.Подписать(ИмяФайла,Сертификаты[0]);
А Вы, судя по коду, вызываете эту функцию как процедуру... Либо как в (4) во второй параметр. :) |
|||
7
dr3amer
23.08.19
✎
16:27
|
Вызвал её как функцию.
Возвращает двоичные данные. Это отдельно подпись или файл с подписью? Попробовал сохранить в файл xlsx, сохранилось, но не открывается. |
|||
8
dr3amer
23.08.19
✎
16:29
|
(6) Вызвал её как функцию.
Возвращает двоичные данные. Это отдельно подпись или файл с подписью? Попробовал сохранить в файл xlsx, сохранилось, но не открывается. |
|||
9
dr3amer
23.08.19
✎
16:31
|
(5) У меня на руках есть установленный КриптоПро Office Signature и сертификат.
Сертификат получаю из хранилища сертификатов, там всё норм. Откуда взять закрытый ключ и зачем он мне при подписи? |
|||
10
dr3amer
23.08.19
✎
16:34
|
(4) Можете прислать пример кода который у вас нормально всё подписывает?
У меня есть сертификат, есть файл, есть утилита КриптоПро Office Signature которая встраивается в Microsoft Office. На выходе я хочу получить файл excel с электронной подписью внутри. |
|||
11
Di-dog
23.08.19
✎
18:17
|
(8) Это двоичные данные подписи, сохраняются в формат p7s (PKCS#7)
|
|||
12
Гость из Мариуполя
гуру
23.08.19
✎
19:20
|
(9) Та действительно, и зачем тебе какой-то ключ (закрытый) при подписывании.
Сертификат есть и ладно.. :))) Вот смотри - у меня есть бутылка коньяка. И есть сертификат на эту бутылку. Сертификат - бумажка с печатью, удостоверяющая, что коньяк подлинный, безумно коллекционный и дорогой, особого года издания. Тебе, раз тебе достаточно сертификата, чтобы набухаться, нужно понюхать бумажку. Но, лично мне, как хочешь, мне чтобы ощутить вкус и послевкусие, одного только бумажного сертификата маловато будет. :))) аналогично и с ЭЦП. Сертификат ключа - это по сути ничто, всего лишь некая опция, аналогичная сертификату к бутылке коллекционного коньяка.. и ничего более.. есть он в хранилище сертификатов ну и есть. У меня вон тоже сертификат на коньяк в хранилище есть. Коньяка вот только увы.. уже нет. Понимаешь теперь, почему твоя фраза "Откуда взять закрытый ключ и ЗАЧЕМ ОН МНЕ ПРИ ПОДПИСИ?" вызывает ржач. |
|||
13
dr3amer
24.08.19
✎
23:25
|
(12) Ключ я достану.
Но неужто никто такого никогда не делал и не может просто прислать пример кода как это сделать? |
|||
14
dr3amer
24.08.19
✎
23:27
|
(12) При подписи в документе excel через КриптоПро закрытый ключ не запрашивается.
|
|||
15
Сияющий в темноте
25.08.19
✎
00:18
|
(14)он запрашивается один раз,потом криптопро в течение определенного времени его помнит.
|
|||
16
Сияющий в темноте
25.08.19
✎
00:21
|
вообще,насколько я помню,можно в файл подписи добавить исходный файл,так как файл подписи-э о контейнер,а вот чтобы в сам ексель дописать подпись-это поддержка со стороны ексель должна быть,иначе,любое изменение файла приводит к нарушению подписи,а ексель,насколько я помню,при открытии пишет дату открытия в свой файл,так что с проверкой подписи будут танцы с бубном.
|
|||
17
Гость из Мариуполя
гуру
25.08.19
✎
02:40
|
(13) дык какой тебе кусок кода, если у тебя все в кучу в голове смешалось.
вот смотри: КриптоПро Office Signature - это НЕ криптопровайдер, это всего лишь утилита (надстройка/плагин) к MS OFFICE. и, в свою очередь, этот плагин все равно для работы требует криптопровайдер КриптоПро CSP. то, что ты кодишь в (0) - это ты просто пытаешься подписать файл с помощью Крипто Про CSP, и никаким применением КриптоПро Office Signature тут и не пахнет, что есть он на компьютере, что нет, ты его не юзаешь в коде. Т.е. у тебя в итоге получиться просто обычный файл, подписанный тривиально с использованием обычного КриптоПро CSP. Для того, чтобы пользовать именно функционал плагина Office Signature (а не тривиальное подписывание произвольного файла с помощью КриптоПро CSP), ты должен к нему(плагину) ... ммм... как бы сказать, "дотянуться". А поскольку это всего лишь надстройка(плагин) в MS Office, то дотянуться до нее(надстройки) - хм.. через VBA. типа так: https://docs.microsoft.com/ru-ru/office/vba/_repo.en-us/api/office.signatureset.addnonvisiblesignature если юзаешь NET, можно еще посмотреть здесь: https://docs.microsoft.com/en-us/dotnet/api/microsoft.office.core.signatureset.addnonvisiblesignature?view=office-pia PS: и да, идентификатор плагина КриптоПро Office Signature (то, что обозначается- varSigProviderID): {F5AC7D23-DA04-45F5-ABCB-38CE7A982553}. |
|||
18
dr3amer
26.08.19
✎
15:24
|
(17) Спасибо большое!
Это то что нужно. Взял ссылку: https://docs.microsoft.com/ru-ru/office/vba/_repo.en-us/api/office.signatureset.addnonvisiblesignature При вызове метода AddNonVisibleSignature открывается окошко подписи документа. Пытаюсь найти способ не открывать окошко, а сразу передать в него свои данные подписи. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |