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);
|