2012-05-14 9 views
1

私はLacewingと呼ばれるTCPクライアントサーバーライブラリを使用しています。私が気づいた何TCPストリームに暗号化を追加していますか?

http://lacewing-project.org/docs/

私は送受信メッセージはプレーンテキストであるということです。私はTCPを使用して簡単にメッセージを暗号化/復号化する方法はありますか? TLS en.wikipedia.org/wiki/Transport_Layer_Securityなどのようなものを追加するにはどうすればよいですか?

おかげ

ライブラリはかなりハイレベルであるが、ここでは、クライアント・サーバは、一言で言えばです:

一言で
#include <string> 
#include <iostream> 
#define LacewingFunction 
#include "Lacewing.h" 

void onReceive (Lacewing::Server &Server, Lacewing::Server::Client &Client, 
       char * Data, int Size) { 
        /* callback body */ 
        std::cout << Data << "\n"; 
} 

void onConnect (Lacewing::Server &Server, Lacewing::Server::Client &Client) 
{ 
    std::cout << "Connected!" << "\n"; 
    Client.Send("TestingS"); 
} 



void onReceiveC (Lacewing::Client &Client, char * Data, int Size) 
{ 
    std::cout << Data << "\n"; 
    Client.Send("TesingC"); 
} 


int main(int argc, char* argv[]) 
{ 
    std::string s; 
    std::cin >> s; 
    if(s == "server") 
    { 
     Lacewing::EventPump pump; 
     Lacewing::Server* server = new Lacewing::Server(pump); 
     server->onReceive(onReceive); 
     server->onConnect(onConnect); 
     server->Host(1234); 
     pump.StartEventLoop(); 
    } 
    else 
    { 
     Lacewing::EventPump pump; 
     Lacewing::Client* server = new Lacewing::Client(pump); 
     server->onReceive(onReceiveC); 
     server->Connect("192.168.2.12",1234); 
     pump.StartEventLoop(); 
    } 

    return 0; 
} 
+0

Boost :: Asioという一般的に使用されている別のライブラリを使用してみてください。これは、組み込みのSSLサポートを備えた素晴らしいライブラリです。 Cでコーディングする場合、OpenSSLには使いやすい素敵なライブラリがあります。 – user99545

答えて

0

:はい。あなたの2つの基本的なオプションは、SSL/TLSとIPsecです。 SSLはアプリケーションに実装されます。 IPsecはあなたのコントロールの外にあるでしょう。

関連する質問this answerを参照してください。

SSL/TLSに適合させる方法については、ネットワークコードの一部を投稿する必要があります。


編集:あなたはクサカゲロウにソースコードを変更したくない場合は、あなたのための最も簡単な解決策は、あなたのトラフィックを保護するためにstunnelのようなものを使用するかもしれないと私には思えます。

+0

私の編集を参照してください.... – jmasterx

+0

Lacewingで作業するにはどうすればいいですか? – jmasterx

+0

接続を受け入れると、クライアント/サーバーコードがデータを送受信できるようになる前に、TLSネゴシエーションや証明書の確認などを行う必要があります。基本的にすべてのstunnelが行います。 ;-)おそらく、新しいAPIをLacewingに追加したいと思うでしょう。 'SSLServer' /' SSLClient'のようなものです。サーバーは証明書を指定する機能を必要とします。 – mpontillo

関連する問題