Ошибка при вызове конструктора сертификаткриптографии

0

30.09.2019 — 07:20


Как подписать строку с помощью ключа в .pem файле.

1

30.09.2019 — 08:22

хм..
а у тебя акцент на что
— как подписать строку?
— или проблема именно с pem?

.pem легко конвертировать в практически любой другой удобоваримый формат.

А вот как подписать именно строку — не знаю.
Подписываю только файлы.
Но файл это конечно же не строка.

2

30.09.2019 — 10:07

Вот так делаю
Сертификат = Новый СертификатКриптографии(«c:tempс.pem»);
ДвочиныеДанные = ПолучитьДвоичныеДанныеИзHexСтроки(DigestValue);
Signaturee = Base64Строка(МенеджерКриптографии.Подписать(Двочин ыеДанные,, Сертификат));

Со строкой проблем нет, проблема с .pem
Ошибка при вызове конструктора (СертификатКриптографии)
Сертификат = Новый СертификатКриптографии(«c:tempc.pem»);

Если получаю сертификат из хранилища, вот так, подписывает
Сертификат = Хранилище.НайтиПоСерийномуНомеру(ПолучитьДвоичныеД анныеИзHexСтроки(СерийныйНомерСертификата))

3

30.09.2019 — 10:29

Ошибку не полностью скопировал:
Ошибка при вызове конструктора (СертификатКриптографии)
Сертификат = Новый СертификатКриптографии(«c:tempc.pem»);
по причине:
Ошибка при создании контекста сертификата.

4

30.09.2019 — 10:40

если это действительно pem, то попробовать сменить расширение файла на .cer

5

30.09.2019 — 11:42

(4) не помогло, та же ошибка
Внутри вот что
——BEGIN PUBLIC KEY——
…1m…tzT…
——END PUBLIC KEY——
большинство символов заменил точками для конспирации

6

30.09.2019 — 11:50

А файл pem вообще предназначен для подписывания? По моим скромным познаниям в криптографии — не предназначен: судя по «PUBLIC KEY» — это открытый ключ (сертификат), а для подписи нужен закрытый ключ.

Ну, и ссылка в тему: https://www.azfiles.ru/extension/pem.html

7

30.09.2019 — 14:24

Цитата:

Сообщение от Ткачик Посмотреть сообщение

А файл pem вообще предназначен для подписывания? По моим скромным познаниям в криптографии — не предназначен: судя по «PUBLIC KEY» — это открытый ключ (сертификат), а для подписи нужен закрытый ключ.

В теории в pem может быть все, что угодно — и только один сертификат и все вместе (сертификат с закрытым ключом и плюс промежуточные сертификаты).
правда, тэги при этом вроде бы такие
—— BEGIN CERTIFICATE ——
—— END CERTIFICATE ——

или
—— BEGIN PRIVATE KEY——
—— END PRIVATE KEY——

в том числе может быть и открытый ключ (public key), как у автора.

Цитата:

В ассиметричном шифровании применяется пара ключей: открытый (Public key) и закрытый, также называемый секретным (Private key). Открытый и закрытый ключи в данном случае позволяют криптографическому алгоритму шифровать и дешифровать сообщение. При этом сообщения, зашифрованные открытым ключом, расшифровать можно только с помощью закрытого ключа. Открытый ключ публикуется в сертификате владельца и доступен подключившемуся клиенту, а закрытый – хранится у владельца сертификата.

(с) не мое

8

30.09.2019 — 14:49

(2) (2) да дался тебе этот pem
«конвертировать pem в» — яндекс выдает мне 23 миллиона результатов.
конвертируй, устанавливай в хранилище — все в твоих руках.

9

30.09.2019 — 15:47

Добавлю
(4)+100

(5) не просто сменить расширение, а конвертировать
(если это у тебя PUBLIC KEY, то можно и онлайн, в противном случае PRIVATE KEY в интернете естественно светить не надо)

10

30.09.2019 — 16:29

Цитата:

Сообщение от Блондинка в шок Посмотреть сообщение

(с) не мое

Аналогично:

Цитата:

Сообщение от ксакеп

Электронная подпись концептуально отличается от шифрования применением ключей, описанного ранее.
От документа или сообщения подсчитывается хеш-функция, которая сократит сообщение любого объема до определенного количества байтов.
Посредством криптографических преобразований вычисляется сама электронная подпись. В отличие от асимметричного шифрования, подпись основана на закрытом ключе, а вот проверить с помощью открытого ключа ее может любой его обладатель. Если помнишь, в шифровании все происходит наоборот: шифруют для нас на открытом ключе, а вот расшифровывать мы будем с помощью секретного ключа.

Как я и говорил. Да и чисто логически: что может удостоверить подпись, сделанная при помощи открытого ключа, который при необходимости рассылается всем и каждому? Что владелец ключа прочитал файл? Ну, разве что…

Подпись ставится закрытым ключом, которого у ТС просто нет. А при помощи открытого ключа (сертификата) она проверяется, если нужно.

И хватит тут сиськи мять.

11

30.09.2019 — 18:46

э нет, не скажи, сиськи периодически мять полезно, профилактика от мастопатии.

в данном же случае вопрос интересный чисто с прикладной точки зрения

ибо в учебнике:

Цитата:

Синтаксис:

Новый СертификатКриптографии(<ИмяФайла>)
Параметры:

<ИмяФайла> (необязательный)

Тип: Строка.
Имя файла, из данных которого будет создан сертификат.
Описание:

Создает сертификат из данных, полученных из файла.

но вот не нашла, где сказано, какой именно тип файла.
знаю только, что с файлами .cer работает отлично.
а вот про другие типы файлов — молчок. не нашла.

так что не суть важно, что там конкретно внутри у автора в .pem, суть в том, что pem надо конвертировать. Он до подписания и не доходит, у него раньше вылетает.

Или как то можно не конвертировать?

12

30.09.2019 — 20:32

Цитата:

Сообщение от Блондинка в шок Посмотреть сообщение

не суть важно, что там конкретно внутри у автора в .pem

Как раз важно: в PEM нет закрытого ключа, см. ссылку в (6).

Цитата:

Сообщение от Блондинка в шок Посмотреть сообщение

Или как то можно не конвертировать?

Да пофиг, конвертируй — не конвертируй, закрытый ключ от этого не появится.

А без него подписать не получится, об этом и на ИТС пишут:

Цитата:

в системе «1С:Предприятие» реализован механизм криптографии, базирующийся на асимметричном шифровании (используется пара ключей – открытый и закрытый).

ВНИМАНИЕ! Механизм криптографии «1С:Предприятия» не содержит реализации собственно алгоритмов криптографии. Он обеспечивает набор объектов, позволяющих взаимодействовать с внешними модулями криптографии сторонних производителей.
Открытый ключ предназначен для передачи по открытым каналам. Закрытый ключ для распространения не предназначен и должен быть максимально защищен.

Чтобы зашифровать данные, необходимо знать открытые ключи получателей. Для расшифровки нужно иметь закрытый ключ, являющийся парой для открытого, указанного при осуществлении шифрования. Для генерации цифровой подписи нужен закрытый ключ, а для проверки подписи – открытый ключ подписавшего (чаще всего открытый ключ включен в саму подпись).

Обсуждать «Как сделать то, что в принципе невозможно сделать?» — это как называется? Мозгопатия?

13

01.10.2019 — 08:13

Экий ты невнимательный.
Я сразу, еще в (1), разделила вопрос на два.

и проблему с .pem вынесла отдельно.

Допустим у кого то другого возникнет аналогичный вопрос с .pem, содержащим private.key
Или у кого то возникнет обратная задача — проверить подпись с помощью открытого ключа .pem с public.key
В любом случае задача получить сертификат из .pem имеет отдельное прикладное значение.
тогда вопрос в сабже для этого другого останется актуальным.

Меня не интересовал конкретный файл .pem с конкретным содержимым у автора.
С этим понятно, чего тут обсуждать.

Собственно говоря, меня интересовала только одна часть сабжа, а что именно конкретно, изложено в (11)

И вот в связи с этим помнится мне, что у Олега Гинзбурга aka Abrahams aka Smaharba встречала я где-то, как он изящным движением руки превращал то ли .pem в .cer, то ли наоборот. Безо всяких openssl и тому подобных приблуд. То есть обходился без ручной готовки файла.

Вот только хоть убей не помню где и когда.

14

15.09.2021 — 10:54

Удалось победить ошибку?

Ошибка при вызове конструктора (СертификатКриптографии)
Сертификат = Новый СертификатКриптографии(«c:tempc.pem»);

у меня такая же проблема….

сгенерированы сертификаты с помощью openssl
Генерация закрытого ключа
$ openssl genrsa -out privatekey.pem 4096
Получение открытого ключа
$ openssl rsa -in privatekey.pem -pubout -out publickey.pem

Теперь мне нужно в заголовок запроса поместить подпись запроса, вычисленная по телу POST-запроса с использованием
приватного ключа.

Чтение сертификата ключа подписи из файла

Я
   Rosinv

27.11.15 — 12:04

Имеется платформа 1с 8.2 ( с МенеджеромКриптографии) и файл ИмяСерт.p7b.

Как программно получить сертификат ключа не из хранилища сертификатов,

а из файла *.p7b (файла сертификата)?

   Rosinv

1 — 27.11.15 — 12:38

Для получения из ХранилищаСертификатов понятно:

ТипХранилища = ТипХранилищаСертификатовКриптографии.ПерсональныеСертификаты;

    РасположениеХранилища = РасположениеХранилищаСертификатовКриптографии.ДанныеПользователяОС;

    Хранилище = МенеджерКриптографии.ПолучитьХранилищеСертификатов(ТипХранилища,РасположениеХранилища);

    СертификатыХранилища = Хранилище.ПолучитьВсе();

    
        
    Для Каждого Сертификат Из СертификатыХранилища Цикл

    …

        
    КонецЦикла;

Но как быть, если надо получить сертификат из файла *.p7b?

   Stim213

2 — 27.11.15 — 13:45

СертификатКриптографии (CryptoCertificate)

Из файла

Синтаксис:

Новый СертификатКриптографии(<ИмяФайла>)

Параметры:

<ИмяФайла> (необязательный)

Тип: Строка.

Имя файла, из данных которого будет создан сертификат.

Описание:

Создает сертификат из данных, полученных из файла.

   Rosinv

3 — 27.11.15 — 14:09

Для тестирования с помощью остнастки Сертификаты получил из хранилища сертификатов сертификат ИвановИванИванович.p7b.

При тестировании сообщение:

Обработка.ТестМенеджераКриптографии1.Форма.Форма.Форма(19)}: Ошибка при вызове конструктора (СертификатКриптографии)

    Сертик = Новый СертификатКриптографии(«C:ИвановИванИван.p7b»);

по причине:

Ошибка при создании контекста сертификата.

   Rosinv

4 — 27.11.15 — 14:10

Сертификат самоподписанный (если это имеет значение )

   Rosinv

5 — 27.11.15 — 14:17

Аналогичная ошибка, если вместо пути к файлу взять его ДвоичныеДанные.

ДвоичныеДанныеФайла = Новый ДвоичныеДанные(«C:ИвановИванИван.p7b»);

    Сертик = Новый СертификатКриптографии(ДвоичныеДанныеФайла);

  

Rosinv

6 — 27.11.15 — 15:11

Интересно, если создать сертификат с расширением cer,

то все работает, как писал Stim213 !

Спасибо, буду работать с сертификатами с расширением cer!

Имеется платформа 1с 8.2 ( с МенеджеромКриптографии) и файл ИмяСерт.p7b. Как программно получить сертификат ключа не из хранилища сертификатов, а из файла *.p7b (файла сертификата)?

Для получения из ХранилищаСертификатов понятно:     … Но как быть, если надо получить сертификат из файла *.p7b?

Синтаксис: Новый СертификатКриптографии(<ИмяФайла>) Параметры: Тип: Строка. Имя файла, из данных которого будет создан сертификат. Описание: Создает сертификат из данных, полученных из файла.

Для тестирования с помощью остнастки Сертификаты получил из хранилища сертификатов сертификат ИвановИванИванович.p7b. При тестировании сообщение: Обработка.ТестМенеджераКриптографии1.Форма.Форма.Форма}: Ошибка при вызове конструктора (СертификатКриптографии)     Сертик = Новый СертификатКриптографии(«C:ИвановИванИван.p7b»); по причине: Ошибка при создании контекста сертификата.

Сертификат самоподписанный (если это имеет значение )

Аналогичная ошибка, если вместо пути к файлу взять его ДвоичныеДанные.

Интересно, если создать сертификат с расширением cer, то все работает, как писал Stim213 ! Спасибо, буду работать с сертификатами с расширением cer!

Тэги: 1С 8

Комментарии доступны только авторизированным пользователям

При возникновении перечисленных далее ошибок воспользуйтесь стандартными действиями для решения проблем с криптографией. Ошибки могут возникать при подписании и расшифровке (отправке отчета, обмене, отправке заявления, обновлении статуса заявления и т.д.):

  • набор ключей не определен;
  • неправильный открытый ключ поставщика;
  • не найден сертификат и открытый ключ для расшифровки;
  • не найден сертификат руководителя в системном хранилище сертификатов;
  • не удалось расшифровать файл обновлений;
  • ошибка инициализации криптопровайдера;
  • плохие данные;
  • ошибка при получении свойств сертификата. Не удалось выполнить подписание сертификатом, Федеральная налоговая служба по причине Ошибка при получении свойства сертификата (0x0000000);

  • ошибка интерфейса модуля криптографии. Отсутствует набор ключей. Не удалось выполнить подписание сертификатом по причине: Ошибка интерфейса модуля криптографии. Отсутствует набор ключей;

  • ошибка при получении контекста модуля криптографии. Не удалось выполнить подписание сертификатом , Федеральная налоговая служба по причине Ошибка при получении контекста модуля криптографии;

  • модуль криптографии не поддерживает алгоритмов подписи. Не удалось выполнить подписание сертификатом по причине: Модуль криптографии не поддерживает алгоритмов подписи. Не удалось подписать файл по причине…;

  • не удалось подписать файл по причине: Неправильный зарегистрированный набор ключей. Неправильный зарегистрированный набор ключей. Ошибка подписания документа: Обращение налогоплательщика, связанное с циклом обмена По причине: Не удалось подписать файл по причине…;

  • не удалось подписать файл по причине: Ошибка исполнения функции. Не удалось подписать файл по причине: Ошибка исполнения функции. Ошибка подписания документа: Запрос на информационное обслуживание налогоплательщика, связанное с циклом обмена.


Offline

mvp

 


#1
Отправлено:
:

24 декабря 2014 г. 18:44:18(UTC)

mvp

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

Группы: Участники

Зарегистрирован: 07.04.2014(UTC)
Сообщений: 16

Добрый день.

Используем КриптоПро 4.0, конфигурация 1С: Бухгалтерия предприятия 2, последний обновленный релиз, КриптоПро тоже последнего релиза. Ключ на рутокене.
С определенного момента при попытке получить или отправить документы выходит сообщение «Код ошибки 115. Нет доступных сертификатов в хранилище сертификатов на сервере.», при создании нового профиля настроек ЭДО и выборе CryptoPro выходит сообщение «Ошибка при получении контекста модуля криптографии.»

При выполнении теста настроек криптографии текущего профиля, тоже выходит сообщение:
Тест. Проверка средства криптографии на сервере.
Код ошибки 110. Проверьте общие настройки криптографии.
Ошибка при получении контекста модуля криптографии.

Обращался на тех. поддержку 1С, но они ничего не смогли не подсказать и не сделать, единственное что сказали переустановить КриптоПро, переустановил не помогло.
Можете мне чем-то помочь по данному вопросу?

Отредактировано пользователем 24 декабря 2014 г. 18:45:57(UTC)
 | Причина: Не указана


Вверх

Offline

Максим Коллегин

 


#2
Оставлено
:

25 декабря 2014 г. 14:01:30(UTC)

Максим Коллегин

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

Группы: Администраторы

Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,253
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 21 раз
Поблагодарили: 658 раз в 582 постах

Лицензия в порядке? Другие приложения, использующие CSP функцилнальны?

Знания в базе знаний, поддержка в техподдержке


Вверх

WWW


Offline

mvp

 


#3
Оставлено
:

29 декабря 2014 г. 19:09:20(UTC)

mvp

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

Группы: Участники

Зарегистрирован: 07.04.2014(UTC)
Сообщений: 16

Да, лицензия куплена.
В Контур.Экстерн вхожу без проблем, правда с другим ключем, а этот ключ был выдан Калугой-Астрал.


Вверх

Offline

mvp

 


#4
Оставлено
:

8 января 2015 г. 11:35:46(UTC)

mvp

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

Группы: Участники

Зарегистрирован: 07.04.2014(UTC)
Сообщений: 16

В общем продолжил ковырять ситуацию, обнаружил следующее.
На одном ПК была версия 4.0.9330, и на нем в 1С в настройках криптографии, всё ок UserPostedImage, а вот на моем ПК где версия 9461, картина другая UserPostedImage.
Причем не смог проверить обмен электронными документами на том ПК где была 9330 (не видел ключи в контейнере), пришлось переустановить криптопро на 9461, ситуация стала один в один как на моем ПК, так что получается что на текущей версии 4.0 1С почему-то не получает алгоритм подписи.

Отредактировано пользователем 8 января 2015 г. 11:38:06(UTC)
 | Причина: Не указана


Вверх

Offline

Максим Коллегин

 


#5
Оставлено
:

15 января 2015 г. 17:08:50(UTC)

Максим Коллегин

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

Группы: Администраторы

Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,253
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 21 раз
Поблагодарили: 658 раз в 582 постах

Имена алгоритмов мы меняли — возможно на 1С это повлияло. В ближайшие дни посмотрю внимательнее. А не возможности предоставить доступ к машине с 1C для экспериментов?

Знания в базе знаний, поддержка в техподдержке


Вверх

WWW


Offline

mvp

 


#6
Оставлено
:

15 января 2015 г. 18:00:46(UTC)

mvp

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

Группы: Участники

Зарегистрирован: 07.04.2014(UTC)
Сообщений: 16

Нет, доступа для экспериментов предоставить не могу.


Вверх

Offline

Максим Коллегин

 


#7
Оставлено
:

15 января 2015 г. 21:14:15(UTC)

Максим Коллегин

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

Группы: Администраторы

Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,253
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 21 раз
Поблагодарили: 658 раз в 582 постах

Попробуйте эту сборку: https://cloud.mail.ru/pu…6f38ca1cb33/CSPSetup.exe

Знания в базе знаний, поддержка в техподдержке


Вверх

WWW


Offline

mvp

 


#8
Оставлено
:

3 февраля 2015 г. 14:25:46(UTC)

mvp

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

Группы: Участники

Зарегистрирован: 07.04.2014(UTC)
Сообщений: 16

Да, с этим дистрибутивом поля заполнены.


Вверх
Пользователи, просматривающие эту тему

Guest (2)

Быстрый переход
 

Вы не можете создавать новые темы в этом форуме.

Вы не можете отвечать в этом форуме.

Вы не можете удалять Ваши сообщения в этом форуме.

Вы не можете редактировать Ваши сообщения в этом форуме.

Вы не можете создавать опросы в этом форуме.

Вы не можете голосовать в этом форуме.

  

Python

26.07.11 — 09:15

при создании объекта

МенеджерКриптографии = Новый МенеджерКриптографии(«Microsoft RSA SChannel Cryptographic Provider», «»,75);

вылетает ошибка «Ошибка при получении контекста модуля криптографии.»

  

Python

1 — 26.07.11 — 09:17

попробовал провайдеры из етой ветки HKEY_LOCAL_MACHINESOFTWAREMicr osoftCryptographyDefaultsProvider все равно не работает

  

vmv

2 — 26.07.11 — 09:34

Новый МенеджерКриптографии(«Microsoft RSA SChannel Cryptographic Provider», «»,75)

как-то подозрительно выглядит, хотя я не специалист по крипто

  

DmitrO

3 — 26.07.11 — 10:12

Менеджер = Новый МенеджерКриптографии(«Microsoft Base Cryptographic Provider v1.0», «», 1);

  

RomaH

4 — 26.07.11 — 10:25

а откуда параметры брать для этого контсруктора

почему 1? почему 75?

  

DmitrO

5 — 26.07.11 — 10:47

Это комплексный ТИП провайдера. Определенные константы.

Определяет некоторые характеристики провайдера, такие как тип ключа обмена, тип сигнатуры, тип шифрования и хешинга.

Описывается в MSDN в разделе по криптографии.

Подсмотреть его можно в реестре в указанной в (1) ветке.

Создаются от туда не все, причина вероятно в 1С и в методах обеспечения функционала и в самом функционале, которые должен обеспечивать интерфейс механизма криптографии встроенный в платформу 8.2.

  

Python

6 — 26.07.11 — 18:11

шибка при вызове метода контекста (Подписать)

   НоваяПодпись = МенеджерКриптографии.Подписать(ПолноеИмяфайла,ПолноеИмяфайла1,Сертификат);    

по причине:

Сертификат отсутствует в персональном хранилище сертификатов.

  

oleg_km

7 — 26.07.11 — 22:16

Проверяйте, каком хранилище лежит ваш сертификат (консоль certificates.msc). Там несколько хранилищ: личные, других пользователей и т.д. Еще есть вроде как хранилище не пользователя, а компьютера. Потом какой тип имеет параметр Сертификат? Если строковый, то тоже нужно какой реквизит сертификата подразумевается: Понятное имя, Субъект. Я уже сталкивался с этим: WinAPI дает возможность выбрать любое свойство для идентификации, а скажем WinHTTP только по свойству Кому выдан. С этими обертками, что от 1С, что от MS все очень урбно получается. Они реализуют только часть функционала, на их взгляд наиболее востребованную и ты неожиданно натыкаешься на ограничение их реализации

  

zak555

8 — 26.07.11 — 22:38

закладка

  

Python

9 — 27.07.11 — 19:51

функция ПолучитьСписокСертификатовПоТипуОбекта(ТипОбъекта)Экспорт

   Перем результат;

   

       //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА

   // Данный фрагмент построен конструктором.

   // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

   Запрос = Новый Запрос;

   Запрос.Текст =

       «ВЫБРАТЬ

       |    ЭЦП.видОбъекта,

       |    ЭЦП.Сертификат,

       |    ЭЦП.Порядок,

       |    ТИПЗНАЧЕНИЯ(ЭЦП.видОбъекта) КАК Тип

       |ИЗ

       |    РегистрСведений.ЭЦП КАК ЭЦП

       |ГДЕ

       |    ТИПЗНАЧЕНИЯ(ЭЦП.видОбъекта) = ТИПЗНАЧЕНИЯ(&видОбъекта)

       |

       |УПОРЯДОЧИТЬ ПО

       |    ЭЦП.Порядок»;

   Запрос.УстановитьПараметр(«видОбъекта», типОбъекта);

   РезультатЗапроса = Запрос.Выполнить();

   ТаблицаРезультатов = РезультатЗапроса.выгрузить();

   Сертификаты = НОвый СписокЗначений();

   
   Для Каждого строкаТаблицыРезультатов из ТаблицаРезультатов цикл

       
       ХранилищеСерификатов = строкаТаблицыРезультатов.Сертификат.Хранилище;

       

       Если ТипЗнч(ХранилищеСерификатов) <> Тип(«ДвоичныеДанные») Тогда

           Данные = ХранилищеСерификатов.Получить();

       Иначе

           Данные = ХранилищеСерификатов;

       КонецЕсли;

   
       Если Данные <> Неопределено тогда

           

                 Сертификаты.Добавить(новый СертификатКриптографии(Данные));

       КонецЕсли;    

       

       
   КонецЦикла;    

   //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА

   возврат  Сертификаты

КонецФункции

Функция ПодписатьФайл(Сертификат, полноеИмяФайла = неопределено) экспорт

   

   //Если Не ПодключитьРасширениеРаботыСКриптографией() Тогда

   //    Сообщить(НСтр(«ru = ‘Для требуемой операции необходимо установить расширение работы с криптографией’», «ru»));

   //    Возврат неопределено;

   //КонецЕсли;

   МенеджерКриптографии = Новый МенеджерКриптографии(«Microsoft Enhanced Cryptographic Provider v1.0», «», 1);

   //МенеджерКриптографии = Новый МенеджерКриптографии(«Microsoft Enhanced Cryptographic Provider v1.0»,,РежимВключенияСертификатовКриптографии.ВключатьСертификатСубъекта);

   //МенеджерКриптографии = Новый МенеджерКриптографии(«Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider», «»,1);

       //МенеджерКриптографии = Новый МенеджерКриптографии(«Microsoft Base Cryptographic Provider v1.0», «»,1);

       //МенеджерКриптографии = Новый МенеджерКриптографии(«Microsoft RSA SChannel Cryptographic Provider», «»,1);

   //сообщить(Сертификат);

   

   //

   //МенеджерКриптографии.АлгоритмПодписи   = «Microsoft Enhanced Cryptographic Provider v1.0»;

   //новыйСертификат = новый СертификатКриптографии();

   //

   //МенеджерКриптографии = Новый МенеджерКриптографии();

   
   Если полноеИмяФайла = неопределено тогда

       
       Диалог = РаботаСФайлами.ПолучитьДиалогВыбораФайлов(Истина);

       Если Не Диалог.Выбрать() Тогда

           Возврат неопределено;

       КонецЕсли;

       Для каждого ПолученноеИмяФайла Из Диалог.ВыбранныеФайлы Цикл

           ПолученныйФайл = Новый Файл(ПолученноеИмяФайла);

           Состояние(«Добавляется файл: » + ПолученныйФайл.Имя);

           Отказ = Ложь;

           
           ПолноеИмяфайла = ПолученныйФайл.ПолноеИмя;

           
       КонецЦикла;

       
   конецЕсли;    

   

   ПолноеИмяфайла1 = «c:temp»;

   НоваяПодпись = МенеджерКриптографии.Подписать(ПолноеИмяфайла,Сертификат);    

   

   
   возврат НоваяПодпись;

КонецФункции

Процедура Кнопка1Нажатие(Элемент)

   // Вставить содержимое обработчика.

   
   ДанныеОСертификатах = ПолучитьСписокСертификатовПоТипуОбекта(Документы.ЕЦП_п.ПустаяСсылка());

   
   Для каждого Сертификат из ДанныеОСертификатах цикл

       
       ПодписатьФайл(Сертификат.Значение);

       

   КонецЦикла;    

КонецПроцедуры

я беру сертификат из двоичный даных — он там есть

  

loh_pedalny

10 — 27.07.11 — 20:08

мдя… В курсе, что сертификаты хранятся не в Регистрах сведений, а в хранилище сертификатов на компе?

  

loh_pedalny

11 — 27.07.11 — 20:09

+(10) этим кодом с таким же успехом можно и жпегами попробовать поставить подпись

  

Python

12 — 27.07.11 — 20:15

сертификаты можно хранить и в двоичных данных

  

loh_pedalny

13 — 27.07.11 — 20:19

можно, но только менеджер криптографии от MS о них ничо не знает. Их поначалу неплохо бы в хранилище импортировать, а уж потом…

  

oleg_km

14 — 28.07.11 — 08:14

А действительно, как сертификат попал в регистр сведений, из какого файла? Раз им подписываю сообщение, значит это сертификат с закрытым ключем. Разве можно держать сертификат с закрытым ключем для MS криптопровайдера в файле? По-моему только в p12 для импорта. Если кто знает — подскажите, а то надоедает каждый раз импортировать в хранилице

  

Python

15 — 28.07.11 — 18:25

алгоритм 1.2.804.2.1.1.1.1.3.1.1

а если это открытый ключ то как им подписать

  

oleg_km

16 — 28.07.11 — 19:10

Так открытым ключем вроде как не подписывают. Открытым ключем ключем шифруют. По смыслу так получается

  • Настройки криптографии

Настройки криптографии

 1. Настройки криптографии

1.1. При выполнении криптооперации возникают ошибки вида: «Ошибка при получении контекста модуля криптографии».

1.2. При выполнении криптооперации возникают ошибки вида: «Не удалось проверить сертификат в списке отозванных, т. к. соответствующий сервер находится в состоянии offline».

1.3. При попытке авторизации на сервере банка возникают ошибки вида: «Ошибка работы с Интернет: внутренняя ошибка сервера (500)».

1.4. При выполнении криптооперации возникают ошибки вида: «Код ошибки 102. Сертификат недействителен. Цепочка сертификатов обработана, но прервана на корневом сертификате, который не является доверенным».

1.5. При попытке авторизации на сервере банка возникают ошибки вида: «Ошибка работы с Интернет: доступ запрещен (403)».

1.6. При выполнении криптооперации возникают ошибки вида: «Сертификат, связанный с закрытой частью ключа, указывает на модуль криптографии, отличный от текущего…».

1.7. Используется КриптоПро CSP 3.6, изредка «слетает» тип криптопровайдера у сертификата ЭЦП. После переустановки личного сертификата через оснастку КриптоПРО CSP все начинает работать.

1.8. При выполнении криптооперации возникают ошибки вида: «…указан неправильный пароль доступа к закрытому ключу, сертификат не связан с закрытым ключом и др.».

Или

Ошибка при вызове метода контекста (Расшифровать): Ошибка интерфейса модуля криптографии. Модуль криптографии не может выполнить требуемое действие, т. к. контекст был получен в ограниченном режиме.

Или

Ошибка при вызове метода контекста (Расшифровать): Ошибка интерфейса модуля криптографии. Неверный параметр Keyset (набор ключей)

1.9. На тестовой базе успешно проведен тестовый обмен ЭД, но все то же самое на рабочей базе не удается

1.10. Клиент-серверный вариант работы информационной базы, настройки криптографии и сертификатов выполнены согласно инструкции. По команде «Отправить и получить ЭД» на клиенте система запрашивает пароль к серверному сертификату.

1.11. При работе через веб-браузер в момент обращения к криптопровайдеру возникает ошибка: «Расширение для работы с криптографией не подключено, операция прервана»

Ответы

1. Настройки криптографии

1.1. При выполнении криптооперации возникают ошибки вида: «Ошибка при получении контекста модуля криптографии»

Возможная причина:

Не установлены средства криптографии в ОС, в «1С:Предприятии» не указаны алгоритмы криптографии, неправильный выбор криптопровайдера

Способ устранения:

Установить криптосредство в ОС.

Запустить «1С:Предприятие» и задать общие настройки криптографии, указать используемые алгоритмы.

В последней версии возможно формирование списка из установленных криптопровайдеров в ОС и автоматическое предзаполнение после указания провайдера из списка доступных

1.2. При выполнении криптооперации возникают ошибки вида: «Не удалось проверить сертификат в списке отозванных, т. к. соответствующий сервер находится в состоянии offline»

Возможная причина:

Для УЦ, которому принадлежит сертификат ЭЦП, не установлен список отозванных сертификатов, и данный сервис недоступен для этого УЦ через веб-ресурс

Способ устранения:

Запросить список отозванных сертификатов у УЦ, где получен личный сертификат подписи, и установить этот список в ОС (файл с расширением CRL).

Данный список будет иметь ограниченный срок действия, и его необходимо время от времени обновлять, в большей степени это относится к тестовым УЦ

1.3. При попытке авторизации на сервере банка возникают ошибки вида: «Ошибка работы с Интернет: внутренняя ошибка сервера (500)»

Возможная причина:

Версия платформы «1С:Предприятие 8» ниже требуемой – 8.2.15.301

Способ устранения:

Установить версию 8.2.15.301 или выше платформы «1С:Предприятие 8.2»

1.4. При выполнении криптооперации возникают ошибки вида: «Код ошибки 102. Сертификат недействителен. Цепочка сертификатов обработана, но прервана на корневом сертификате, который не является доверенным»

Возможная причина:

Корневой сертификат УЦ, которому принадлежит личный сертификат, не включен в список доверенных в ОС

Способ устранения:

Установить корневой сертификат УЦ в ОС, при необходимости вручную указать место, куда установить – «Доверенные корневые центры сертификации»

1.5. При попытке авторизации на сервере банка возникают ошибки вида: «Ошибка работы с Интернет: доступ запрещен (403)»

Возможная причина:

Сертификат, по которому проходит авторизация, не зарегистрирован в сервисе банка

Способ устранения:

В процессе разработки

1.6. При выполнении криптооперации возникают ошибки вида: «Сертификат, связанный с закрытой частью ключа, указывает на модуль криптографии, отличный от текущего…»

Возможная причина:

Отличаются типы криптопровайдера, заданные в настройках информационной базы и указанные в сертификате ЭЦП (назначаются в момент выпуска сертификата УЦ).

Данные по наиболее распространенным криптопровайдерам, сертифицированные ФСБ:

  •  КриптоПро CSP:»Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider» (тип 75),
  •  Signal-COM CSP: «Signal-COM CPGOST Cryptographic Provider» (тип 75),
  •  ViPNet CSP: «Infotecs Cryptographic Service Provider» (тип 2)
Способ устранения:

Привести типы криптопровайдера к одному значению:

  •  либо указать правильный тип в общих настройках криптографии информационной базы;
  •  либо переустановить личный сертификат ЭЦП, если он содержал при выпуске правильный тип (для КриптоПро необходимо переустанавливать через оснастку КриптоПРО CSP, установка личного сертификата).

Получить полную информацию по сертификатам подписи можно командой «certmgr.exe -s my» (сама утилита certmgr.exe, например, входит в комплект Visual Studio)

1.7. Используется КриптоПро CSP 3.6, изредка «слетает» тип криптопровайдера у сертификата ЭЦП. После переустановки личного сертификата через оснастку КриптоПРО CSP все начинает работать
Возможная причина:

Конфликт настроек криптопровайдера в ОС

Способ устранения:

Внести изменения в настройку криптосредства в ОС:

  1. Отключить механизм Winlogon (в КриптоПро CSP задать параметр «Отключить КриптоПро Winlogon» = Истина).
  2. Убрать регистрацию носителей ключей в Winlogon (Calais) (отключить службу «Распространение сертификатов» или в свойствах соответствующих носителей в Оборудовании(КриптоПро CSP) снять галку об использовании при входе в ОС)

1.8. При выполнении криптооперации возникают ошибки вида: «…указан неправильный пароль доступа к закрытому ключу, сертификат не связан с закрытым ключом и др.».

Или

Ошибка при вызове метода контекста (Расшифровать): Ошибка интерфейса модуля криптографии. Модуль криптографии не может выполнить требуемое действие, т. к. контекст был получен в ограниченном режиме.

Или

Ошибка при вызове метода контекста (Расшифровать): Ошибка интерфейса модуля криптографии. Неверный параметр Keyset (набор ключей)

Возможная причина:

Неверные настройки криптографии в ОС и/или в «1С:Предприятии»

Способ устранения:

Повторно выполнить настройку криптографии на компьютере. Варианты:

  1.  Переустановить личный сертификат.
  2.  Провести тестирование контейнера закр. ключа, связанного с сертификатом.
  3.  Сбросить пароль на контейнер закр. ключа.
  4.  Повторно перенести контейнер закр. ключа в реестр (при необходимости).

В «1С:Предприятии»:

  1.  Пометить на удаление, сменить краткое имя сертификата ЭЦП, например, поставив префикс «Не использовать», чтобы не спутать с новым элементом справочника.
  2.  Добавить в ИБ «1С:Предприятия» сертификат из хранилища сертификатов, для которого была проведена повторная установка.

1.9. На тестовой базе успешно проведен тестовый обмен ЭД, но все то же самое на рабочей базе не удается

Возможная причина:

Тестовая база – файловый режим, рабочая база – клиент-серверный

Способ устранения:

Выполнить настройку криптографии для клиент-серверного варианта работы согласно инструкции

1.10. Клиент-серверный вариант работы информационной базы, настройки криптографии и сертификатов выполнены согласно инструкции. По команде «Отправить и получить ЭД» на клиенте система запрашивает пароль к серверному сертификату.
Возможная причина:

Отправка данных на сервис банка выполняется с сервера, а пароль можно ввести только на клиенте

Способ устранения:

Выделить отдельный сертификат ЭЦП, который не подписывает ЭД, для проведения сеансов связи с банка в клиент-серверном варианте. В карточке сертификата ЭЦП установить опцию «Запомнить пароль». Для подписи ЭД в компании использовать другие сертификаты

1.11. При работе через веб-браузер в момент обращения к криптопровайдеру возникает ошибка: «Расширение для работы с криптографией не подключено, операция прервана»

Возможная причина:

Не установлено расширение криптографии при работе через веб-браузер

Способ устранения:

Установить требуемый компонент платформы.

При первом обращении к криптопровайдеру возникнет запрос на установку компонента «Расширение для работы с криптографией». Необходимо согласиться на установку компонента.

При необходимости дополнительно ознакомиться с особенностями использования криптографии в веб-браузере


Offline

mvp

 


#1
Отправлено:
:

24 декабря 2014 г. 18:44:18(UTC)

mvp

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

Группы: Участники

Зарегистрирован: 07.04.2014(UTC)
Сообщений: 16

Добрый день.

Используем КриптоПро 4.0, конфигурация 1С: Бухгалтерия предприятия 2, последний обновленный релиз, КриптоПро тоже последнего релиза. Ключ на рутокене.
С определенного момента при попытке получить или отправить документы выходит сообщение «Код ошибки 115. Нет доступных сертификатов в хранилище сертификатов на сервере.», при создании нового профиля настроек ЭДО и выборе CryptoPro выходит сообщение «Ошибка при получении контекста модуля криптографии.»

При выполнении теста настроек криптографии текущего профиля, тоже выходит сообщение:
Тест. Проверка средства криптографии на сервере.
Код ошибки 110. Проверьте общие настройки криптографии.
Ошибка при получении контекста модуля криптографии.

Обращался на тех. поддержку 1С, но они ничего не смогли не подсказать и не сделать, единственное что сказали переустановить КриптоПро, переустановил не помогло.
Можете мне чем-то помочь по данному вопросу?

Отредактировано пользователем 24 декабря 2014 г. 18:45:57(UTC)
 | Причина: Не указана


Вверх

Offline

Максим Коллегин

 


#2
Оставлено
:

25 декабря 2014 г. 14:01:30(UTC)

Максим Коллегин

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

Группы: Администраторы

Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,253
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 21 раз
Поблагодарили: 658 раз в 582 постах

Лицензия в порядке? Другие приложения, использующие CSP функцилнальны?

Знания в базе знаний, поддержка в техподдержке


Вверх

WWW


Offline

mvp

 


#3
Оставлено
:

29 декабря 2014 г. 19:09:20(UTC)

mvp

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

Группы: Участники

Зарегистрирован: 07.04.2014(UTC)
Сообщений: 16

Да, лицензия куплена.
В Контур.Экстерн вхожу без проблем, правда с другим ключем, а этот ключ был выдан Калугой-Астрал.


Вверх

Offline

mvp

 


#4
Оставлено
:

8 января 2015 г. 11:35:46(UTC)

mvp

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

Группы: Участники

Зарегистрирован: 07.04.2014(UTC)
Сообщений: 16

В общем продолжил ковырять ситуацию, обнаружил следующее.
На одном ПК была версия 4.0.9330, и на нем в 1С в настройках криптографии, всё ок UserPostedImage, а вот на моем ПК где версия 9461, картина другая UserPostedImage.
Причем не смог проверить обмен электронными документами на том ПК где была 9330 (не видел ключи в контейнере), пришлось переустановить криптопро на 9461, ситуация стала один в один как на моем ПК, так что получается что на текущей версии 4.0 1С почему-то не получает алгоритм подписи.

Отредактировано пользователем 8 января 2015 г. 11:38:06(UTC)
 | Причина: Не указана


Вверх

Offline

Максим Коллегин

 


#5
Оставлено
:

15 января 2015 г. 17:08:50(UTC)

Максим Коллегин

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

Группы: Администраторы

Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,253
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 21 раз
Поблагодарили: 658 раз в 582 постах

Имена алгоритмов мы меняли — возможно на 1С это повлияло. В ближайшие дни посмотрю внимательнее. А не возможности предоставить доступ к машине с 1C для экспериментов?

Знания в базе знаний, поддержка в техподдержке


Вверх

WWW


Offline

mvp

 


#6
Оставлено
:

15 января 2015 г. 18:00:46(UTC)

mvp

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

Группы: Участники

Зарегистрирован: 07.04.2014(UTC)
Сообщений: 16

Нет, доступа для экспериментов предоставить не могу.


Вверх

Offline

Максим Коллегин

 


#7
Оставлено
:

15 января 2015 г. 21:14:15(UTC)

Максим Коллегин

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

Группы: Администраторы

Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,253
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 21 раз
Поблагодарили: 658 раз в 582 постах

Попробуйте эту сборку: https://cloud.mail.ru/pu…6f38ca1cb33/CSPSetup.exe

Знания в базе знаний, поддержка в техподдержке


Вверх

WWW


Offline

mvp

 


#8
Оставлено
:

3 февраля 2015 г. 14:25:46(UTC)

mvp

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

Группы: Участники

Зарегистрирован: 07.04.2014(UTC)
Сообщений: 16

Да, с этим дистрибутивом поля заполнены.


Вверх
Пользователи, просматривающие эту тему

Guest (2)

Быстрый переход
 

Вы не можете создавать новые темы в этом форуме.

Вы не можете отвечать в этом форуме.

Вы не можете удалять Ваши сообщения в этом форуме.

Вы не можете редактировать Ваши сообщения в этом форуме.

Вы не можете создавать опросы в этом форуме.

Вы не можете голосовать в этом форуме.

Python

26.07.11 — 09:15

при создании объекта

МенеджерКриптографии = Новый МенеджерКриптографии(«Microsoft RSA SChannel Cryptographic Provider», «»,75);

вылетает ошибка «Ошибка при получении контекста модуля криптографии.»

Python

1 — 26.07.11 — 09:17

попробовал провайдеры из етой ветки HKEY_LOCAL_MACHINESOFTWAREMicr osoftCryptographyDefaultsProvider все равно не работает

vmv

2 — 26.07.11 — 09:34

Новый МенеджерКриптографии(«Microsoft RSA SChannel Cryptographic Provider», «»,75)

как-то подозрительно выглядит, хотя я не специалист по крипто

DmitrO

3 — 26.07.11 — 10:12

Менеджер = Новый МенеджерКриптографии(«Microsoft Base Cryptographic Provider v1.0», «», 1);

RomaH

4 — 26.07.11 — 10:25

а откуда параметры брать для этого контсруктора

почему 1? почему 75?

DmitrO

5 — 26.07.11 — 10:47

Это комплексный ТИП провайдера. Определенные константы.

Определяет некоторые характеристики провайдера, такие как тип ключа обмена, тип сигнатуры, тип шифрования и хешинга.

Описывается в MSDN в разделе по криптографии.

Подсмотреть его можно в реестре в указанной в (1) ветке.

Создаются от туда не все, причина вероятно в 1С и в методах обеспечения функционала и в самом функционале, которые должен обеспечивать интерфейс механизма криптографии встроенный в платформу 8.2.

Python

6 — 26.07.11 — 18:11

шибка при вызове метода контекста (Подписать)

   НоваяПодпись = МенеджерКриптографии.Подписать(ПолноеИмяфайла,ПолноеИмяфайла1,Сертификат);    

по причине:

Сертификат отсутствует в персональном хранилище сертификатов.

oleg_km

7 — 26.07.11 — 22:16

Проверяйте, каком хранилище лежит ваш сертификат (консоль certificates.msc). Там несколько хранилищ: личные, других пользователей и т.д. Еще есть вроде как хранилище не пользователя, а компьютера. Потом какой тип имеет параметр Сертификат? Если строковый, то тоже нужно какой реквизит сертификата подразумевается: Понятное имя, Субъект. Я уже сталкивался с этим: WinAPI дает возможность выбрать любое свойство для идентификации, а скажем WinHTTP только по свойству Кому выдан. С этими обертками, что от 1С, что от MS все очень урбно получается. Они реализуют только часть функционала, на их взгляд наиболее востребованную и ты неожиданно натыкаешься на ограничение их реализации

zak555

8 — 26.07.11 — 22:38

закладка

Python

9 — 27.07.11 — 19:51

функция ПолучитьСписокСертификатовПоТипуОбекта(ТипОбъекта)Экспорт

   Перем результат;

   

       //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА

   // Данный фрагмент построен конструктором.

   // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

   Запрос = Новый Запрос;

   Запрос.Текст =

       «ВЫБРАТЬ

       |    ЭЦП.видОбъекта,

       |    ЭЦП.Сертификат,

       |    ЭЦП.Порядок,

       |    ТИПЗНАЧЕНИЯ(ЭЦП.видОбъекта) КАК Тип

       |ИЗ

       |    РегистрСведений.ЭЦП КАК ЭЦП

       |ГДЕ

       |    ТИПЗНАЧЕНИЯ(ЭЦП.видОбъекта) = ТИПЗНАЧЕНИЯ(&видОбъекта)

       |

       |УПОРЯДОЧИТЬ ПО

       |    ЭЦП.Порядок»;

   Запрос.УстановитьПараметр(«видОбъекта», типОбъекта);

   РезультатЗапроса = Запрос.Выполнить();

   ТаблицаРезультатов = РезультатЗапроса.выгрузить();

   Сертификаты = НОвый СписокЗначений();

   
   Для Каждого строкаТаблицыРезультатов из ТаблицаРезультатов цикл

       
       ХранилищеСерификатов = строкаТаблицыРезультатов.Сертификат.Хранилище;

       

       Если ТипЗнч(ХранилищеСерификатов) <> Тип(«ДвоичныеДанные») Тогда

           Данные = ХранилищеСерификатов.Получить();

       Иначе

           Данные = ХранилищеСерификатов;

       КонецЕсли;

   
       Если Данные <> Неопределено тогда

           

                 Сертификаты.Добавить(новый СертификатКриптографии(Данные));

       КонецЕсли;    

       

       
   КонецЦикла;    

   //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА

   возврат  Сертификаты

КонецФункции

Функция ПодписатьФайл(Сертификат, полноеИмяФайла = неопределено) экспорт

   

   //Если Не ПодключитьРасширениеРаботыСКриптографией() Тогда

   //    Сообщить(НСтр(«ru = ‘Для требуемой операции необходимо установить расширение работы с криптографией’», «ru»));

   //    Возврат неопределено;

   //КонецЕсли;

   МенеджерКриптографии = Новый МенеджерКриптографии(«Microsoft Enhanced Cryptographic Provider v1.0», «», 1);

   //МенеджерКриптографии = Новый МенеджерКриптографии(«Microsoft Enhanced Cryptographic Provider v1.0»,,РежимВключенияСертификатовКриптографии.ВключатьСертификатСубъекта);

   //МенеджерКриптографии = Новый МенеджерКриптографии(«Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider», «»,1);

       //МенеджерКриптографии = Новый МенеджерКриптографии(«Microsoft Base Cryptographic Provider v1.0», «»,1);

       //МенеджерКриптографии = Новый МенеджерКриптографии(«Microsoft RSA SChannel Cryptographic Provider», «»,1);

   //сообщить(Сертификат);

   

   //

   //МенеджерКриптографии.АлгоритмПодписи   = «Microsoft Enhanced Cryptographic Provider v1.0»;

   //новыйСертификат = новый СертификатКриптографии();

   //

   //МенеджерКриптографии = Новый МенеджерКриптографии();

   
   Если полноеИмяФайла = неопределено тогда

       
       Диалог = РаботаСФайлами.ПолучитьДиалогВыбораФайлов(Истина);

       Если Не Диалог.Выбрать() Тогда

           Возврат неопределено;

       КонецЕсли;

       Для каждого ПолученноеИмяФайла Из Диалог.ВыбранныеФайлы Цикл

           ПолученныйФайл = Новый Файл(ПолученноеИмяФайла);

           Состояние(«Добавляется файл: » + ПолученныйФайл.Имя);

           Отказ = Ложь;

           
           ПолноеИмяфайла = ПолученныйФайл.ПолноеИмя;

           
       КонецЦикла;

       
   конецЕсли;    

   

   ПолноеИмяфайла1 = «c:temp»;

   НоваяПодпись = МенеджерКриптографии.Подписать(ПолноеИмяфайла,Сертификат);    

   

   
   возврат НоваяПодпись;

КонецФункции

Процедура Кнопка1Нажатие(Элемент)

   // Вставить содержимое обработчика.

   
   ДанныеОСертификатах = ПолучитьСписокСертификатовПоТипуОбекта(Документы.ЕЦП_п.ПустаяСсылка());

   
   Для каждого Сертификат из ДанныеОСертификатах цикл

       
       ПодписатьФайл(Сертификат.Значение);

       

   КонецЦикла;    

КонецПроцедуры

я беру сертификат из двоичный даных — он там есть

loh_pedalny

10 — 27.07.11 — 20:08

мдя… В курсе, что сертификаты хранятся не в Регистрах сведений, а в хранилище сертификатов на компе?

loh_pedalny

11 — 27.07.11 — 20:09

+(10) этим кодом с таким же успехом можно и жпегами попробовать поставить подпись

Python

12 — 27.07.11 — 20:15

сертификаты можно хранить и в двоичных данных

loh_pedalny

13 — 27.07.11 — 20:19

можно, но только менеджер криптографии от MS о них ничо не знает. Их поначалу неплохо бы в хранилище импортировать, а уж потом…

oleg_km

14 — 28.07.11 — 08:14

А действительно, как сертификат попал в регистр сведений, из какого файла? Раз им подписываю сообщение, значит это сертификат с закрытым ключем. Разве можно держать сертификат с закрытым ключем для MS криптопровайдера в файле? По-моему только в p12 для импорта. Если кто знает — подскажите, а то надоедает каждый раз импортировать в хранилице

Python

15 — 28.07.11 — 18:25

алгоритм 1.2.804.2.1.1.1.1.3.1.1

а если это открытый ключ то как им подписать

  

oleg_km

16 — 28.07.11 — 19:10

Так открытым ключем вроде как не подписывают. Открытым ключем ключем шифруют. По смыслу так получается

Понравилась статья? Поделить с друзьями:
  • Ошибка при вызове конструктора реквизитформы
  • Ошибка при вызове loadlibrary не найден указанный модуль regsvr32
  • Ошибка при вызове конструктора отчетов
  • Ошибка при вызове load library
  • Ошибка при вызове конструктора недопустимая строка с указанием класса