pgsqlclient-checkins Mailing List for PostgreSqlClient (Page 44)
Status: Inactive
Brought to you by:
carlosga_fb
You can subscribe to this list here.
2003 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(120) |
Aug
(95) |
Sep
(95) |
Oct
(213) |
Nov
(114) |
Dec
(64) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
(6) |
Feb
(134) |
Mar
(88) |
Apr
(28) |
May
(22) |
Jun
(15) |
Jul
(23) |
Aug
(2) |
Sep
(15) |
Oct
(2) |
Nov
(6) |
Dec
|
2005 |
Jan
(8) |
Feb
(6) |
Mar
|
Apr
(42) |
May
(3) |
Jun
|
Jul
|
Aug
|
Sep
(84) |
Oct
|
Nov
|
Dec
|
2006 |
Jan
|
Feb
|
Mar
(84) |
Apr
(46) |
May
(40) |
Jun
(8) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <car...@us...> - 2003-09-21 22:35:26
|
Update of /cvsroot/pgsqlclient/pgsqlclient_10/PostgreSql.Data.PgSqlClient/source/NPgClient In directory sc8-pr-cvs1:/tmp/cvs-serv31902 Modified Files: PgDbClient.cs PgStatement.cs Log Message: * source/NPgClient/PgStatement.cs: * Added row fetching in groups of 200 rows. * Cleanup. Index: PgDbClient.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/PostgreSql.Data.PgSqlClient/source/NPgClient/PgDbClient.cs,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** PgDbClient.cs 19 Sep 2003 17:04:39 -0000 1.16 --- PgDbClient.cs 21 Sep 2003 22:35:21 -0000 1.17 *************** *** 670,673 **** --- 670,674 ---- types.Add(1005 , "_int2" , DbType.Object , Type.GetType("System.Array") , 21, 1, 2, false); types.Add(1007 , "_int4" , DbType.Object , Type.GetType("System.Array") , 23, 1, 4, false); + types.Add(1016 , "_int8" , DbType.Object , Type.GetType("System.Array") , 20, 1, 8, false); types.Add(1009 , "_text" , DbType.Object , Type.GetType("System.Array") , 25, 1, 0, false); types.Add(1021 , "_float4" , DbType.Object , Type.GetType("System.Array") , 700, 1, 4, false); Index: PgStatement.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/PostgreSql.Data.PgSqlClient/source/NPgClient/PgStatement.cs,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** PgStatement.cs 19 Sep 2003 17:04:39 -0000 1.7 --- PgStatement.cs 21 Sep 2003 22:35:21 -0000 1.8 *************** *** 49,52 **** --- 49,54 ---- private string parseName; private string portalName; + private int fetchSize; + private bool allRowsFetched; private PgRowDescriptor rowDescriptor; private ArrayList rows; *************** *** 76,80 **** { get { return hasRows; } - set { hasRows = value; } } --- 78,81 ---- *************** *** 82,86 **** { get { return tag; } - set { tag = value; } } --- 83,86 ---- *************** *** 145,148 **** --- 145,149 ---- this.recordsAffected = -1; this.status = PgStatementStatus.Initial; + this.fetchSize = 200; } *************** *** 346,350 **** packet.WriteString(PortalName); ! packet.WriteInt(0); // Rows to retrieve ( 0 = nolimit ) // Send packet to the server --- 347,351 ---- packet.WriteString(PortalName); ! packet.WriteInt(fetchSize); // Rows to retrieve ( 0 = nolimit ) // Send packet to the server *************** *** 352,365 **** // Sync server and client ! db.Sync(); // Receive response PgResponsePacket response = new PgResponsePacket(); ! while (response.Message != PgBackendCodes.READY_FOR_QUERY) { response = db.ReceiveResponsePacket(); ! processSqlPacket(response); } ! // Update status this.status = PgStatementStatus.Executed; --- 353,387 ---- // Sync server and client ! db.Flush(); // Receive response PgResponsePacket response = new PgResponsePacket(); ! while (response.Message != PgBackendCodes.READY_FOR_QUERY && ! response.Message != PgBackendCodes.PORTAL_SUSPENDED && ! response.Message != PgBackendCodes.COMMAND_COMPLETE) { response = db.ReceiveResponsePacket(); ! processSqlPacket(response); } ! ! // If the command is finished and has returned rows ! // set all rows are received ! if ((response.Message == PgBackendCodes.READY_FOR_QUERY || ! response.Message == PgBackendCodes.COMMAND_COMPLETE) && ! this.hasRows) ! { ! this.allRowsFetched = true; ! } ! ! // If all rows are received or the command doesn't return ! // rows perform a Sync. ! if (!this.hasRows || this.allRowsFetched) ! { ! db.Sync(); ! ! response = db.ReceiveResponsePacket(); ! processSqlPacket(response); ! } ! // Update status this.status = PgStatementStatus.Executed; *************** *** 465,483 **** object[] row = null; ! lock (this) { ! // Retrieve row ! if (rows.Count == 0) { ! row = null; } ! else ! { ! // Return always first row ! row = (object[])rows[0]; ! // Remove row from the list ! rows.RemoveAt(0); ! } } --- 487,506 ---- object[] row = null; ! if (!this.allRowsFetched && this.rows.Count == 0) { ! lock (this) { ! // Retrieve next group of rows ! this.Execute(); } ! } ! ! if (rows.Count > 0) ! { ! // Return always first row ! row = (object[])this.rows[0]; ! // Remove row from the list ! this.rows.RemoveAt(0); } *************** *** 599,603 **** case PgBackendCodes.DATAROW: ! HasRows = true; processDataRow(packet); break; --- 622,626 ---- case PgBackendCodes.DATAROW: ! this.hasRows = true; processDataRow(packet); break; *************** *** 605,609 **** case PgBackendCodes.EMPTY_QUERY_RESPONSE: case PgBackendCodes.NODATA: ! HasRows = false; break; --- 628,632 ---- case PgBackendCodes.EMPTY_QUERY_RESPONSE: case PgBackendCodes.NODATA: ! this.hasRows = false; break; *************** *** 715,719 **** } ! Rows.Add(values); } --- 738,742 ---- } ! this.rows.Add(values); } |
From: <car...@us...> - 2003-09-20 14:43:55
|
Update of /cvsroot/pgsqlclient/pgsqlclient_10 In directory sc8-pr-cvs1:/tmp/cvs-serv19230 Modified Files: makefile Log Message: Fixed linux/mono build Index: makefile =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/makefile,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** makefile 31 Aug 2003 12:55:21 -0000 1.2 --- makefile 20 Sep 2003 14:43:51 -0000 1.3 *************** *** 1,3 **** - PGTEST = pgtest.exe TLS = PgSqlClient.Security.Tls.dll LIBRARY = PostgreSql.Data.PgSqlClient.dll --- 1,2 ---- *************** *** 10,16 **** LD_FLAGS = -reference:System.dll -reference:System.Data.dll -reference:System.Drawing.dll -reference:System.Xml.dll # Resources for the Toolbox ! TOOL_RESOURCES = -resource:PostgreSql.Data.PgSqlClient/source/Resources/ToolBox/PgConnection.bmp,PostgreSql.Data.PgSqlClient.Resources.ToolBox.PgConnection.bmp -resource:PostgreSql.Data.PgSqlClient/source/Resources/ToolBox/PgCommand.bmp,PostgreSql.Data.PgSqlClient.Resources.ToolBox.FbCommand.bmp -resource:PostgreSql.Data.PgSqlClient/source/Resources/ToolBox/PgDataAdapter.bmp,PostgreSql.Data.PgSqlClient.Resources.ToolBox.FbDataAdapter.bmp # Source files - RECURSE_PGTEST = -recurse:./PgTest/*.cs RECURSE_TLS = -recurse:./PgSqlClient.Security.Tls/source/*.cs RECURSE_SOURCE = -recurse:./PostgreSql.Data.PgSqlClient/source/*.cs --- 9,14 ---- LD_FLAGS = -reference:System.dll -reference:System.Data.dll -reference:System.Drawing.dll -reference:System.Xml.dll # Resources for the Toolbox ! TOOL_RESOURCES = -resource:PostgreSql.Data.PgSqlClient/source/Resources/ToolBox/PgConnection.bmp,PostgreSql.Data.PgSqlClient.Resources.ToolBox.PgConnection.bmp -resource:PostgreSql.Data.PgSqlClient/source/Resources/ToolBox/PgCommand.bmp,PostgreSql.Data.PgSqlClient.Resources.ToolBox.PgCommand.bmp -resource:PostgreSql.Data.PgSqlClient/source/Resources/ToolBox/PgDataAdapter.bmp,PostgreSql.Data.PgSqlClient.Resources.ToolBox.PgDataAdapter.bmp # Source files RECURSE_TLS = -recurse:./PgSqlClient.Security.Tls/source/*.cs RECURSE_SOURCE = -recurse:./PostgreSql.Data.PgSqlClient/source/*.cs *************** *** 24,30 **** $(CSC) -target:library -out:$(LIBRARY) $(LD_FLAGS) -reference:PgSqlClient.Security.Tls.dll $(DEFINE) $(TOOL_RESOURCES) $(RECURSE_SOURCE) - pgtest.exe: - $(CSC) -target:exe -out:$(PGTEST) $(LD_FLAGS) $(DEFINE) $(RECURSE_PGTEST) -reference:PgSqlClient.Security.Tls.dll -reference:PostgreSql.Data.PgSqlClient.dll - install: rm -rf build --- 22,25 ---- *************** *** 32,39 **** $(COPY) $(TLS) ./build $(COPY) $(LIBRARY) ./build - $(COPY) $(PGTEST) ./build clean: rm $(TLS) ! rm $(LIBRARY) ! rm $(PGTEST) \ No newline at end of file --- 27,32 ---- $(COPY) $(TLS) ./build $(COPY) $(LIBRARY) ./build clean: rm $(TLS) ! rm $(LIBRARY) \ No newline at end of file |
From: <car...@us...> - 2003-09-20 10:49:21
|
Update of /cvsroot/pgsqlclient/pgsqlclient_10/PostgreSql.Data.PgSqlClient.UnitTests/source In directory sc8-pr-cvs1:/tmp/cvs-serv17958 Added Files: PgArrayTest.cs Log Message: Added new NUnit test fixture for test array fields --- NEW FILE: PgArrayTest.cs --- (This appears to be a binary file; contents omitted.) |
From: <car...@us...> - 2003-09-20 10:47:36
|
Update of /cvsroot/pgsqlclient/pgsqlclient_10/PostgreSql.Data.PgSqlClient.UnitTests/source In directory sc8-pr-cvs1:/tmp/cvs-serv17723 Modified Files: PgBaseTest.cs Log Message: Changed a little the test table structure Index: PgBaseTest.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/PostgreSql.Data.PgSqlClient.UnitTests/source/PgBaseTest.cs,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** PgBaseTest.cs 18 Sep 2003 14:47:29 -0000 1.4 --- PgBaseTest.cs 20 Sep 2003 10:47:30 -0000 1.5 *************** *** 148,152 **** commandText.Append("money_field money,"); commandText.Append("numeric_field numeric(8,2),"); ! commandText.Append("array_int int2[],"); commandText.Append("serial_field serial NOT NULL,"); commandText.Append("CONSTRAINT test_table_pkey PRIMARY KEY (int4_field)"); --- 148,154 ---- commandText.Append("money_field money,"); commandText.Append("numeric_field numeric(8,2),"); ! commandText.Append("int2_array int2[],"); ! commandText.Append("int4_array int4[],"); ! commandText.Append("int8_array int8[],"); commandText.Append("serial_field serial NOT NULL,"); commandText.Append("CONSTRAINT test_table_pkey PRIMARY KEY (int4_field)"); |
From: <car...@us...> - 2003-09-19 20:24:49
|
Update of /cvsroot/pgsqlclient/pgsqlclient_10/PostgreSql.Data.PgSqlClient/source In directory sc8-pr-cvs1:/tmp/cvs-serv25297 Modified Files: PgDbType.cs Log Message: * Added support for array parameters ( not finished needs testing ). Index: PgDbType.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/PostgreSql.Data.PgSqlClient/source/PgDbType.cs,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** PgDbType.cs 2 Aug 2003 19:43:01 -0000 1.1.1.1 --- PgDbType.cs 19 Sep 2003 17:04:54 -0000 1.2 *************** *** 24,27 **** --- 24,28 ---- public enum PgDbType { + Array , Binary , Byte , |
Update of /cvsroot/pgsqlclient/pgsqlclient_10/PostgreSql.Data.PgSqlClient/source/NPgClient In directory sc8-pr-cvs1:/tmp/cvs-serv25243 Modified Files: PgDbClient.cs PgOutputPacket.cs PgResponsePacket.cs PgStatement.cs Log Message: * Added support for array parameters ( not finished needs testing ). Index: PgDbClient.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/PostgreSql.Data.PgSqlClient/source/NPgClient/PgDbClient.cs,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** PgDbClient.cs 17 Sep 2003 14:45:43 -0000 1.15 --- PgDbClient.cs 19 Sep 2003 17:04:39 -0000 1.16 *************** *** 668,673 **** types.Add(829 , "macaddr" , DbType.String , Type.GetType("System.String") , 0, 0, 6, false); types.Add(869 , "inet" , DbType.String , Type.GetType("System.String") , 0, 0, 0, false); ! types.Add(1005 , "_int2" , DbType.Object , Type.GetType("System.Array") , 21, 1, 0, false); ! types.Add(1007 , "_int4" , DbType.Object , Type.GetType("System.Array") , 23, 1, 0, false); types.Add(1009 , "_text" , DbType.Object , Type.GetType("System.Array") , 25, 1, 0, false); types.Add(1021 , "_float4" , DbType.Object , Type.GetType("System.Array") , 700, 1, 4, false); --- 668,673 ---- types.Add(829 , "macaddr" , DbType.String , Type.GetType("System.String") , 0, 0, 6, false); types.Add(869 , "inet" , DbType.String , Type.GetType("System.String") , 0, 0, 0, false); ! types.Add(1005 , "_int2" , DbType.Object , Type.GetType("System.Array") , 21, 1, 2, false); ! types.Add(1007 , "_int4" , DbType.Object , Type.GetType("System.Array") , 23, 1, 4, false); types.Add(1009 , "_text" , DbType.Object , Type.GetType("System.Array") , 25, 1, 0, false); types.Add(1021 , "_float4" , DbType.Object , Type.GetType("System.Array") , 700, 1, 4, false); Index: PgOutputPacket.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/PostgreSql.Data.PgSqlClient/source/NPgClient/PgOutputPacket.cs,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** PgOutputPacket.cs 15 Sep 2003 21:33:45 -0000 1.3 --- PgOutputPacket.cs 19 Sep 2003 17:04:39 -0000 1.4 *************** *** 146,150 **** int size = parameter.DataType.Size; ! if (parameter.Value == System.DBNull.Value || parameter.Value == null) { // -1 indicates a NULL argument value --- 146,151 ---- int size = parameter.DataType.Size; ! if (parameter.Value == System.DBNull.Value || ! parameter.Value == null) { // -1 indicates a NULL argument value *************** *** 153,234 **** else { ! // Write parameter value ! switch (parameter.DataType.DbType) { ! case DbType.Binary: ! Write((byte[])parameter.Value); ! break; ! case DbType.Byte: ! WriteInt(size); ! Write((byte)parameter.Value); ! break; ! case DbType.Int16: ! WriteInt(size); ! WriteShort(Convert.ToInt16(parameter.Value)); ! break; ! case DbType.Int32: ! WriteInt(size); ! WriteInt(Convert.ToInt32(parameter.Value)); ! break; ! case DbType.Int64: ! WriteInt(size); ! WriteLong(Convert.ToInt64(parameter.Value)); ! break; ! case DbType.Decimal: { ! /* ! WriteInt(size); ! Write(Convert.ToDecimal(parameter.Value)); ! */ ! string paramValue = parameter.Value.ToString(); ! WriteInt(encoding.GetByteCount(paramValue)); ! Write(paramValue.ToCharArray()); } break; ! case DbType.Double: ! WriteInt(size); ! WriteDouble(Convert.ToDouble(parameter.Value)); ! break; ! ! case DbType.Single: ! WriteInt(size); ! WriteFloat(Convert.ToSingle(parameter.Value)); ! break; ! case DbType.Currency: ! WriteInt(size); ! WriteInt(Convert.ToInt32(Convert.ToSingle(parameter.Value)*100)); ! break; ! case DbType.Date: ! WriteInt(size); ! WriteDate((DateTime)parameter.Value); ! break; ! case DbType.DateTime: ! WriteInt(size); ! WriteTimestamp((DateTime)parameter.Value); ! break; ! case DbType.Time: ! WriteInt(size); ! WriteTime((DateTime)parameter.Value); ! break; ! case DbType.String: ! case DbType.StringFixedLength: ! { ! string paramValue = parameter.Value.ToString(); ! WriteInt(encoding.GetByteCount(paramValue + PgCodes.NULL_TERMINATOR)); ! WriteString(paramValue); ! } break; } } } --- 154,282 ---- else { ! if (parameter.DataType.DbType == DbType.Object) { ! // Handle this type as Array values ! System.Array array = (System.Array)parameter.Value; ! ! // Get array elements type info ! PgType elementType = PgDbClient.Types[parameter.DataType.ArrayType]; ! size = elementType.Size; ! // Create a new packet for write array parameter information ! PgOutputPacket packet = new PgOutputPacket(); ! // Write the number of dimensions ! packet.WriteInt(array.Rank); ! // Write flags (always 0) ! packet.WriteInt(0); ! // Write base type of the array elements ! packet.WriteInt(parameter.DataType.ArrayType); ! // Write lengths and lower bounds ! for (int i = 0; i < array.Rank; i ++) { ! packet.WriteInt(array.GetLength(i)); ! packet.WriteInt(array.GetLowerBound(i) + 1); ! } ! ! // Write array values (at this moment only for first dimension) ! for (int i = array.GetLowerBound(0); i < array.GetLength(0); i++) ! { ! this.writeParameter(packet, elementType.DbType, size, array.GetValue(i)); } + + // Write parameter size + this.WriteInt(packet.GetByteCount()); + // Write parameter data + this.Write(packet.GetBytes()); + } + else + { + writeParameter(this, parameter.DataType.DbType, size, parameter.Value); + } + } + } + + #endregion + + #region PRIVATE_METHODS + + private void writeParameter(PgOutputPacket packet, DbType dbType, int size, object value) + { + switch (dbType) + { + case DbType.Binary: + packet.WriteInt(((byte[])value).Length); + packet.Write((byte[])value); break; ! case DbType.Byte: ! packet.WriteInt(size); ! packet.Write((byte)value); ! break; ! case DbType.Int16: ! packet.WriteInt(size); ! packet.WriteShort(Convert.ToInt16(value)); ! break; ! case DbType.Int32: ! packet.WriteInt(size); ! packet.WriteInt(Convert.ToInt32(value)); ! break; ! case DbType.Int64: ! packet.WriteInt(size); ! packet.WriteLong(Convert.ToInt64(value)); ! break; ! case DbType.Decimal: ! { ! string paramValue = value.ToString(); ! packet.WriteInt(encoding.GetByteCount(paramValue)); ! packet.Write(paramValue.ToCharArray()); ! } ! break; ! case DbType.Double: ! packet.WriteInt(size); ! packet.WriteDouble(Convert.ToDouble(value)); ! break; ! ! case DbType.Single: ! packet.WriteInt(size); ! packet.WriteFloat(Convert.ToSingle(value)); break; + + case DbType.Currency: + packet.WriteInt(size); + packet.WriteInt(Convert.ToInt32(Convert.ToSingle(value)*100)); + break; + + case DbType.Date: + packet.WriteInt(size); + packet.WriteDate((DateTime)value); + break; + + case DbType.DateTime: + packet.WriteInt(size); + packet.WriteTimestamp((DateTime)value); + break; + + case DbType.Time: + packet.WriteInt(size); + packet.WriteTime((DateTime)value); + break; + + case DbType.String: + case DbType.StringFixedLength: + { + string paramValue = value.ToString(); + packet.WriteInt(encoding.GetByteCount(paramValue + PgCodes.NULL_TERMINATOR)); + packet.WriteString(paramValue); } + break; } } Index: PgResponsePacket.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/PostgreSql.Data.PgSqlClient/source/NPgClient/PgResponsePacket.cs,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** PgResponsePacket.cs 15 Sep 2003 21:33:45 -0000 1.4 --- PgResponsePacket.cs 19 Sep 2003 17:04:39 -0000 1.5 *************** *** 173,182 **** public float ReadMoney() { - /* - FloatLayout floatValue = new FloatLayout(); - - floatValue.f = base.ReadSingle(); - floatValue.i0 = IPAddress.HostToNetworkOrder(floatValue.i0); - */ float val = (float)ReadInt(); --- 173,176 ---- *************** *** 231,234 **** --- 225,229 ---- int[] lowerBounds; + // Read te number of dimensions int ndims = ReadInt(); *************** *** 236,245 **** lowerBounds = new int[ndims]; ! int flags = ReadInt(); if (flags != 0) { throw new NotSupportedException("Invalid flags value"); } elementType = PgDbClient.Types[ReadInt()]; for (int i = 0; i < ndims; i++) { --- 231,242 ---- lowerBounds = new int[ndims]; ! int flags = ReadInt(); if (flags != 0) { throw new NotSupportedException("Invalid flags value"); } + // Read array element type elementType = PgDbClient.Types[ReadInt()]; + // Read array lengths and lower bounds for (int i = 0; i < ndims; i++) { *************** *** 250,253 **** --- 247,251 ---- data = Array.CreateInstance(elementType.SystemType, lengths, lowerBounds); + // Read array data byte[] sourceArray = decodeArrayData(elementType, data.Length, length); *************** *** 310,322 **** case DbType.Decimal: - /* - Data sent by PostgreSQL In binary mode - short ndigits = ReadShort(); - short weight = ReadShort(); - short sign = ReadShort(); - short dscale = ReadShort(); - short[] digits = new short[ndigits]; - */ - string numericValue = ReadString(length); return Decimal.Parse(numericValue, NumberFormatInfo.InvariantInfo); --- 308,311 ---- *************** *** 393,397 **** { byte[] elementData = null; ! int elementLen = ReadInt(); switch (type.DbType) --- 382,386 ---- { byte[] elementData = null; ! int elementLen = ReadInt(); switch (type.DbType) Index: PgStatement.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/PostgreSql.Data.PgSqlClient/source/NPgClient/PgStatement.cs,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** PgStatement.cs 15 Sep 2003 21:33:45 -0000 1.6 --- PgStatement.cs 19 Sep 2003 17:04:39 -0000 1.7 *************** *** 284,288 **** --- 284,290 ---- PgOutputPacket packet = new PgOutputPacket(db.Settings.Encoding); + // Destination portal name packet.WriteString(PortalName); + // Prepared statement name packet.WriteString(ParseName); |
From: <car...@us...> - 2003-09-18 14:47:50
|
Update of /cvsroot/pgsqlclient/pgsqlclient_10/PostgreSql.Data.PgSqlClient.UnitTests/source In directory sc8-pr-cvs1:/tmp/cvs-serv8136 Modified Files: PgBaseTest.cs Log Message: Prepare for Beta 2 Index: PgBaseTest.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/PostgreSql.Data.PgSqlClient.UnitTests/source/PgBaseTest.cs,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** PgBaseTest.cs 15 Sep 2003 16:40:38 -0000 1.3 --- PgBaseTest.cs 18 Sep 2003 14:47:29 -0000 1.4 *************** *** 53,57 **** ConfigurationSettings.AppSettings["Port"], ConfigurationSettings.AppSettings["SSL"]); ! connection = new PgConnection(connString.ToString()); connection.StateChange += new StateChangeEventHandler(stateChange); --- 53,57 ---- ConfigurationSettings.AppSettings["Port"], ConfigurationSettings.AppSettings["SSL"]); ! connection = new PgConnection(connString.ToString()); connection.StateChange += new StateChangeEventHandler(stateChange); |
From: <car...@us...> - 2003-09-18 14:22:25
|
Update of /cvsroot/pgsqlclient/pgsqlclient_10/WindowsSetup In directory sc8-pr-cvs1:/tmp/cvs-serv2460 Modified Files: PgSqlClientSetup.gi2 Log Message: Prepare for Beta 2 Index: PgSqlClientSetup.gi2 =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/WindowsSetup/PgSqlClientSetup.gi2,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** PgSqlClientSetup.gi2 12 Sep 2003 20:49:06 -0000 1.2 --- PgSqlClientSetup.gi2 18 Sep 2003 14:22:22 -0000 1.3 *************** *** 101,106 **** </launchconditions--> <variables> ! <var name="AppID" value="PgSqlClient ADO.NET Data Provider 1.0 Beta 1" /> ! <var name="AppName" value="PgSqlClient ADO.NET Data Provider 1.0 Beta 1" /> <var name="OutputPath" value="Output" type="normal"/> <var name="Password" type="normal"/> --- 101,106 ---- </launchconditions--> <variables> ! <var name="AppID" value="PgSqlClient ADO.NET Data Provider 1.0" /> ! <var name="AppName" value="PgSqlClient ADO.NET Data Provider 1.0 Beta 2" /> <var name="OutputPath" value="Output" type="normal"/> <var name="Password" type="normal"/> |
From: <car...@us...> - 2003-09-18 14:21:30
|
Update of /cvsroot/pgsqlclient/pgsqlclient_10 In directory sc8-pr-cvs1:/tmp/cvs-serv2280 Modified Files: changes.txt Log Message: Prepare for Beta 2 Index: changes.txt =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/changes.txt,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** changes.txt 12 Sep 2003 20:50:02 -0000 1.8 --- changes.txt 18 Sep 2003 14:21:26 -0000 1.9 *************** *** 2,5 **** --- 2,19 ---- ------------------------------------------------------- + Beta 2 ( 18-09-2003 ) + ---- - - -- -- ---- - + + * Improvements to TLS (Transport Layer Security support). + + NUnit test suite can now be executed using TLS connections + ( tested on Windows + CygWin + PostgreSQL 7.4 Beta 1 ) + + See the Task Lisk at project page on sourceforge to know what + is pending of implement in the TLS library. + + (https://sourceforge.net/pm/task.php?group_project_id=30343&group_id=85397&func=browse) + + Beta 1 ( 12-09-2003 ) |
From: <car...@us...> - 2003-09-18 14:18:16
|
Update of /cvsroot/pgsqlclient/pgsqlclient_10 In directory sc8-pr-cvs1:/tmp/cvs-serv1607 Modified Files: changelog.txt Log Message: Prepare for beta 2 Index: changelog.txt =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/changelog.txt,v retrieving revision 1.25 retrieving revision 1.26 diff -C2 -d -r1.25 -r1.26 *** changelog.txt 15 Sep 2003 21:35:05 -0000 1.25 --- changelog.txt 18 Sep 2003 14:18:13 -0000 1.26 *************** *** 2,5 **** --- 2,21 ---- ------------------------------------------------------- + < ----------------------------------- Beta 3 ---------------------------------- > + + 2003-09-18 Carlos Guzmán Álvarez <car...@te...> + + * NUnit test suite can now be executed using TLS connections. + + - Removed TlsReader and TlsWriter. Removed methods GetReader and GetWriter + from the TlsSession class. + + - Renamed class TlsSessionState to TlsSessionContext. + + - Added new TlsSocket and TlsNetworkStream classes and added a new NetworkStream + property to TlsSession class. + + - Rework TLS library usage in the provider to match to the new way of work. + 2003-09-14 Carlos Guzmán Álvarez <car...@te...> |
From: <car...@us...> - 2003-09-18 14:14:17
|
Update of /cvsroot/pgsqlclient/pgsqlclient_10/PgSqlClient.Security.Tls/source/Alerts In directory sc8-pr-cvs1:/tmp/cvs-serv780 Modified Files: TlsCloseNotifyAlert.cs Log Message: PRepare for beta 2 Index: TlsCloseNotifyAlert.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/PgSqlClient.Security.Tls/source/Alerts/TlsCloseNotifyAlert.cs,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** TlsCloseNotifyAlert.cs 1 Sep 2003 10:22:05 -0000 1.3 --- TlsCloseNotifyAlert.cs 18 Sep 2003 14:14:13 -0000 1.4 *************** *** 34,38 **** public override void UpdateSession() { ! this.Session.State.ConnectionEnd = true; } } --- 34,38 ---- public override void UpdateSession() { ! this.Session.Context.ConnectionEnd = true; } } |
From: <car...@us...> - 2003-09-17 14:45:48
|
Update of /cvsroot/pgsqlclient/pgsqlclient_10/PostgreSql.Data.PgSqlClient/source/NPgClient In directory sc8-pr-cvs1:/tmp/cvs-serv29012 Modified Files: PgDbClient.cs Log Message: Added change to message receive for ensure that all the expected data is readed Index: PgDbClient.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/PostgreSql.Data.PgSqlClient/source/NPgClient/PgDbClient.cs,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** PgDbClient.cs 16 Sep 2003 12:29:42 -0000 1.14 --- PgDbClient.cs 17 Sep 2003 14:45:43 -0000 1.15 *************** *** 297,302 **** else { ! responsePacket = new PgResponsePacket(type, ! this.receive.ReadBytes(length)); } responsePacket.Encoding = Settings.Encoding; --- 297,308 ---- else { ! // Read the message data ! byte[] buffer = new byte[length]; ! int received = 0; ! while (received < length) ! { ! received += this.receive.Read(buffer, received, length - received); ! } ! responsePacket = new PgResponsePacket(type, buffer); } responsePacket.Encoding = Settings.Encoding; |
From: <car...@us...> - 2003-09-17 14:44:26
|
Update of /cvsroot/pgsqlclient/pgsqlclient_10/PgSqlClient.Security.Tls/source In directory sc8-pr-cvs1:/tmp/cvs-serv28641 Modified Files: TlsNetworkStream.cs TlsSocket.cs Log Message: * Added DataAvailable property to the TlsNEtworkStream class. * Added minor change to the main Receive method overload on the TlsScoket class ( needs testing but seems to work ). Index: TlsNetworkStream.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/PgSqlClient.Security.Tls/source/TlsNetworkStream.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** TlsNetworkStream.cs 16 Sep 2003 22:29:26 -0000 1.2 --- TlsNetworkStream.cs 17 Sep 2003 14:44:16 -0000 1.3 *************** *** 64,67 **** --- 64,90 ---- } + public bool DataAvailable + { + get + { + if (socket == null) + { + throw new IOException(); + } + + if (this.socket.Session.IsSecure) + { + if ((this.socket.InputBuffer.Length - this.socket.InputBuffer.Position) > 0) + { + return true; + } + } + + // If there are bytes in the socket buffer return true + // otherwise false + return this.socket.Available != 0; + } + } + #endregion Index: TlsSocket.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/PgSqlClient.Security.Tls/source/TlsSocket.cs,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** TlsSocket.cs 17 Sep 2003 09:51:59 -0000 1.4 --- TlsSocket.cs 17 Sep 2003 14:44:17 -0000 1.5 *************** *** 30,34 **** namespace System.Security.Tls { ! public class TlsSocket : Socket { #region FIELDS --- 30,34 ---- namespace System.Security.Tls { ! public sealed class TlsSocket : Socket { #region FIELDS *************** *** 39,42 **** --- 39,56 ---- #endregion + #region PROPERTIES + + internal TlsSession Session + { + get { return this.session; } + } + + internal BufferedStream InputBuffer + { + get { return inputBuffer; } + } + + #endregion + #region CONSTRUCTORS *************** *** 115,118 **** --- 129,138 ---- // Restore buffer position inputBuffer.Seek(position, SeekOrigin.Begin); + } + + #warning "This needs testing" + if (base.Available == 0) + { + break; } } |
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); |
From: <car...@us...> - 2003-09-16 22:29:31
|
Update of /cvsroot/pgsqlclient/pgsqlclient_10/PgSqlClient.Security.Tls/source In directory sc8-pr-cvs1:/tmp/cvs-serv12631 Modified Files: TlsCipherSuite.cs TlsNetworkStream.cs TlsSocket.cs Log Message: Added padding check on record decryption. Added some improvements on HMAC calculation Index: TlsCipherSuite.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/PgSqlClient.Security.Tls/source/TlsCipherSuite.cs,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** TlsCipherSuite.cs 16 Sep 2003 12:28:28 -0000 1.9 --- TlsCipherSuite.cs 16 Sep 2003 22:29:26 -0000 1.10 *************** *** 44,48 **** private byte ivSize; private byte blockSize; ! private TlsSessionContext sessionState; private SymmetricAlgorithm encryptionAlgorithm; private ICryptoTransform encryptionCipher; --- 44,48 ---- private byte ivSize; private byte blockSize; ! private TlsSessionContext sessionContext; private SymmetricAlgorithm encryptionAlgorithm; private ICryptoTransform encryptionCipher; *************** *** 113,118 **** public TlsSessionContext SessionState { ! get { return sessionState; } ! set { sessionState = value; } } --- 113,128 ---- public TlsSessionContext SessionState { ! get { return sessionContext; } ! set { sessionContext = value; } ! } ! ! public KeyedHashAlgorithm ClientHMAC ! { ! get { return clientHMAC; } ! } ! ! public KeyedHashAlgorithm ServerHMAC ! { ! get { return serverHMAC; } } *************** *** 237,246 **** // 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 if (cipherMode == CipherMode.CBC) ! { ! fragmentSize = (buffer.Length - (buffer[buffer.Length - 1] + 1)) - HashSize; } else --- 247,267 ---- // 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 if (cipherMode == CipherMode.CBC) ! { ! // Calculate padding_length ! int paddingLength = buffer[buffer.Length - 1]; ! for (int i = (buffer.Length - 1); i > (buffer.Length - (paddingLength + 1)); i--) ! { ! if (buffer[i] != paddingLength) ! { ! paddingLength = 0; ! break; ! } ! } ! ! fragmentSize = (buffer.Length - (paddingLength + 1)) - HashSize; } else *************** *** 256,273 **** } - public byte[] ComputeClientMAC(byte[] data) - { - clientHMAC.TransformFinalBlock(data, 0, data.Length); - - return clientHMAC.Hash; - } - - public byte[] ComputeServerMAC(byte[] data) - { - serverHMAC.TransformFinalBlock(data, 0, data.Length); - - return serverHMAC.Hash; - } - public int GetKeyBlockSize() { --- 277,280 ---- *************** *** 323,328 **** // Set the key and IV for the algorithm ! encryptionAlgorithm.Key = sessionState.ClientWriteKey; ! encryptionAlgorithm.IV = sessionState.ClientWriteIV; // Create encryption cipher --- 330,335 ---- // Set the key and IV for the algorithm ! encryptionAlgorithm.Key = sessionContext.ClientWriteKey; ! encryptionAlgorithm.IV = sessionContext.ClientWriteIV; // Create encryption cipher *************** *** 330,334 **** // Create the HMAC algorithm for the client ! clientHMAC = new HMAC(hashName, sessionState.ClientWriteMAC); } --- 337,341 ---- // Create the HMAC algorithm for the client ! clientHMAC = new HMAC(hashName, sessionContext.ClientWriteMAC); } *************** *** 358,363 **** // Set the key and IV for the algorithm ! decryptionAlgorithm.Key = sessionState.ServerWriteKey; ! decryptionAlgorithm.IV = sessionState.ServerWriteIV; // Create decryption cipher --- 365,370 ---- // Set the key and IV for the algorithm ! decryptionAlgorithm.Key = sessionContext.ServerWriteKey; ! decryptionAlgorithm.IV = sessionContext.ServerWriteIV; // Create decryption cipher *************** *** 365,369 **** // Create the HMAC algorithm for the server ! serverHMAC = new HMAC(hashName, sessionState.ServerWriteMAC); } --- 372,376 ---- // Create the HMAC algorithm for the server ! serverHMAC = new HMAC(hashName, sessionContext.ServerWriteMAC); } Index: TlsNetworkStream.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/PgSqlClient.Security.Tls/source/TlsNetworkStream.cs,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** TlsNetworkStream.cs 16 Sep 2003 12:28:03 -0000 1.1 --- TlsNetworkStream.cs 16 Sep 2003 22:29:26 -0000 1.2 *************** *** 175,178 **** --- 175,182 ---- return socket.Receive(buffer, offset, size, SocketFlags.None); } + catch (TlsException ex) + { + throw ex; + } catch (Exception ex) { *************** *** 213,216 **** --- 217,224 ---- { socket.Send(buffer, offset, size, SocketFlags.None); + } + catch (TlsException ex) + { + throw ex; } catch (Exception ex) Index: TlsSocket.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/PgSqlClient.Security.Tls/source/TlsSocket.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** TlsSocket.cs 16 Sep 2003 14:28:45 -0000 1.2 --- TlsSocket.cs 16 Sep 2003 22:29:26 -0000 1.3 *************** *** 66,71 **** public new void Close() { base.Close(); ! session.Close(); } --- 66,72 ---- public new void Close() { + this.resetBuffer(); base.Close(); ! this.session.Close(); } *************** *** 91,94 **** --- 92,101 ---- return base.Receive(buffer, offset, size, socketFlags); } + + // If actual buffer is full readed reset it + if (inputBuffer.Position == inputBuffer.Length) + { + this.resetBuffer(); + } // Check if we have space in the middle buffer *************** *** 97,103 **** { // Read next record and write it into the inputBuffer ! long position = inputBuffer.Position; byte[] record = this.receiveRecord(); ! if (record.Length > 0) { --- 104,110 ---- { // Read next record and write it into the inputBuffer ! long position = inputBuffer.Position; byte[] record = this.receiveRecord(); ! if (record.Length > 0) { *************** *** 135,138 **** --- 142,146 ---- return base.Send(buffer, offset, size, socketFlags); } + // Send the buffer as a TLS record byte[] recordData = new byte[size]; *************** *** 156,161 **** TlsProtocol protocol = (TlsProtocol)this.ReadShort(); int length = this.ReadShort(); ! TlsStreamReader message = new TlsStreamReader(this.ReadBytes(length)); // Check that the message as a valid protocol version --- 164,173 ---- TlsProtocol protocol = (TlsProtocol)this.ReadShort(); int length = this.ReadShort(); + + // Read Record data + byte[] buffer = new byte[length]; + base.Receive(buffer, 0, buffer.Length, SocketFlags.None); ! TlsStreamReader message = new TlsStreamReader(buffer); // Check that the message as a valid protocol version *************** *** 175,179 **** contentType != TlsContentType.ChangeCipherSpec) { ! message = new TlsStreamReader(decryptRecordFragment(contentType, protocol, message.GetBytes())); } } --- 187,194 ---- contentType != TlsContentType.ChangeCipherSpec) { ! message = decryptRecordFragment( ! contentType, ! protocol, ! message.GetBytes()); } } *************** *** 195,199 **** case TlsContentType.ApplicationData: - // result = message.GetBytes(); break; --- 210,213 ---- *************** *** 217,223 **** #endregion ! #region TLS_READ_CRYPT_METHODS ! private byte[] decryptRecordFragment(TlsContentType contentType, TlsProtocol protocol, byte[] fragment) --- 231,259 ---- #endregion ! #region TLS_CRYPTO_METHODS ! private byte[] encryptRecordFragment(TlsContentType contentType, byte[] fragment) ! { ! // Calculate message MAC ! byte[] mac = encodeClientRecordMAC(contentType, fragment); ! ! // Encrypt the message ! byte[] ecr = session.Context.Cipher.EncryptRecord(fragment, mac); ! ! // Set new IV ! if (session.Context.Cipher.CipherMode == CipherMode.CBC) ! { ! byte[] iv = new byte[session.Context.Cipher.IvSize]; ! System.Array.Copy(ecr, ecr.Length - iv.Length, iv, 0, iv.Length); ! session.Context.Cipher.UpdateClientCipherIV(iv); ! } ! ! // Update sequence number ! session.Context.WriteSequenceNumber++; ! ! return ecr; ! } ! ! private TlsStreamReader decryptRecordFragment(TlsContentType contentType, TlsProtocol protocol, byte[] fragment) *************** *** 256,265 **** session.Context.ReadSequenceNumber++; ! return dcrFragment; } #endregion ! #region TLS_WRITE_CRYPT_METHODS internal int SendAlert(TlsAlert alert) --- 292,301 ---- session.Context.ReadSequenceNumber++; ! return new TlsStreamReader(dcrFragment); } #endregion ! #region TLS_SEND_METHODS internal int SendAlert(TlsAlert alert) *************** *** 346,371 **** } - private byte[] encryptRecordFragment(TlsContentType contentType, byte[] fragment) - { - // Calculate message MAC - byte[] mac = encodeClientRecordMAC(contentType, fragment); - - // Encrypt the message - byte[] ecr = session.Context.Cipher.EncryptRecord(fragment, mac); - - // Set new IV - if (session.Context.Cipher.CipherMode == CipherMode.CBC) - { - byte[] iv = new byte[session.Context.Cipher.IvSize]; - System.Array.Copy(ecr, ecr.Length - iv.Length, iv, 0, iv.Length); - session.Context.Cipher.UpdateClientCipherIV(iv); - } - - // Update sequence number - session.Context.WriteSequenceNumber++; - - return ecr; - } - private byte[][] fragmentData(byte[] messageData) { --- 382,385 ---- *************** *** 452,455 **** --- 466,475 ---- #region MISC_METHODS + private void resetBuffer() + { + this.inputBuffer.SetLength(0); + this.inputBuffer.Position = 0; + } + private byte[] encodeServerRecordMAC(TlsContentType contentType, byte[] fragment) { *************** *** 463,467 **** data.Write(fragment); ! result = session.Context.Cipher.ComputeServerMAC(data.GetBytes()); data.Reset(); --- 483,487 ---- data.Write(fragment); ! result = session.Context.Cipher.ServerHMAC.ComputeHash(data.GetBytes()); data.Reset(); *************** *** 481,485 **** data.Write(fragment); ! result = session.Context.Cipher.ComputeClientMAC(data.GetBytes()); data.Reset(); --- 501,505 ---- data.Write(fragment); ! result = session.Context.Cipher.ClientHMAC.ComputeHash(data.GetBytes()); data.Reset(); *************** *** 496,507 **** } - private byte[] ReadBytes(int length) - { - byte[] b = new byte[length]; - base.Receive(b); - - return b; - } - private short ReadShort() { --- 516,519 ---- *************** *** 572,574 **** #endregion } ! } --- 584,586 ---- #endregion } ! } \ No newline at end of file |
From: <car...@us...> - 2003-09-16 14:29:35
|
Update of /cvsroot/pgsqlclient/pgsqlclient_10/PgSqlClient.Security.Tls/source/Cryptography/ASN1 In directory sc8-pr-cvs1:/tmp/cvs-serv7797 Modified Files: ASN1.cs Log Message: Changed classes from public to internal Index: ASN1.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/PgSqlClient.Security.Tls/source/Cryptography/ASN1/ASN1.cs,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** ASN1.cs 20 Aug 2003 11:50:47 -0000 1.1 --- ASN1.cs 16 Sep 2003 14:29:32 -0000 1.2 *************** *** 17,26 **** // http://www.itu.int/ITU-T/studygroups/com17/languages/ ! #if INSIDE_CORLIB ! internal ! #else ! public ! #endif ! class ASN1 { protected byte m_nTag; --- 17,21 ---- // http://www.itu.int/ITU-T/studygroups/com17/languages/ ! internal class ASN1 { protected byte m_nTag; |
From: <car...@us...> - 2003-09-16 14:29:23
|
Update of /cvsroot/pgsqlclient/pgsqlclient_10/PgSqlClient.Security.Tls/source/Cryptography In directory sc8-pr-cvs1:/tmp/cvs-serv7746 Modified Files: ARC4Managed.cs HMAC.cs RC4.cs Log Message: Changed classes from public to internal Index: ARC4Managed.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/PgSqlClient.Security.Tls/source/Cryptography/ARC4Managed.cs,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** ARC4Managed.cs 20 Aug 2003 11:50:05 -0000 1.1 --- ARC4Managed.cs 16 Sep 2003 14:29:20 -0000 1.2 *************** *** 13,17 **** // http://www.qrst.de/html/dsds/rc4.htm ! public class ARC4Managed : RC4, ICryptoTransform { private byte[] key; --- 13,17 ---- // http://www.qrst.de/html/dsds/rc4.htm ! internal class ARC4Managed : RC4, ICryptoTransform { private byte[] key; Index: HMAC.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/PgSqlClient.Security.Tls/source/Cryptography/HMAC.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** HMAC.cs 1 Sep 2003 10:21:37 -0000 1.2 --- HMAC.cs 16 Sep 2003 14:29:20 -0000 1.3 *************** *** 30,34 **** * Extending the KeyedHashAlgorithm Class (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconextendingkeyedhashalgorithmclass.asp) */ ! public class HMAC : System.Security.Cryptography.KeyedHashAlgorithm { #region FIELDS --- 30,34 ---- * Extending the KeyedHashAlgorithm Class (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconextendingkeyedhashalgorithmclass.asp) */ ! internal class HMAC : System.Security.Cryptography.KeyedHashAlgorithm { #region FIELDS Index: RC4.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/PgSqlClient.Security.Tls/source/Cryptography/RC4.cs,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** RC4.cs 20 Aug 2003 11:50:05 -0000 1.1 --- RC4.cs 16 Sep 2003 14:29:20 -0000 1.2 *************** *** 14,18 **** namespace Mono.Security.Cryptography { ! public abstract class RC4 : SymmetricAlgorithm { private static KeySizes[] s_legalBlockSizes = { --- 14,18 ---- namespace Mono.Security.Cryptography { ! internal abstract class RC4 : SymmetricAlgorithm { private static KeySizes[] s_legalBlockSizes = { |
From: <car...@us...> - 2003-09-16 14:28:49
|
Update of /cvsroot/pgsqlclient/pgsqlclient_10/PgSqlClient.Security.Tls/source In directory sc8-pr-cvs1:/tmp/cvs-serv7610 Modified Files: TlsSocket.cs Log Message: Some improvements for best handling of TLS messages Index: TlsSocket.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/PgSqlClient.Security.Tls/source/TlsSocket.cs,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** TlsSocket.cs 16 Sep 2003 12:28:05 -0000 1.1 --- TlsSocket.cs 16 Sep 2003 14:28:45 -0000 1.2 *************** *** 45,51 **** SocketType socketType, ProtocolType protocolType ! ) : base (addressFamily, socketType, protocolType) { ! inputBuffer = new BufferedStream(new MemoryStream()); } --- 45,51 ---- SocketType socketType, ProtocolType protocolType ! ) : base(addressFamily, socketType, protocolType) { ! this.inputBuffer = new BufferedStream(new MemoryStream()); } *************** *** 55,59 **** SocketType socketType, ProtocolType protocolType ! ) : base (addressFamily, socketType, protocolType) { this.session = session; --- 55,59 ---- SocketType socketType, ProtocolType protocolType ! ) : this(addressFamily, socketType, protocolType) { this.session = session; *************** *** 91,97 **** return base.Receive(buffer, offset, size, socketFlags); } // Check if we have space in the middle buffer // if not Read next TLS record and update the inputBuffer ! if (inputBuffer.Length < size) { // Read next record and write it into the inputBuffer --- 91,98 ---- return base.Receive(buffer, offset, size, socketFlags); } + // Check if we have space in the middle buffer // if not Read next TLS record and update the inputBuffer ! while ((inputBuffer.Length - inputBuffer.Position) < size) { // Read next record and write it into the inputBuffer *************** *** 99,108 **** byte[] record = this.receiveRecord(); ! // Write new data to the inputBuffer ! inputBuffer.Seek(0, SeekOrigin.End); ! inputBuffer.Write(record, 0, record.Length); ! // Restore buffer position ! inputBuffer.Seek(position, SeekOrigin.Begin); } --- 100,112 ---- byte[] record = this.receiveRecord(); ! if (record.Length > 0) ! { ! // Write new data to the inputBuffer ! inputBuffer.Seek(0, SeekOrigin.End); ! inputBuffer.Write(record, 0, record.Length); ! // Restore buffer position ! inputBuffer.Seek(position, SeekOrigin.Begin); ! } } *************** *** 171,175 **** contentType != TlsContentType.ChangeCipherSpec) { ! message = new TlsStreamReader(processCipherTextRecord(contentType, protocol, message.GetBytes())); } } --- 175,179 ---- contentType != TlsContentType.ChangeCipherSpec) { ! message = new TlsStreamReader(decryptRecordFragment(contentType, protocol, message.GetBytes())); } } *************** *** 215,219 **** #region TLS_READ_CRYPT_METHODS ! private byte[] processCipherTextRecord(TlsContentType contentType, TlsProtocol protocol, byte[] fragment) --- 219,223 ---- #region TLS_READ_CRYPT_METHODS ! private byte[] decryptRecordFragment(TlsContentType contentType, TlsProtocol protocol, byte[] fragment) *************** *** 234,238 **** // Check MAC code ! byte[] mac = this.encodeRecordMAC(contentType, dcrFragment, false); // Check that the mac is correct --- 238,242 ---- // Check MAC code ! byte[] mac = this.encodeServerRecordMAC(contentType, dcrFragment); // Check that the mac is correct *************** *** 322,326 **** { // Encrypt fragment ! fragment = encodeCipherTextRecord(contentType, fragment); } --- 326,330 ---- { // Encrypt fragment ! fragment = encryptRecordFragment(contentType, fragment); } *************** *** 342,349 **** } ! private byte[] encodeCipherTextRecord(TlsContentType contentType, byte[] fragment) { // Calculate message MAC ! byte[] mac = encodeRecordMAC(contentType, fragment, true); // Encrypt the message --- 346,353 ---- } ! private byte[] encryptRecordFragment(TlsContentType contentType, byte[] fragment) { // Calculate message MAC ! byte[] mac = encodeClientRecordMAC(contentType, fragment); // Encrypt the message *************** *** 448,452 **** #region MISC_METHODS ! private byte[] encodeRecordMAC(TlsContentType contentType, byte[] fragment, bool useClientMac) { TlsStreamWriter data = new TlsStreamWriter(); --- 452,456 ---- #region MISC_METHODS ! private byte[] encodeServerRecordMAC(TlsContentType contentType, byte[] fragment) { TlsStreamWriter data = new TlsStreamWriter(); *************** *** 459,470 **** data.Write(fragment); ! if (useClientMac) ! { ! result = session.Context.Cipher.ComputeClientMAC(data.GetBytes()); ! } ! else ! { ! result = session.Context.Cipher.ComputeServerMAC(data.GetBytes()); ! } data.Reset(); --- 463,485 ---- data.Write(fragment); ! result = session.Context.Cipher.ComputeServerMAC(data.GetBytes()); ! ! data.Reset(); ! ! return result; ! } ! ! private byte[] encodeClientRecordMAC(TlsContentType contentType, byte[] fragment) ! { ! TlsStreamWriter data = new TlsStreamWriter(); ! byte[] result = null; ! ! data.WriteLong(session.Context.WriteSequenceNumber); ! data.Write((byte)contentType); ! data.WriteShort((short)TlsProtocol.Tls1); ! data.WriteShort((short)fragment.Length); ! data.Write(fragment); ! ! result = session.Context.Cipher.ComputeClientMAC(data.GetBytes()); data.Reset(); |
From: <car...@us...> - 2003-09-16 12:30:50
|
Update of /cvsroot/pgsqlclient/pgsqlclient_10/PostgreSql.Data.PgSqlClient.UnitTests/source In directory sc8-pr-cvs1:/tmp/cvs-serv15455 Modified Files: PgDatabaseSchemaTest.cs Log Message: Added changes to read, write stuff of the TLS library: * Removed TlsReader and TlsWriter * Added TlsSocket and TlsNetworkStream * Renamed TlsSessionState as TlsSessionContext Index: PgDatabaseSchemaTest.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/PostgreSql.Data.PgSqlClient.UnitTests/source/PgDatabaseSchemaTest.cs,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** PgDatabaseSchemaTest.cs 15 Sep 2003 16:42:57 -0000 1.1 --- PgDatabaseSchemaTest.cs 16 Sep 2003 12:30:45 -0000 1.2 *************** *** 35,39 **** [Test] ! public void Csts() { DataTable casts = Connection.GetDbSchemaTable( --- 35,39 ---- [Test] ! public void Casts() { DataTable casts = Connection.GetDbSchemaTable( *************** *** 140,143 **** --- 140,144 ---- [Test] + [Ignore("Not implemented.")] public void Statistics() { *************** *** 161,164 **** --- 162,166 ---- [Test] + [Ignore("Not implemented.")] public void TableStatistics() { *************** *** 175,178 **** --- 177,181 ---- [Test] + [Ignore("Not implemented.")] public void TablesInfo() { *************** *** 182,185 **** --- 185,189 ---- [Test] + [Ignore("Not implemented.")] public void TriggerParameters() { *************** *** 189,192 **** --- 193,197 ---- [Test] + [Ignore("Not implemented.")] public void TriggerPrivileges() { *************** *** 203,206 **** --- 208,212 ---- [Test] + [Ignore("Not implemented.")] public void UsagePrivileges() { *************** *** 210,213 **** --- 216,220 ---- [Test] + [Ignore("Not implemented.")] public void ViewColumnUsage() { |
From: <car...@us...> - 2003-09-16 12:29:45
|
Update of /cvsroot/pgsqlclient/pgsqlclient_10/PostgreSql.Data.PgSqlClient/source/NPgClient In directory sc8-pr-cvs1:/tmp/cvs-serv15223 Modified Files: PgDbClient.cs Log Message: Added changes to read, write stuff of the TLS library: * Removed TlsReader and TlsWriter * Added TlsSocket and TlsNetworkStream * Renamed TlsSessionState as TlsSessionContext Index: PgDbClient.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/PostgreSql.Data.PgSqlClient/source/NPgClient/PgDbClient.cs,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** PgDbClient.cs 15 Sep 2003 21:33:45 -0000 1.13 --- PgDbClient.cs 16 Sep 2003 12:29:42 -0000 1.14 *************** *** 51,56 **** private int secretKey; private Hashtable parameterStatus; ! private TlsWriter send; ! private TlsReader receive; private PgConnectionParams settings; private char transactionStatus; --- 51,56 ---- private int secretKey; private Hashtable parameterStatus; ! private BinaryReader receive; ! private BinaryWriter send; private PgConnectionParams settings; private char transactionStatus; *************** *** 96,105 **** } ! public TlsReader Receive { get { return receive; } } ! public TlsWriter Send { get { return send; } --- 96,105 ---- } ! public BinaryReader Receive { get { return receive; } } ! public BinaryWriter Send { get { return send; } *************** *** 140,147 **** lock (this) { ! TlsSessionSettings tlsSettings = new TlsSessionSettings(TlsProtocol.Tls1, settings.ServerName, settings.ServerPort); session = new TlsSession(tlsSettings); ! send = session.GetWriter(); ! receive = session.GetReader(); if (settings.SSL) --- 140,156 ---- lock (this) { ! // Configure TLS Session Settings ! TlsSessionSettings tlsSettings = new TlsSessionSettings(); ! ! tlsSettings.Protocol = TlsProtocol.Tls1; ! tlsSettings.ServerName = settings.ServerName; ! tlsSettings.ServerPort = settings.ServerPort; ! ! // Create a new TLS Session session = new TlsSession(tlsSettings); ! ! // Create objects for read & write ! receive = new BinaryReader(session.NetworkStream); ! send = new BinaryWriter(session.NetworkStream); if (settings.SSL) *************** *** 155,164 **** { // Start TLS Session ! session.StartSession(); } catch (TlsException ex) { // If the exception is fatal close connection ! session.EndSession(); throw new PgClientException(ex.Message); --- 164,173 ---- { // Start TLS Session ! session.Open(); } catch (TlsException ex) { // If the exception is fatal close connection ! session.Close(); throw new PgClientException(ex.Message); *************** *** 194,198 **** catch (PgClientException ex) { ! session.EndSession(); throw ex; } --- 203,207 ---- catch (PgClientException ex) { ! session.Close(); throw ex; } *************** *** 208,212 **** // End session ! session.EndSession(); } catch (PgClientException ex) --- 217,221 ---- // End session ! session.Close(); } catch (PgClientException ex) *************** *** 237,248 **** } ! if (settings.SSL) ! { ! responsePacket = this.receiveTLSPacket(isSslRequest); ! } ! else ! { ! responsePacket = this.receiveStandardPacket(isSslRequest); ! } switch (responsePacket.Message) --- 246,250 ---- } ! responsePacket = this.receiveStandardPacket(isSslRequest); switch (responsePacket.Message) *************** *** 301,362 **** return responsePacket; - } - - private PgResponsePacket receiveTLSPacket(bool isSslRequest) - { - PgResponsePacket responsePacket = null; - if (buffer.Length == 1 || - buffer.Pending < 4 || - buffer.EOF) - { - updateBuffer(); - } - - // Seems that in TLS mode PostgreSQL sends messages with length 0 - // if we have a packet like this we will return an empty packet in - // response - if (buffer.Length == 0) - { - return new PgResponsePacket(' ', new byte[0]{}); - } - - char type = buffer.ReadChar(); - if (isSslRequest) - { - responsePacket = new PgResponsePacket(type, new byte[0]{}); - } - else - { - int length = buffer.ReadInt() - 4; - while (length > buffer.Pending) - { - this.updateBuffer(); - } - responsePacket = new PgResponsePacket(type, buffer.ReadBytes(length)); - } - responsePacket.Encoding = Settings.Encoding; - - return responsePacket; - } - - private void updateBuffer() - { - PgOutputPacket w = new PgOutputPacket(); - w.Write(buffer.ReadBytes((int)buffer.Pending)); - while (true) - { - byte[] b = receive.ReadBytes(); - w.Write(b); - - if (b.Length != 0) - { - break; - } - } - - buffer.Reset(); - buffer = new PgResponsePacket(w.GetBytes()); - - w.Reset(); } --- 303,306 ---- |
From: <car...@us...> - 2003-09-16 12:29:11
|
Update of /cvsroot/pgsqlclient/pgsqlclient_10/PgSqlClient.Security.Tls/source/Handshake In directory sc8-pr-cvs1:/tmp/cvs-serv15165 Modified Files: TlsClientFinished.cs TlsClientHello.cs TlsClientKeyExchange.cs TlsServerCertificate.cs TlsServerCertificateRequest.cs TlsServerFinished.cs TlsServerHello.cs TlsServerKeyExchange.cs Log Message: Added changes to read, write stuff of the TLS library: * Removed TlsReader and TlsWriter * Added TlsSocket and TlsNetworkStream * Renamed TlsSessionState as TlsSessionContext Index: TlsClientFinished.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/PgSqlClient.Security.Tls/source/Handshake/TlsClientFinished.cs,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** TlsClientFinished.cs 1 Sep 2003 10:21:20 -0000 1.3 --- TlsClientFinished.cs 16 Sep 2003 12:29:08 -0000 1.4 *************** *** 54,58 **** hashes.Write(Session.HandshakeHashes.GetSHAHash()); ! Write(Session.State.PRF(Session.State.MasterSecret, "client finished", hashes.GetBytes(), 12)); hashes.Reset(); --- 54,58 ---- hashes.Write(Session.HandshakeHashes.GetSHAHash()); ! Write(Session.Context.PRF(Session.Context.MasterSecret, "client finished", hashes.GetBytes(), 12)); hashes.Reset(); Index: TlsClientHello.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/PgSqlClient.Security.Tls/source/Handshake/TlsClientHello.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** TlsClientHello.cs 1 Sep 2003 10:21:20 -0000 1.2 --- TlsClientHello.cs 16 Sep 2003 12:29:08 -0000 1.3 *************** *** 47,51 **** base.UpdateSession(); ! Session.State.ClientRandom = random; random = null; --- 47,51 ---- base.UpdateSession(); ! Session.Context.ClientRandom = random; random = null; Index: TlsClientKeyExchange.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/PgSqlClient.Security.Tls/source/Handshake/TlsClientKeyExchange.cs,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** TlsClientKeyExchange.cs 14 Sep 2003 10:49:36 -0000 1.6 --- TlsClientKeyExchange.cs 16 Sep 2003 12:29:08 -0000 1.7 *************** *** 41,55 **** { // Compute pre master secret ! byte[] preMasterSecret = Session.State.CreatePremasterSecret(); // Create a new RSA key RSACryptoServiceProvider rsa = null; ! if (Session.State.ServerSettings.ServerKeyExchange) { ! rsa = Session.State.Cipher.CreateRSA(Session.State.ServerSettings.RsaParameters); } else { ! rsa = Session.State.Cipher.CreateRSA(Session.State.ServerSettings.ServerCertificates[0]); } --- 41,55 ---- { // Compute pre master secret ! byte[] preMasterSecret = Session.Context.CreatePremasterSecret(); // Create a new RSA key RSACryptoServiceProvider rsa = null; ! if (Session.Context.ServerSettings.ServerKeyExchange) { ! rsa = Session.Context.Cipher.CreateRSA(Session.Context.ServerSettings.RsaParameters); } else { ! rsa = Session.Context.Cipher.CreateRSA(Session.Context.ServerSettings.ServerCertificates[0]); } *************** *** 63,70 **** // Create master secret ! Session.State.CreateMasterSecret(preMasterSecret); // Create keys ! Session.State.CreateKeys(); // Clear resources --- 63,70 ---- // Create master secret ! Session.Context.CreateMasterSecret(preMasterSecret); // Create keys ! Session.Context.CreateKeys(); // Clear resources Index: TlsServerCertificate.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/PgSqlClient.Security.Tls/source/Handshake/TlsServerCertificate.cs,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** TlsServerCertificate.cs 13 Sep 2003 11:10:45 -0000 1.5 --- TlsServerCertificate.cs 16 Sep 2003 12:29:08 -0000 1.6 *************** *** 56,60 **** { base.UpdateSession(); ! this.Session.State.ServerSettings.ServerCertificates = certificates; } --- 56,60 ---- { base.UpdateSession(); ! this.Session.Context.ServerSettings.ServerCertificates = certificates; } Index: TlsServerCertificateRequest.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/PgSqlClient.Security.Tls/source/Handshake/TlsServerCertificateRequest.cs,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** TlsServerCertificateRequest.cs 12 Sep 2003 23:49:35 -0000 1.3 --- TlsServerCertificateRequest.cs 16 Sep 2003 12:29:08 -0000 1.4 *************** *** 38,42 **** base.UpdateSession(); ! Session.State.ServerSettings.CertificateRequest = true; } --- 38,42 ---- base.UpdateSession(); ! Session.Context.ServerSettings.CertificateRequest = true; } Index: TlsServerFinished.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/PgSqlClient.Security.Tls/source/Handshake/TlsServerFinished.cs,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** TlsServerFinished.cs 13 Sep 2003 10:23:47 -0000 1.5 --- TlsServerFinished.cs 16 Sep 2003 12:29:08 -0000 1.6 *************** *** 56,60 **** hashes.Write(Session.HandshakeHashes.GetSHAHash()); ! byte[] clientPRF = Session.State.PRF(Session.State.MasterSecret, "server finished", hashes.GetBytes(), 12); hashes.Reset(); --- 56,60 ---- hashes.Write(Session.HandshakeHashes.GetSHAHash()); ! byte[] clientPRF = Session.Context.PRF(Session.Context.MasterSecret, "server finished", hashes.GetBytes(), 12); hashes.Reset(); Index: TlsServerHello.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/PgSqlClient.Security.Tls/source/Handshake/TlsServerHello.cs,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** TlsServerHello.cs 12 Sep 2003 23:49:35 -0000 1.3 --- TlsServerHello.cs 16 Sep 2003 12:29:08 -0000 1.4 *************** *** 50,57 **** Session.SetSessionId(this.sessionId); ! Session.State.ServerRandom = this.random; ! Session.State.Cipher = this.cipherSuite; ! Session.State.CompressionMethod = this.compressionMethod; ! Session.State.Cipher.SessionState = Session.State; } --- 50,57 ---- Session.SetSessionId(this.sessionId); ! Session.Context.ServerRandom = this.random; ! Session.Context.Cipher = this.cipherSuite; ! Session.Context.CompressionMethod = this.compressionMethod; ! Session.Context.Cipher.SessionState = Session.Context; } Index: TlsServerKeyExchange.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/PgSqlClient.Security.Tls/source/Handshake/TlsServerKeyExchange.cs,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** TlsServerKeyExchange.cs 12 Sep 2003 23:49:35 -0000 1.4 --- TlsServerKeyExchange.cs 16 Sep 2003 12:29:08 -0000 1.5 *************** *** 48,54 **** base.UpdateSession(); ! this.Session.State.ServerSettings.ServerKeyExchange = true; ! this.Session.State.ServerSettings.RsaParameters = this.rsaParams; ! this.Session.State.ServerSettings.SignedParams = this.signedParams; } --- 48,54 ---- base.UpdateSession(); ! this.Session.Context.ServerSettings.ServerKeyExchange = true; ! this.Session.Context.ServerSettings.RsaParameters = this.rsaParams; ! this.Session.Context.ServerSettings.SignedParams = this.signedParams; } *************** *** 88,93 **** TlsStreamWriter stream = new TlsStreamWriter(); ! stream.Write(Session.State.ClientRandom); ! stream.Write(Session.State.ServerRandom); stream.Write(rsaParams.Modulus.Length); stream.Write(rsaParams.Modulus); --- 88,93 ---- TlsStreamWriter stream = new TlsStreamWriter(); ! stream.Write(Session.Context.ClientRandom); ! stream.Write(Session.Context.ServerRandom); stream.Write(rsaParams.Modulus.Length); stream.Write(rsaParams.Modulus); |
From: <car...@us...> - 2003-09-16 12:26:46
|
Update of /cvsroot/pgsqlclient/pgsqlclient_10/PgSqlClient.Security.Tls/source In directory sc8-pr-cvs1:/tmp/cvs-serv11254 Removed Files: TlsSessionState.cs Log Message: Removed file --- TlsSessionState.cs DELETED --- |
From: <car...@us...> - 2003-09-16 12:26:26
|
Update of /cvsroot/pgsqlclient/pgsqlclient_10/PgSqlClient.Security.Tls/source In directory sc8-pr-cvs1:/tmp/cvs-serv11215 Removed Files: TlsWriter.cs Log Message: Removed file --- TlsWriter.cs DELETED --- |
From: <car...@us...> - 2003-09-16 12:25:49
|
Update of /cvsroot/pgsqlclient/pgsqlclient_10/PgSqlClient.Security.Tls/source In directory sc8-pr-cvs1:/tmp/cvs-serv11096 Removed Files: TlsReader.cs Log Message: Removed file --- TlsReader.cs DELETED --- |
From: <car...@us...> - 2003-09-15 21:36:04
|
Update of /cvsroot/pgsqlclient/pgsqlclient_10/PgSqlClient.Security.Tls/source In directory sc8-pr-cvs1:/tmp/cvs-serv7906 Modified Files: TlsReader.cs Log Message: * Added some improvements to TLS connections. * Fixed some problems in Database Schema support. Index: TlsReader.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/PgSqlClient.Security.Tls/source/TlsReader.cs,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** TlsReader.cs 15 Sep 2003 11:55:22 -0000 1.20 --- TlsReader.cs 15 Sep 2003 21:36:01 -0000 1.21 *************** *** 144,148 **** byte b = base.ReadByte(); ms.WriteByte(b); ! while (session.NetworkStream.DataAvailable) { byte[] buffer = base.ReadBytes(session.Socket.Available); --- 144,148 ---- byte b = base.ReadByte(); ms.WriteByte(b); ! while (session.Socket.Available != 0) { byte[] buffer = base.ReadBytes(session.Socket.Available); |