Re: I'm having problems with cryptography and sockets, help
From: Nicholas Paldino [.NET/C# MVP] (mvp_at_spam.guard.caspershouse.com)
Date: 03/14/05
- Next message: Marcos Stefanakopolus: "Re: Array in structure"
- Previous message: Mohamoss: "RE: Null value wtih Databinding"
- In reply to: Alejandro Castañaza: "I'm having problems with cryptography and sockets, help"
- Next in thread: Alejandro Castañaza: "Re: I'm having problems with cryptography and sockets, help"
- Reply: Alejandro Castañaza: "Re: I'm having problems with cryptography and sockets, help"
- Reply: Alejandro Castañaza: "Re: I'm having problems with cryptography and sockets, help"
- Reply: Alejandro Castañaza: "Re: I'm having problems with cryptography and sockets, help"
- Messages sorted by: [ date ] [ thread ]
Date: Mon, 14 Mar 2005 12:43:18 -0500
Alejandro,
It looks like you are trying to read too much data. You are issuing a
call to the Read method on the socket class passing in a length of 8192
bytes. If the sender does not send 8192 bytes, the call to Read is going to
block until it gets 8192 bytes.
There are two ways of handling this. The first is to mark your message
with an identifier which indicates that the message has completed
transmission. This would require you to read byte-by-byte, which is not a
good thing.
The second is to actually send the length of the message before you send
the message yourself. This way, you can issue a call to the Read method and
know you are not asking for more data than is on the line.
Hope this helps.
--
- Nicholas Paldino [.NET/C# MVP]
- mvp@spam.guard.caspershouse.com
"Alejandro Castañaza" <da_castanaza_borrar@itelgua.com> wrote in message
news:%23KyctTLKFHA.3788@tk2msftngp13.phx.gbl...
> Hi.
>
> I'm writing a program, and I need to send confidential data through the
> network, so I decided to use encryption, using the
> System.Security.Cryptography namespace.
>
> I'm using the sockets for the network communications, and the program
> first does a key exchange, with the asymetric cipher classes, to get a new
> key for the symmetric cipher. My problem is, that although I have checked
> that the two points get to the same key and initialization vector, when
> the sender sends the data, its ok, but the receiver gets blocked. I am
> using blocking sockets, so I am aware that if the socket does not have
> received data, it blocks until it does. But I know that it does receive
> the data, and still it blocks, not the NetworkStream, but the CryptoStream
> used to decrypt the data. I have been trying many things, using the
> StreamReader and StreamWriter like in the documentation examples, but
> doesn't work.
>
> I need help, please. It's been 2 full days trying, please help.
>
> Alejandro.
>
>
>
> Here are some lines of the code:
>
> This is the receiver code (where it blocks, in the Read function):
>
> string mensaje;
> NetworkStream stream = clienteTcp.GetStream();
> // Crear el stream criptográfico
> CryptoStream crStream = new
> CryptoStream(stream,TDES.CreateDecryptor(tdesClave,tdesIV),
>
> CryptoStreamMode.Read);
> // Búfer de 8Kb
> byte[] datos = new byte[8192];
> int bytes;
> int intentos = 25;
> // Detectar si hay datos
> while(intentos > 0)
> {
> if (stream.DataAvailable)
> break;
> intentos--;
> System.Threading.Thread.Sleep(200);
> }
> // Si no hay datos salir
> if (!stream.DataAvailable)
> return String.Empty;
> // Leer mensaje
> bytes = crStream.Read(datos,0,datos.Length);
> // Pasar a string
> mensaje = System.Text.Encoding.Unicode.GetString(datos,0,bytes);
>
>
> This is the sender code:
>
> NetworkStream stream = new NetworkStream(clienteTcp);
> // Crear el stream criptográfico
> CryptoStream crStream = new
> CryptoStream(stream,TDES.CreateEncryptor(tdesClave,tdesIV),
> CryptoStreamMode.Write);
> // Convertir el string a una matriz de bytes
> byte[] datos = System.Text.Encoding.Unicode.GetBytes(mensaje);
> // Transmitir mensaje
> crStream.Write(datos,0,datos.Length);
> crStream.Flush();
>
>
>
>
>
- Next message: Marcos Stefanakopolus: "Re: Array in structure"
- Previous message: Mohamoss: "RE: Null value wtih Databinding"
- In reply to: Alejandro Castañaza: "I'm having problems with cryptography and sockets, help"
- Next in thread: Alejandro Castañaza: "Re: I'm having problems with cryptography and sockets, help"
- Reply: Alejandro Castañaza: "Re: I'm having problems with cryptography and sockets, help"
- Reply: Alejandro Castañaza: "Re: I'm having problems with cryptography and sockets, help"
- Reply: Alejandro Castañaza: "Re: I'm having problems with cryptography and sockets, help"
- Messages sorted by: [ date ] [ thread ]
Relevant Pages
|