|
Как извлечь содержимое подписанного ЭЦП файла? | ☑ | ||
---|---|---|---|---|
0
ex-human
18.06.15
✎
02:41
|
Повсеместно широко освещается вопрос получения из хранилища сертификатов и подписывания ЭЦП файлов, меня интересует как извлечь из подписанного ЭЦП файла его содержимое.
|
|||
1
Aleksey
18.06.15
✎
02:48
|
А вчем проблема? Или файл зашифрован?
|
|||
2
ex-human
18.06.15
✎
03:14
|
Нет файл не зашифрован, просто подписан, мне не нужно ничего проверять, нужно просто вытащить само содержимое
|
|||
3
ex-human
18.06.15
✎
03:15
|
Я использую Capicom, не могу понять каким образом это сделать
|
|||
4
Escander
18.06.15
✎
03:15
|
(0) эээ, посмотреть работу с ЭЦП в БСП?
|
|||
5
ex-human
18.06.15
✎
03:19
|
Забыл добавить, используется 1С 8.1
|
|||
6
ex-human
18.06.15
✎
03:20
|
Т.е нужно реализовать такую связку: проверить ЭЦП, если присоединенная ЭЦП - после проверки сохранить буфер в файл
|
|||
7
rphosts
18.06.15
✎
04:16
|
(5) для 8.1 тоже есть БСП
|
|||
8
Aleksey
18.06.15
✎
04:26
|
(7) работа с ЭЦП появилась только в последних релизах
|
|||
9
Aleksey
18.06.15
✎
04:29
|
яяяяяяяяяяяА вообще переходите на 8.2 +
1С:Библиотеки электронных документов 8.2 (с) http://1c.ru/news/info.jsp?id=15245 Там есть и шифрование и расшифровка |
|||
10
ex-human
18.06.15
✎
05:07
|
Неужели никто не сталкивался? Решение нужно для платформы 8.1., отсылки к более поздним релизам не интересуют. Шифрование и подпись ЭЦП с использованием Capicom существует с времен 7.7
|
|||
11
Aleksey
18.06.15
✎
05:08
|
(10) Ну тогда в чем вопрос? Во времена 8.1 только Capicom через com
|
|||
12
rphosts
18.06.15
✎
05:24
|
(10) всё-же попробуй посмотреть как оно в БСП 2.0 (более ранних нет на юзерсе). Если те-же вызовы есть в 8.1 то переделка будет минимальная... перейти от контекстного кода к коду без указания контекста - как 2 пальца об асфальт, обратно несколько сложнее
|
|||
13
ЧеловекДуши
18.06.15
✎
06:47
|
(0) Содержимое то не шифруется, подпись попросту прекрипляется.
|
|||
14
ЧеловекДуши
18.06.15
✎
06:48
|
(3) Что за файл?
Расширение скажи. |
|||
15
ЧеловекДуши
18.06.15
✎
06:49
|
(10) Ты неправильно спрашиваешь. Цедишь нам информацию крохами. Больше спрашиваем мы, чем ты... И причем тут шифрование?
|
|||
16
Мутабор
18.06.15
✎
06:59
|
||||
17
ex-human
18.06.15
✎
07:19
|
Я получаю файл подписанный ЭЦП, внутри него есть оригинальный файл. Мне нужно извлечь оригинальный файл не взирая валидная или нет подпись.
|
|||
18
ex-human
18.06.15
✎
07:31
|
Он не зашифрован, он просто подписан. Мне нужно его извлечь, убрать эту ср@ную подпись
|
|||
19
ЧеловекДуши
18.06.15
✎
07:54
|
(18) А с подписью, чего не читаемый?
Причем тут 1С? |
|||
20
ЧеловекДуши
18.06.15
✎
07:56
|
Если файл не шифруется, то и подпись играет только роль некого ХЕШа для сверки валидности :)
|
|||
21
ex-human
18.06.15
✎
07:58
|
Так и есть, но как их разделить
|
|||
22
ex-human
18.06.15
✎
07:58
|
По уму я должен проверить валидность подписи и вычленить содержимое из этого подписанного файла
|
|||
23
Мимохожий Однако
18.06.15
✎
08:00
|
Хоть что-то пытался сделать? Код показывай, не стесняйся.
|
|||
24
ex-human
18.06.15
✎
08:20
|
(Не) Получается типа такого
|
|||
25
ex-human
18.06.15
✎
08:21
|
Процедура ВернутьФайлБезПодписи(ИмяВхФайла, ИмяВыхФайла)
SignedData = Новый COMОбъект("CAPICOM.SignedData"); Данные = ЗагрузитьДанные(ИмяВхФайла); Если Данные = Неопределено Тогда Возврат КонецЕсли; SignedData.Verify(Данные, Истина, 0); СодержимоеФайлаБезПодписи = SignedData.Content; КонецПроцедуры Функция ЗагрузитьДанные(ИмяФайла) ФСО = Новый COMОбъект("Scripting.FileSystemObject"); Если Не ФСО.FileExists(ИмяФайла) Тогда Возврат Неопределено КонецЕсли; Чтение = ФСО.OpenTextFile(ИмяФайла, 1); Данные = Чтение.ReadAll(); Возврат Данные КонецФункции |
|||
26
ex-human
18.06.15
✎
08:22
|
затыкается на строке
SignedData.Verify(Данные, Истина, 0); говорит неправильно инициализировал |
|||
27
ex-human
18.06.15
✎
09:11
|
Изменил на SignedData.Verify(Данные, Ложь, 0), появилась ошибка В ASN1 встречен неожиданный конец данных.
|
|||
28
Jaap Vduul
18.06.15
✎
09:51
|
(26), (27) Дык у тебя содержимое детачнуто или где?
Если детачнуто, то исходные данные отдельно должны прилагаться. |
|||
29
ex-human
18.06.15
✎
10:00
|
Если я этот подписанный файл открываю например в КриптоАРМ, то он мне пишет, что есть внутри файл, подписанный таким то сертификатом, (например недействительным), но поскольку сам внутренний файл относится к открытым данным я его могу сохранить в чистом виде, без подписи.
Вот эту же схем мне и нужно реализовать |
|||
30
ex-human
18.06.15
✎
10:02
|
Т.е, грубо говоря, мне нужно открепить сертификат от оригинального файла
|
|||
31
Jaap Vduul
18.06.15
✎
10:12
|
Если проверка сертификата не требуется, вызывай Verify с флагом CAPICOM_VERIFY_SIGNATURE_ONLY.
|
|||
32
vde69
18.06.15
✎
10:16
|
Capicom - не поддерживается виндой уже давно...
|
|||
33
ex-human
18.06.15
✎
10:17
|
Member Description Value
CAPICOM_VERIFY_SIGNATURE_ONLY Only the signature 0 is checked. Я и поставил 0 |
|||
34
ex-human
18.06.15
✎
10:18
|
"..Capicom - не поддерживается виндой уже давно..."
да ладно, у меня и шифрование под подписывает через него реализовано |
|||
35
ex-human
18.06.15
✎
10:19
|
Ладно, я так понимаю, уж проще файлик распарсить вручную и выдрать все чтонужно
|
|||
36
Jaap Vduul
18.06.15
✎
10:19
|
(33)И куда ты "поставил 0" ?
Изучай: https://msdn.microsoft.com/library/windows/desktop/aa387728(v=vs.85).aspx |
|||
37
ex-human
18.06.15
✎
10:46
|
(36) SignedData.Verify(Данные, Истина, 0);
не оно что ли? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |