7
votes

Writing a little TCP/IP client server app. Basically it creates a server, and then you can create several different clients and set up a bit of a chat session. What I am wondering is there is any way to incorporate, using standard .net libraries some form of encryption?

m_mainSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

Is there any way of speficying tcp using rsa?

Or would you (me that is) have to write some custom libaries to do key exchange and then encrypt the subsequent chat messages? I have done that before for uni but that was in java but I know it would'nt be hard to convert them. Just trying not to have to reinvent the wheel...

Or what about utilising a ssl?

Thanks, Ron.

2

2 Answers

12
votes

The simplest way to encrypt your communication would be to just wrap the entire socket stream in a SslStream.

This is made to work directly with TcpClient/TcpListener, so it's very easy to encrypt a data stream using this.

0
votes

Just wrap it around a library, or alternatively, an SSL tunnel application.