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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Norguhtar  
#1 Оставлено : 9 декабря 2020 г. 14:20:14(UTC)
Norguhtar

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

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

Поблагодарили: 2 раз в 2 постах
Мне нужно зашифровать большой файл в пару гигабайт. Для этого как я понял мне надо использовать

Цитата:

Initialize the CMSG_ENVELOPED_ENCODE_INFO structure.

Call CryptMsgCalculateEncodedLength to get the size of the encoded message BLOB. Allocate memory for it.

Call CryptMsgOpenToEncode, passing in CMSG_ENVELOPED for dwMsgType and a pointer to CMSG_ENVELOPED_ENCODE_INFO for pvMsgEncodeInfo. As a result of this call, you will get a handle to the opened message.

Call CryptMsgUpdate, passing in the handle retrieved in step 6 and a pointer to the data that is to be encrypted, enveloped, and encoded. This function can be called as many times as necessary to complete the encoding process.

Call CryptMsgGetParam, passing in the handle retrieved in step 6 and the appropriate parameter types to access the desired, encoded data. For example, pass in CMSG_CONTENT_PARAM to get a pointer to the entire PKCS #7 message.

If the result of this encoding is to be used as the inner data for another encoded message, such as an enveloped message, the CMSG_BARE_CONTENT_PARAM parameter must be passed. For an example, see Alternate Code for Encoding an Enveloped Message.

Close the message by calling CryptMsgClose.


Проще говоря инициализировать хендлер CryptMsg и дальше туда класть данные по частям используя CryptMsgUpdate, а потом закрыть его. Но при в примерах нет никаких описаний по работе подобным образом с CryptMsg и более того в документации написано CryptMsgCalculateEncodedLength

Цитата:

Поддерживаются только типы сообщений CMSG_HASHED и CMSG_SIGNED.


Эммм тогда как шифровать большой файл? В примерах только использование CryptEncryptMessage а он требует передачи ему всего буфера с данными. Что-то идея с чтением всего файла в память мне не кажется хорошей.

Собственно вопрос каким образом шифровать большой файл в PKCS#7?
Offline Norguhtar  
#2 Оставлено : 14 декабря 2020 г. 13:40:26(UTC)
Norguhtar

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

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

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