Статус: Новичок
Группы: Участники
Зарегистрирован: 26.10.2021(UTC) Сообщений: 2
|
Добрый день, помогите пожалуйста разобраться с интеграцией c++ и фронтенда (Browser Plugin). Необходимо шифровать данные между браузером и сервером, на симметричном ключе. Browser Plugin предоставляет класс ISymmetricAlgorithm, для совместимости на сервере решил использовать класс CPPCadesSymmetricAlgorithmObject. В целом такой подход заработал. Но возникло несколько проблем 1. CPPCadesSymmetricAlgorithmObject:: ImportKey не освобождает полностью память. Код:
process_mem_usage(); // 17МБ
for (int i = 0; i < 100000; i++)
{
CPPCadesSymmetricAlgorithmObject alg;
alg.ImportKey(exportedKey, strlen(exportedKey), cert, 0, 0);
}
process_mem_usage(); // 795 МБ
2. Последовательность CPPCadesSymmetricAlgorithmObject::ImportKey и CPPCadesSymmetricAlgorithmObject::DiversifyKey со временем приводит к ошибке. Код:
char *exportedKey = "31 2E 32 2E 36 34 33 2E 37 2E 31 2E 32 2E 35 2E 31 2E 31 00:0A 20 00 00 49 2E 00 00 4D 41 47 31 00 02 00 00 30 13 06 07 2A 85 03 02 02 24 00 06 08 2A 85 03 07 01 01 02 02 0C AC 58 07 4E 34 03 8B D5 E8 AE 57 16 0A F9 4A D2 8F B2 72 77 D7 FF 1F 05 62 FE 82 8C 39 FD AE AC 47 68 EB 29 37 3B E3 0D 4A DB 3C E7 66 2E 7A 87 6A 10 B1 07 BF C4 2D E9 B4 05 B8 E1 04 E5 FD:01 20 00 00 1E 66 00 00 FD 51 4A 37 1E 66 00 00 97 57 C6 90 13 F1 C4 9D E2 A7 F3 6C 59 40 8E 81 E0 98 1B 06 40 3E 17 48 E8 9C 27 67 FE 6E A8 74 58 C0 9E 05 56 45 1B AD C3 24 8E 16 30 09 06 07 2A 85 03 02 02 1F 01";
char *iv = "F0 A8 6B 09 D3 8D 60 1A";
char *divers = "B3 D1 DE 08 E5 69 CF 11 7F E5 F3 D9 E9 67 1A B3 DC 65 66 E7 40 98 BB 3B 0B 62 8B CC 70 05 A9 CC 64 72 FB 2B 39 B3 F7 D5";
CPPCadesSymmetricAlgorithmObject alg;
alg.ImportKey(exportedKey, strlen(exportedKey), cert, 0, 0);
const char *pbData = "Y3J5cHJvcHJv";
unsigned long cbData = strlen(pbData);
for (int i = 0; i < 1000000; i++)
{
alg.put_DiversData(divers, strlen(divers));
boost::shared_ptr<CPPCadesSymmetricAlgorithmObject> key;
alg.DiversifyKey(key);
key->put_IV(iv, strlen(iv));
CryptoPro::CStringProxy hex_result;
key->Encrypt(pbData, cbData, TRUE, hex_result);
}
На 131072 попытке вызвать метод DiversifyKey получаю ошибку 0x80090003 Отредактировано пользователем 26 октября 2021 г. 14:13:42(UTC)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 11.03.2013(UTC) Сообщений: 805 Откуда: Оттуда Сказал «Спасибо»: 4 раз Поблагодарили: 148 раз в 144 постах
|
Добрый день. По данному вопросу переписка ведется на нашем портале ТП, обращение № 42131 |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 30.06.2016(UTC) Сообщений: 3,376 Сказал «Спасибо»: 53 раз Поблагодарили: 773 раз в 715 постах
|
Проблема будет исправлена в следующем релизе.
Номер запроса для ориентира - CADES-2247. |
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close