[pgsqlclient-checkins] pgsqlclient_10/PgSqlClient.Security.Tls/source TlsReader.cs,1.19,1.20 TlsSess
Status: Inactive
Brought to you by:
carlosga_fb
|
From: <car...@us...> - 2003-09-15 11:55:27
|
Update of /cvsroot/pgsqlclient/pgsqlclient_10/PgSqlClient.Security.Tls/source
In directory sc8-pr-cvs1:/tmp/cvs-serv4210
Modified Files:
TlsReader.cs TlsSession.cs TlsWriter.cs
Log Message:
Updated files
Index: TlsReader.cs
===================================================================
RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/PgSqlClient.Security.Tls/source/TlsReader.cs,v
retrieving revision 1.19
retrieving revision 1.20
diff -C2 -d -r1.19 -r1.20
*** TlsReader.cs 15 Sep 2003 10:25:22 -0000 1.19
--- TlsReader.cs 15 Sep 2003 11:55:22 -0000 1.20
***************
*** 144,148 ****
byte b = base.ReadByte();
ms.WriteByte(b);
! while (session.Socket.Available != 0)
{
byte[] buffer = base.ReadBytes(session.Socket.Available);
--- 144,148 ----
byte b = base.ReadByte();
ms.WriteByte(b);
! while (session.NetworkStream.DataAvailable)
{
byte[] buffer = base.ReadBytes(session.Socket.Available);
***************
*** 336,405 ****
}
! TlsStreamReader buffer = new TlsStreamReader(this.readFully());
!
! TlsStreamWriter result = new TlsStreamWriter();
! while (!buffer.EOF)
! {
! TlsContentType contentType = (TlsContentType)buffer.ReadByte();
! TlsProtocol protocol = (TlsProtocol)buffer.ReadShort();
! int length = buffer.ReadShort();
! TlsStreamReader message = new TlsStreamReader(buffer.ReadBytes(length));
! // Check that the message as a valid protocol version
! if (protocol != TlsProtocol.Tls1)
! {
! session.ThrowException("Invalid protocol version on message received from server");
! }
! // Decrypt message contents if needed
! if (contentType == TlsContentType.Alert &&
! length == 2)
! {
! }
! else
{
! if (session.State.IsActual &&
! contentType != TlsContentType.ChangeCipherSpec)
! {
! message = new TlsStreamReader(processCipherTextRecord(contentType, protocol, message.GetBytes()));
! }
}
! // Process record
! switch (contentType)
! {
! case TlsContentType.Alert:
! processAlert((TlsAlertLevel)message.ReadByte(),
! (TlsAlertDescription)message.ReadByte());
! break;
!
! case TlsContentType.ChangeCipherSpec:
! // Reset sequence numbers
! session.State.ReadSequenceNumber = 0;
! break;
! case TlsContentType.ApplicationData:
! result.Write(message.GetBytes());
! break;
! case TlsContentType.Handshake:
! while (!message.EOF)
! {
! processHandshakeMessage(message);
! }
! // Update handshakes of current messages
! this.session.HandshakeHashes.Update(message.GetBytes());
! break;
! default:
! session.ThrowException("Unknown record received from server.");
! break;
! }
! message.Reset();
}
! return result.GetBytes();
}
--- 336,399 ----
}
! byte[] result = null;
! TlsContentType contentType = (TlsContentType)base.ReadByte();
! TlsProtocol protocol = (TlsProtocol)this.ReadShort();
! int length = this.ReadShort();
! TlsStreamReader message = new TlsStreamReader(base.ReadBytes(length));
!
! // Check that the message as a valid protocol version
! if (protocol != TlsProtocol.Tls1)
! {
! session.ThrowException("Invalid protocol version on message received from server");
! }
! // Decrypt message contents if needed
! if (contentType == TlsContentType.Alert &&
! length == 2)
! {
! }
! else
! {
! if (session.State.IsActual &&
! contentType != TlsContentType.ChangeCipherSpec)
{
! message = new TlsStreamReader(processCipherTextRecord(contentType, protocol, message.GetBytes()));
}
+ }
! // Process record
! switch (contentType)
! {
! case TlsContentType.Alert:
! processAlert((TlsAlertLevel)message.ReadByte(),
! (TlsAlertDescription)message.ReadByte());
! break;
! case TlsContentType.ChangeCipherSpec:
! // Reset sequence numbers
! session.State.ReadSequenceNumber = 0;
! break;
! case TlsContentType.ApplicationData:
! result = message.GetBytes();
! break;
! case TlsContentType.Handshake:
! while (!message.EOF)
! {
! processHandshakeMessage(message);
! }
! // Update handshakes of current messages
! this.session.HandshakeHashes.Update(message.GetBytes());
! break;
! default:
! session.ThrowException("Unknown record received from server.");
! break;
}
! return result;
}
Index: TlsSession.cs
===================================================================
RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/PgSqlClient.Security.Tls/source/TlsSession.cs,v
retrieving revision 1.16
retrieving revision 1.17
diff -C2 -d -r1.16 -r1.17
*** TlsSession.cs 15 Sep 2003 10:25:22 -0000 1.16
--- TlsSession.cs 15 Sep 2003 11:55:22 -0000 1.17
***************
*** 105,108 ****
--- 105,113 ----
}
+ internal short MaxFragmentSize
+ {
+ get { return (short)Math.Pow(2, 14); }
+ }
+
#endregion
***************
*** 310,317 ****
--- 315,331 ----
IPEndPoint EPhost = new IPEndPoint(hostadd, settings.ServerPort);
+ // Create the socket
socket = new Socket(AddressFamily.InterNetwork,
SocketType.Stream,
ProtocolType.IP);
+ // Set Receive Buffer size.
+ socket.SetSocketOption(SocketOptionLevel.Socket,
+ SocketOptionName.ReceiveBuffer, MaxFragmentSize);
+
+ // Set Send Buffer size.
+ socket.SetSocketOption(SocketOptionLevel.Socket,
+ SocketOptionName.SendBuffer, MaxFragmentSize);
+
// Make the socket to connect to the Server
socket.Connect(EPhost);
***************
*** 322,325 ****
--- 336,340 ----
writer = new TlsWriter(this, networkStream, settings.Encoding);
}
+
private void closeStreams()
{
Index: TlsWriter.cs
===================================================================
RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/PgSqlClient.Security.Tls/source/TlsWriter.cs,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -d -r1.8 -r1.9
*** TlsWriter.cs 4 Sep 2003 12:39:43 -0000 1.8
--- TlsWriter.cs 15 Sep 2003 11:55:22 -0000 1.9
***************
*** 251,257 ****
{
ArrayList d = new ArrayList();
!
! short maxFragmentSize = (short)Math.Pow(2, 14);
! int position = 0;
while (position < messageData.Length)
--- 251,256 ----
{
ArrayList d = new ArrayList();
!
! int position = 0;
while (position < messageData.Length)
***************
*** 259,265 ****
short fragmentLength = 0;
byte[] fragmentData;
! if ((messageData.Length - position) > maxFragmentSize)
{
! fragmentLength = maxFragmentSize;
}
else
--- 258,264 ----
short fragmentLength = 0;
byte[] fragmentData;
! if ((messageData.Length - position) > session.MaxFragmentSize)
{
! fragmentLength = session.MaxFragmentSize;
}
else
|