Универсальный синтаксический анализатор ASN.1 для декодирования .key, .cer, .der, .p7m, .p7s, .crt, .pem
Разработка - Защита ПО и шифрование
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Стандартные средства 1С по работе с сертификатами, такой как
Сертификат = Новый СертификатКриптографии()
не позволяет в полной мере получить информацию, хранимую в файле. Лишь поверхностную информацию.
Данная обработка решает эту проблему.
Используя инструменты 1С по работе с двоичными данными, такие как:
ПроверитьБит()
ПроверитьПоБитовойМаске()
УстановитьБит()
ПобитовоеИ()
ПобитовоеИли()
ПобитовоеНе()
ПобитовоеИНе()
ПобитовоеИсключительноеИли()
ПобитовыйСдвигВлево()
ПобитовыйСдвигВправо()
можно извлечь и структурировать хранимую в сертификате информацию любой сложности.

Обработка не требует никаких дополнительных внешних компонент и программ, используя исключительно язык 1С.
В левой части обработки расположена HEX строка двоичных данный, полученная методом:
HEXСтрока = ПолучитьHexСтрокуИзДвоичныхДанных(ДД);
Чуть ниже, отображена строка двоичных данных в Base64:
Base64 = Base64Строка(ДД);
В левой части располагается структурированный результат обработки файла, в виде "ДереваЗначений", представляющую иерархическую структуру хранимой информации.
Типы хранимой в файле информации:
| Номер тэга | Тип хранимой информации |
| 0 | EOC |
| 1 | BOOLEAN |
| 2 | INTEGER |
| 3 | BIT STRING |
| 4 | OCTET STRING |
| 5 | NULL |
| 6 | OBJECT IDENTIFIER |
| 7 | ObjectDescriptor |
| 8 | EXTERNAL |
| 9 | REAL |
| 10 | ENUMERATED |
| 11 | EMBEDDED PDV |
| 12 | UTF8String |
| 13 | RELATIVE OID |
| 16 | SEQUENCE |
| 17 | SET |
| 18 | NumericString |
| 19 | PrintableString |
| 20 | TeletexString |
| 21 | VideotexString |
| 22 | IA5String |
| 23 | UTCTime |
| 24 | GeneralizedTime |
| 25 | GraphicString |
| 26 | VisibleString |
| 27 | GeneralString |
| 28 | UniversalString |
| 30 | BMPString |
*В зависимости от номера тэга, определяется способ получения хранимой информации
Обработка работает со следующими типами файлов:
- key
- cer
- der
- p7m
- p7s
- crt
- pem
Функционал полностью основан на разработке lapo-luchini (github) под JavaScript.
Пример "Парсинг типа строки"
Пример "Парсинг целочисленных типов"
Пример "Парсинг типа даты"
Требования:
- Платформа 1С начиная с 8.3.14 и выше
Проверено на следующих конфигурациях и релизах:
- Документооборот КОРП, релизы 2.1.3.1
Вступайте в нашу телеграмм-группу Инфостарт