Модераторы: xvr
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> conexus сеть+ssl 
:(
    Опции темы
ultrakill
Дата 19.5.2010, 00:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 18.5.2010

Репутация: нет
Всего: нет



Есть IPv6 клиент + сервер, организованные с использованием этой библиотеки. Мне нужно сделать, чтобы данные передавались через OpenSSL secure streams (то есть шифровались алгоритмом RSA). Чето документации нормальной не нашел по библиотеке и не могу разобраться.

Либо само соединение будет защищенное, либо уже переданные данные нужно зашифровывать/дешифровывать, непонятно   smile 
Прозьба не бить, пишу первую программу на си.


клиент:
Код

#include <conexus.h>
#include <iostream>

void get_data(const Conexus::Data d);

int main(int argc, char* argv[])
{
  char data[] = "0123456789";
  char defaulthost[] = "::1";
  char* host = defaulthost;
  int port = 1500;
  if (argc > 1)
    host = argv[1];
  if (argc > 2)
    port = atoi(argv[2]);

  Conexus::init();
  Conexus::IPv6::TCP::pointer tcp = Conexus::IPv6::TCP::create(host, port);
  tcp->signal_data().connect(sigc::ptr_fun(&get_data));
  tcp->start();
  std::cout << "Main thread pid: " << pthread_self() << std::endl;
  std::cout << "Starting..." << std::endl;
  for (int i=1; ; i++)
  {
      std::cout << "Time: " << i << std::endl;
    if (i%5==0)
    {
      std::cout << i << std::endl;
      tcp->write(data, 11);
    }
    sleep(1);
  }
  tcp->stop();
  return 0;
}

void get_data(const Conexus::Data d)
{
  std::cout << "thread pid: " << pthread_self() << std::endl;
  std::cout << "size = <**> " << d.size();
  if (d.size() > 0)
  std::cout << "[" << d.data() << "]" << std::endl;
}



сервер:
Код

#include <conexus.h>
#include <sys/types.h>
#include <unistd.h>
#include <iostream>
#include <vector>

std::vector<Conexus::Endpoint::pointer> connections;

void on_new_connection(Conexus::Endpoint::pointer endpoint);

void get_data(const Conexus::Data d, Conexus::Endpoint::pointer endpoint);

int main()
{
  Conexus::init();
  Conexus::IPv6::TCPServer::pointer tcp = Conexus::IPv6::TCPServer::create(1500);
  tcp->signal_new_endpoint().connect(sigc::ptr_fun(&on_new_connection));
  tcp->start();
  std::cout << "Main thread pid: " << pthread_self() << std::endl;
  std::cout << "Starting..." << std::endl;
  for (int i=1; ; i++)
  {
    std::cout << "Time: " << i << std::endl;
    sleep(1);
  }
  tcp->stop();

  return 0;
}

void on_new_connection(Conexus::Endpoint::pointer endpoint)
{
  endpoint->signal_data().connect(sigc::bind(sigc::ptr_fun(&get_data),endpoint));
  endpoint->start();
  connections.push_back(endpoint);
}

void get_data(const Conexus::Data d, Conexus::Endpoint::pointer endpoint)
{
  std::cout << "thread pid: " << pthread_self() << std::endl;
  std::cout << "size = <**> " << d.size();
  if (d.size() > 0)
  std::cout << "[" << d.data() << "]" << std::endl;
  //
  //endpoint->write(d);
}



ps
http://conexus.sourceforge.net/ смотрел user posted image

Это сообщение отредактировал(а) ultrakill - 19.5.2010, 00:10
PM MAIL   Вверх
ultrakill
Дата 19.5.2010, 00:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 18.5.2010

Репутация: нет
Всего: нет



если позволите, апну
user posted image

Это сообщение отредактировал(а) ultrakill - 19.5.2010, 00:24
PM MAIL   Вверх
MAKCim
Дата 19.5.2010, 08:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 84
Всего: 207



боюсь, единственный вариант пропатчить BIO для сокетов, чтобы связать openssl с Conexus

Добавлено через 3 минуты и 45 секунд
Цитата(ultrakill @  19.5.2010,  00:04 Найти цитируемый пост)
Либо само соединение будет защищенное, либо уже переданные данные нужно зашифровывать/дешифровывать, непонятно

ssl это не просто шифрование, а еще протокол
поэтому тупо зашифровать данные и передать не получится


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
sdukshis
Дата 19.5.2010, 10:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 92
Регистрация: 23.3.2009

Репутация: нет
Всего: 1



Сам я с библиотекой http://conexus.sourceforge.net/ не знаком, но если посмотреть документацию по ней, то там написано, что SSL поддерживается.

Судя по описанию библиотеки, для использования SSL нужно использовать пространство имён  Conexus::SSL в клиенте и сервере.

P.S. SSL использует RSA, только для обмена ключами. Для шифрования самих данных используются уже симметричные схемы.
PM MAIL   Вверх
MAKCim
Дата 19.5.2010, 12:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 84
Всего: 207



тогда в чем проблема?
смотрите мануалы/гуглите ;)


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
ultrakill
  Дата 19.5.2010, 16:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 18.5.2010

Репутация: нет
Всего: нет




Цитата(sdukshis @  19.5.2010,  10:45 Найти цитируемый пост)
для использования SSL нужно использовать пространство имён  Conexus::SSL в клиенте и сервере

Разбираться по названиям элемента класса не умею

Все ясно, спасибо. Не нашел документации/примера по сабжу. Буду шифровать вручную, тк выйдет быстрее.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Программирование под Unix/Linux"
xvr
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой "Код".
  • Вопросы мобильной разработки тут
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема »


 




[ Время генерации скрипта: 0.0466 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.