Статус: Новичок
Группы: Участники
Зарегистрирован: 25.04.2022(UTC) Сообщений: 2 
|
Здравствуйте! много решений на тему шифрования ФСС есть для других языков. к сожалению Java, Delphi, Cишный синтаксис мне сложно разобрать меня интересует решение для python3. создать и подписать XML у меня получилось с помощью pycades теперь возник вопрос как зашифровать c помощью pycades (возможно ли это вообще)?
Этапы шифрования сообщения (Спецификация ЭЛН): 1. Создание случайного сессионного ключа. При работе с ключами на алгоритме ГОСТ 2012 следует инициализировать генератор параметрами шифрования TK26Z (предоставляется провайдером). Алгоритм шифрования GOST28147. 2. Зашифрование сессионного ключа. 2.1 Создание шифратора для зашифрования ключа. Применяется алгоритм трансформации "urn:ietf:params:xml:ns:cpxmlsec:algorithms:transport-gost2001". Cоздается эфемерный ключ, который согласуется с открытым ключом получателя, и формируется ключ согласования (на котором будет зашифрован сессионный ключ); 2.2 Создание блока KeyInfo с сертификатом; 2.3 Шифрование сессионного ключа происходит с помощью указанного асимметричного ключа (ГОСТ Р 34.10). Cессионный ключ используется для шифрования данных и в свою очередь так же шифруется. CALG_DH_GR3410_12_256_EPHEM - идентификатор алгоритма обмена ключей по Диффи-Хеллману на базе закрытого ключа эфемерной пары. Открытый ключ получается по ГОСТ Р 34.10 2012 (256 бит). CALG_DH_GR3410_12_512_EPHEM - идентификатор алгоритма обмена ключей по Диффи-Хеллману на базе закрытого ключа эфемерной пары. Открытый ключ получается по ГОСТ Р 34.10 2012 (512 бит). 3. В блоке <soapenv:Header> в подписанном запросе добавляется блок <X509Certificate>, который содержит публичный сертификат пользователя в формате x509v3 (кодировке base64). 4. Зашифровывание документа. 4.1 Создание шифратора в режиме зашифрования. Применяется алгоритм "urn:ietf:params:xml:ns:cpxmlsec:algorithms:gost28147". Возможные параметры шифратора GostJCE/CBC/ISO10126Padding; 4.2 Добавление зашифрованного сессионного ключа, полученного ранее (добавление блока KeyInfo; 4.3 Зашифровывание документа на сессионном ключе.
вопрос сразу по 1-му пункту - как создать случайный сессионный ключ? есть объект pycades.SymmetricAlgorithm(), у этого объекта есть метод GenerateKey() - но он возвращает None. тот ли объект я взяла для создания случайного сессионного ключа?
|
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 09.12.2022(UTC) Сообщений: 22  Сказал(а) «Спасибо»: 8 раз Поблагодарили: 1 раз в 1 постах
|
Решился ли вопрос? Как решился? Смог ли pycades?
Нахожусь на этом же этапе.
|
|
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close