Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Наши способы организации безопасного удалённого доступа к рабочим местам и корпоративным ресурсам
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

4 Страницы«<234
Опции
К последнему сообщению К первому непрочитанному
Offline not_x  
#61 Оставлено : 1 мая 2021 г. 18:05:34(UTC)
not_x

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

Группы: Участники
Зарегистрирован: 27.06.2017(UTC)
Сообщений: 16
Российская Федерация

Это структура для ГОСТ-алгоритмов. Там свой космос. Структуры разрабатывались КриптоПро, а потом TK26(смотри пост #59). Грубо говоря если, например, буржуйский PublicKey BLOB для DH - это заголовок + сборки из бинарных значений параметров ключа (если память на изменяет с изменённым порядком байтов) дополненные 0x00 до разрядности, то PublicKey BLOB в ГОСТовских ключах - это заголовок + ANS.1 структура согласно документации (#59).
Offline Coriolis  
#62 Оставлено : 4 мая 2021 г. 13:45:51(UTC)
Coriolis

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

Группы: Участники
Зарегистрирован: 09.08.2018(UTC)
Сообщений: 17
Мужчина
Российская Федерация
Откуда: Москва

Сказал «Спасибо»: 4 раз
Поблагодарили: 3 раз в 2 постах
Да, в итоге разобрался, спасибо. Выложу тут свою выжимку на паскале из uWinCryptEx, это то что я использовал для 17 поста при переделывании под 2012-256
uWinCryptEx.zip (3kb) загружен 4 раз(а).

Единственно так и не понял, при сборке PublickeyBlob в blob.tPublicKeyParam.BlobHeader.aiKeyAlg должно идти ALG_SID_GR3410EL плюс некая константа, т.е. там не чистый ALG_SID_GR3410EL а ALG_SID_GR3410EL + $2E00. Наверно это какая-то комбинация, ну да чёрт с ней, прошил константу.
Offline two_oceans  
#63 Оставлено : 11 мая 2021 г. 7:34:20(UTC)
two_oceans

Статус: Эксперт

Группы: Участники
Зарегистрирован: 05.03.2015(UTC)
Сообщений: 1,207
Российская Федерация
Откуда: Иркутская область

Сказал(а) «Спасибо»: 78 раз
Поблагодарили: 279 раз в 263 постах
Опять какое-то издевательство над файлами определений.
Автор: Coriolis Перейти к цитате
там не чистый ALG_SID_GR3410EL а ALG_SID_GR3410EL + $2E00.
Ну по идее там полный номер алгоритма строится как класс (а также тип и подтип) алгоритма + номер алгоритма в этом классе. ALG_SID_GR3410EL это как раз только номер в классе, $2E00 это класс алгоритма, а целиком (их сумма) номер алгоритма называется CALG_GR3410EL = $2e23. В итоге, Вы вырвали в выжимку не нужную константу CALG_GR3410EL, а только ее часть ALG_SID_GR3410EL. В принципе приплюсовать класс как константу тоже допустимо, просто это будет не так понятно.

Смотрю исходный wincrypt.h или jwawincrypt.pas, нахожу: const ALG_CLASS_SIGNATURE = 1 shl 13 (= $2000); Откуда $2E00 = ALG_CLASS_SIGNATURE + ($e00 = 7 shl 9). Нестандартный тип алгоритма со значением 7 shl 9 и надо искать уже где-то в модифицированной КриптоПро версии wincryptEx.h (то есть это тип для ГОСТ). Эту константу тоже надо в выжимку. У меня wincryptEx.h где-то далеко (скопировал нужные константы в файлы паскаля и куда-то закинул).

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

RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
4 Страницы«<234
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.