Имя: Пароль:
1C
1С v8
МенеджерКриптографии подписать строку
0 Маленький Вопросик
 
08.09.20
12:45
Товарищи, доброго времени!

Подскажите примерчик как подписать строку с помощью сертификата криптографии:

Сертификат я получил, теперь, нужно подписать им строку:

ТипыХранилищ = Новый Массив;
    ТипыХранилищ.Добавить(ТипХранилищаСертификатовКриптографии.ПерсональныеСертификаты);
    //ТипыХранилищ.Добавить(ТипХранилищаСертификатовКриптографии.СертификатыПолучателей);
    
    ПроверятьДатуОкончания = Истина;
    
    СписокСертификатов = Новый Массив;
    МенеджерКриптографии = Новый МенеджерКриптографии("", "",75);
    
    Для Каждого ТипХранилища Из ТипыХранилищ Цикл
        
        Хранилище = МенеджерКриптографии.ПолучитьХранилищеСертификатов(ТипХранилища);
        
        СертификатыХранилища = Хранилище.ПолучитьВсе();
        ТекущаяДата          = ТекущаяДата();
        
        Для Каждого Сертификат Из СертификатыХранилища Цикл
            
            Если ПроверятьДатуОкончания И Сертификат.ДатаОкончания < ТекущаяДата Тогда
                Продолжить;
            КонецЕсли;
                        
            СписокСертификатов.Добавить(Сертификат);
        КонецЦикла;
        
    КонецЦикла;
    
    Возврат СписокСертификатов;
1 Маленький Вопросик
 
08.09.20
15:33
апнем
2 polosov
 
08.09.20
15:36
3 Маленький Вопросик
 
09.09.20
16:33
ПутьК_dataFile = ДанныеАвторизации.Получить("data");
    МенеджерКриптографии.ПарольДоступаКЗакрытомуКлючу = "";
    ПутьШифрованный_dataFile = ПутьК_dataFile + "_crypt";
    МенеджерКриптографии.Подписать(ПутьК_dataFile, ПутьШифрованный_dataFile, Сертификат);
    Данные = МенеджерКриптографии.Подписать(ПутьК_dataFile, Сертификат);

вопрос к данныеавторизации

в метод подписать - нужно строку вставить
4 Маленький Вопросик
 
11.09.20
07:36
поднимем тему!
5 Вафель
 
11.09.20
09:49
сохрани в файл, подпиши и прочитай
6 Маленький Вопросик
 
11.09.20
10:49
подписание файла не ест подписание строки в файле...
попробовал уже
7 ptiz
 
19.10.20
15:05
Если еще актуально и я правильно понял вопрос.
Я для МДЛП делаю так (CESU-8 - это UTF-8 без BOM). Потом это в Base64Строка идёт:

Функция ПодписатьСтроку(СтрокаДляПодписи, СертификатЭЦП, ТекстОшибки = "", Кодировка = "CESU-8") Экспорт

    ТекстОшибки = "";
    
    ИмяВремФайла = ПолучитьИмяВременногоФайла();
    Текст = Новый ЗаписьТекста(ИмяВремФайла, Кодировка);
    Текст.Записать(СтрокаДляПодписи);
    Текст.Закрыть();
    
    МенеджерКриптографии = Новый МенеджерКриптографии(СертификатЭЦП.ИмяПровайдера, "", СертификатЭЦП.КодПровайдера);
    
    Сертификат = Новый СертификатКриптографии(СертификатЭЦП.ФайлСертификата.Получить());
    
    Попытка
        Результат =  МенеджерКриптографии.Подписать(ИмяВремФайла, Сертификат);
    Исключение
        ТекстОшибки = ОписаниеОшибки();
    КонецПопытки;
    
    Попытка
        УдалитьФайлы(ИмяВремФайла);
    Исключение
    КонецПопытки;
    
    Возврат Результат;

КонецФункции // ПодписатьСтроку()