Новое в версии 9.2
Оптимизация и ускорение работы
Ускорение загрузки приложения
Ускорена загрузка приложения за счет изменения обработки данных:
- Оптимизирована передача метаданных компонентов приложения за счет исключения избыточных данных и изменения формата сериализации: не передаются пустые массивы, значения по умолчанию и вспомогательная информация модулей.
- Улучшена десериализация описания компонентов с зависимостями: описания компонентов загружаются не в момент запуска приложения, а по необходимости.
Оптимизация применения изменений в модуле
- Значительно ускорено применение изменений в модулях, от которых зависит множество других модулей и элементов проекта.
- Ускорено появление диагностик при редактировании модуля.
- Время сборки ускорилось на 10-15 % в отдельных сценариях.
Прикладная функциональность
Криптография
Поддержка работы с PFX-файлами формата КриптоПро
Добавлена поддержка записи и чтения PFX-файлов формата КриптоПро. Для работы требуется криптопровайдер КриптоПро Java CSP. Чтобы обеспечить возможность указать криптопровайдер при создании объекта ХранилищеPkcs12, в его конструкторы добавлен параметр Криптопровайдер.
метод ВычислитьПодписьГост(Данные: Байты, КриптоПроPfx: Байты, ПарольPfx: СекретПриложения)
знч Криптопровайдер = Криптография.ПолучитьКриптоПроJcsp()
// Загрузка хранилища ключей из PFX-файла, полученного из КриптоПро CSP
знч Хранилище = новый ХранилищеPkcs12(КриптоПроPfx, ПарольPfx, Криптопровайдер)
// КриптоПро не поддерживает пароли для отдельных ключей в PFX, только для всего файла
знч Ключ = Хранилище.НайтиЗакрытый Ключ("Тест", "")
знч Сертификат = Хранилище.НайтиСертификат("Тест")
// Вычисление электронной подписи
знч Вычислитель = новый ВычислительПодписи(Криптопровайдер, Сертификат, Ключ)
Вычислитель.УстановитьСлужбуШтамповВремени("http://qs.cryptopro.ru/tsp/tsp.srf")
знч Подпись = Вычислитель.Подписать(Данные)
// Проверка электронной подписи
знч Верификатор = новый ВерификаторПодписи(Криптопровайдер, Подпись)
если не Верификатор.Проверить(Данные)
выбросить новый ИсключениеНедопустимыйАргумент("Подпись не соответствует данным")
;
;