[pgsqlclient-checkins] pgsqlclient_10/PgSqlClient.Security.Tls/source TlsCipherSuite.cs,1.10,1.11 Tl
Status: Inactive
Brought to you by:
carlosga_fb
From: <car...@us...> - 2003-09-17 09:52:03
|
Update of /cvsroot/pgsqlclient/pgsqlclient_10/PgSqlClient.Security.Tls/source In directory sc8-pr-cvs1:/tmp/cvs-serv5982 Modified Files: TlsCipherSuite.cs TlsSocket.cs Log Message: * Fixed read of large TLS record * Subst System.Array.Copy for Buffer.BlockCopy Index: TlsCipherSuite.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/PgSqlClient.Security.Tls/source/TlsCipherSuite.cs,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** TlsCipherSuite.cs 16 Sep 2003 22:29:26 -0000 1.10 --- TlsCipherSuite.cs 17 Sep 2003 09:51:59 -0000 1.11 *************** *** 243,251 **** public void DecryptRecord(byte[] fragment, ref byte[] dcrFragment, ref byte[] dcrMAC) { ! int fragmentSize = 0; // Decrypt message fragment ( fragment + mac [+ padding + padding_length] ) byte[] buffer = new byte[fragment.Length]; ! int wb = decryptionCipher.TransformBlock(fragment, 0, fragment.Length, buffer, 0); // Calculate fragment size --- 243,252 ---- public void DecryptRecord(byte[] fragment, ref byte[] dcrFragment, ref byte[] dcrMAC) { ! int fragmentSize = 0; ! int paddingLength = 0; // Decrypt message fragment ( fragment + mac [+ padding + padding_length] ) byte[] buffer = new byte[fragment.Length]; ! decryptionCipher.TransformBlock(fragment, 0, fragment.Length, buffer, 0); // Calculate fragment size *************** *** 253,257 **** { // Calculate padding_length ! int paddingLength = buffer[buffer.Length - 1]; for (int i = (buffer.Length - 1); i > (buffer.Length - (paddingLength + 1)); i--) { --- 254,258 ---- { // Calculate padding_length ! paddingLength = buffer[buffer.Length - 1]; for (int i = (buffer.Length - 1); i > (buffer.Length - (paddingLength + 1)); i--) { *************** *** 273,278 **** dcrMAC = new byte[HashSize]; ! System.Array.Copy(buffer, 0, dcrFragment, 0, dcrFragment.Length); ! System.Array.Copy(buffer, dcrFragment.Length, dcrMAC, 0, dcrMAC.Length); } --- 274,279 ---- dcrMAC = new byte[HashSize]; ! Buffer.BlockCopy(buffer, 0, dcrFragment, 0, dcrFragment.Length); ! Buffer.BlockCopy(buffer, dcrFragment.Length, dcrMAC, 0, dcrMAC.Length); } Index: TlsSocket.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/PgSqlClient.Security.Tls/source/TlsSocket.cs,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** TlsSocket.cs 16 Sep 2003 22:29:26 -0000 1.3 --- TlsSocket.cs 17 Sep 2003 09:51:59 -0000 1.4 *************** *** 166,171 **** // Read Record data ! byte[] buffer = new byte[length]; ! base.Receive(buffer, 0, buffer.Length, SocketFlags.None); TlsStreamReader message = new TlsStreamReader(buffer); --- 166,176 ---- // Read Record data ! int received = 0; ! byte[] buffer = new byte[length]; ! while (received != length) ! { ! received += base.Receive( ! buffer, received, buffer.Length - received, SocketFlags.None); ! } TlsStreamReader message = new TlsStreamReader(buffer); |