Russian Qt Forum
Февраля 15, 2025, 13:06
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Программирование
>
С/C++
>
Преобразование char * в uint8_t*
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Преобразование char * в uint8_t* (Прочитано 6367 раз)
koldun90
Крякер
Offline
Сообщений: 345
Преобразование char * в uint8_t*
«
:
Января 12, 2021, 16:08 »
Добрый день собираюсь использовать библиотек шифрования/ расшифрования по ГОСТ
https://github.com/faddistr/GOST28147
Вся проблема в том что данные Я храню в массиве
char mas[] или qbytearray. А функция шифрования/расшифрования GOST_Encrypt_SR требует тип
uint8_ t*.Следовательно как мне грамотно произвести преобразование из char * в uint8_t* ?
«
Последнее редактирование: Января 12, 2021, 16:10 от koldun90
»
Записан
qate
Супер
Offline
Сообщений: 1177
Re: Преобразование char * в uint8_t*
«
Ответ #1 :
Января 12, 2021, 20:01 »
я использовал "штатную" реализацию (gost89.h и gost89.c) из состава openssl-1.0.1u.tar.gz, а не эту заброшенную поделку
Код:
#include "gost89.h"
QByteArray gostEncodeCfb(const QByteArray &msg)
{
static const unsigned char iv[16] {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
QByteArray data64(msg);
while (data64.size() % 8) data64.append((char)0);
QByteArray data64Enc(data64.size(), 0);
gost_enc_cfb(&ctx, iv, (const unsigned char*)data64.constData(), (unsigned char*)data64Enc.data(), data64.size() / 8);
return data64Enc;
}
Записан
koldun90
Крякер
Offline
Сообщений: 345
Re: Преобразование char * в uint8_t*
«
Ответ #2 :
Января 12, 2021, 21:06 »
Цитата: qate от Января 12, 2021, 20:01
я использовал "штатную" реализацию (gost89.h и gost89.c) из состава openssl-1.0.1u.tar.gz, а не эту заброшенную поделку
Код:
#include "gost89.h"
QByteArray gostEncodeCfb(const QByteArray &msg)
{
static const unsigned char iv[16] {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
QByteArray data64(msg);
while (data64.size() % 8) data64.append((char)0);
QByteArray data64Enc(data64.size(), 0);
gost_enc_cfb(&ctx, iv, (const unsigned char*)data64.constData(), (unsigned char*)data64Enc.data(), data64.size() / 8);
return data64Enc;
}
Если не сложно можете дать исходник?
Записан
qate
Супер
Offline
Сообщений: 1177
Re: Преобразование char * в uint8_t*
«
Ответ #3 :
Января 12, 2021, 21:31 »
https://ftp.openssl.org/source/old/1.0.1/openssl-1.0.1u.tar.gz
внутри см. openssl-1.0.1u/engines/ccgost/gost89.*
Записан
koldun90
Крякер
Offline
Сообщений: 345
Re: Преобразование char * в uint8_t*
«
Ответ #4 :
Января 13, 2021, 09:11 »
Цитата: qate от Января 12, 2021, 21:31
https://ftp.openssl.org/source/old/1.0.1/openssl-1.0.1u.tar.gz
внутри см. openssl-1.0.1u/engines/ccgost/gost89.*
Если не сложно вам приведите пожалуйста пример как шифровать и расшифровать qbytearray в режиме ecb(простой замены), а то просто там не сказано как пользоваться.
Записан
qate
Супер
Offline
Сообщений: 1177
Re: Преобразование char * в uint8_t*
«
Ответ #5 :
Января 14, 2021, 10:22 »
Режимом ECB не рекомендуется пользоваться
https://ru.wikipedia.org/wiki/
Режим_шифрования
Записан
koldun90
Крякер
Offline
Сообщений: 345
Re: Преобразование char * в uint8_t*
«
Ответ #6 :
Января 14, 2021, 20:23 »
Огромное вам спасибо
Записан
Fregloin
Супер
Offline
Сообщений: 1025
Re: Преобразование char * в uint8_t*
«
Ответ #7 :
Февраля 15, 2021, 13:05 »
char* encoded_data = some_encode_func(...);
uint8_t* your_uint8_array = reinterpret_cast<uint8_t*>(ecnoded_data);
При условии что sizeof(char) == sizeof(uint8_t) в вашей системе
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...