Сегодня передо мной встала задача: искать сертификаты по отпечатку через CAPICOM.dll и отфильтровывать их по алгоритму подписи, а затем передавать на вход методов подписания документов и отображения сертификатов на формах и в справочниках данных сертификатов.
Почему? Просто оказалось что МенеджерКриптографии не получает все сертификаты без разбора по АлгоритмуПодписи с которым он был создан.
Встала задача фильтрации.
Из CAPICOM я получаю через .Thumbprint отпечаток в виде строки, которая содержит HEX символы двоичных данных.
Метод 1С
Сертификат = ХранилищеСертификатов.НайтиПоОтпечатку(ДвоичныйОтпечаток);
Работает только с ДвоичнымиДанными
метод для преобразования HEX строки в ДвоичныеДанные появился только с платформы версии 8.3.10
ОтпечатокВВидеДвоичныхДанных = ПолучитьДвоичныеДанныеИзHexСтроки(ТекущийОтпечаток)
поэтому понадобились эти функции преобразования
таких строк как 5145BC539CCFFE6537741AC28C45C74DB2BAFF8D
в 51 45 BC 53 9C CF FE 65 37 74 1A C2 8C 45 C7 4D B2 BA FF 8D
Функция СтрокуКакДвоичныеДанные(Параметр) Экспорт Перем Результат; ТипДвоичныеДанные = ФабрикаXDTO.Тип("http://www.w3.org/2001/XMLSchema", "hexBinary"); Результат = ФабрикаXDTO.Создать(ТипДвоичныеДанные,Параметр); Возврат Результат.Значение; КонецФункции Функция ДвоичныеДанныеКакСтроку(Параметр) Экспорт Перем Результат; ТипДвоичныеДанные = ФабрикаXDTO.Тип("http://www.w3.org/2001/XMLSchema", "hexBinary"); Результат = ФабрикаXDTO.Создать(ТипДвоичныеДанные,Параметр); Возврат Результат.ЛексическоеЗначение; КонецФункции
Данные методы согласно документации поддерживаются с версии 1С Предприятия 8.1
+ Нет комментариев
Добавить свой