[pgsqlclient-checkins] pgsqlclient_10/PgSqlClient.Security.Tls/source TlsSession.cs,1.21,1.22 TlsSes
Status: Inactive
Brought to you by:
carlosga_fb
|
From: <car...@us...> - 2003-10-08 12:16:51
|
Update of /cvsroot/pgsqlclient/pgsqlclient_10/PgSqlClient.Security.Tls/source
In directory sc8-pr-cvs1:/tmp/cvs-serv13048
Modified Files:
TlsSession.cs TlsSessionContext.cs TlsSocket.cs
Log Message:
- Added some code reorganization.
- Started the work to implement Client Certificate and Client certificate verify handshake messages.
Index: TlsSession.cs
===================================================================
RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/PgSqlClient.Security.Tls/source/TlsSession.cs,v
retrieving revision 1.21
retrieving revision 1.22
diff -C2 -d -r1.21 -r1.22
*** TlsSession.cs 3 Oct 2003 19:09:44 -0000 1.21
--- TlsSession.cs 8 Oct 2003 12:16:47 -0000 1.22
***************
*** 27,31 ****
using System.Security.Tls.Cryptography;
using System.Security.Tls.Alerts;
! using System.Security.Tls.Handshake;
namespace System.Security.Tls
--- 27,31 ----
using System.Security.Tls.Cryptography;
using System.Security.Tls.Alerts;
! // using System.Security.Tls.Handshake;
namespace System.Security.Tls
***************
*** 47,51 ****
private TlsSessionSettings settings;
private TlsCipherSuiteCollection supportedCiphers;
- private TlsHandshakeHashes handshakeHashes;
private TlsSocket socket;
private TlsNetworkStream networkStream;
--- 47,50 ----
***************
*** 70,79 ****
get { return supportedCiphers; }
}
!
! internal TlsHandshakeHashes HandshakeHashes
! {
! get { return handshakeHashes; }
! }
!
internal bool HelloDone
{
--- 69,73 ----
get { return supportedCiphers; }
}
!
internal bool HelloDone
{
***************
*** 113,117 ****
this.settings = settings;
this.context = new TlsSessionContext();
- this.handshakeHashes = new TlsHandshakeHashes();
this.sessionId = new byte[0];
--- 107,110 ----
***************
*** 198,251 ****
#endregion
- #region HANDSHAKE_MESSAGE_CREATION_METHODS
-
- internal TlsClientHandshakeMessage CreateClientHandshakeMessage(TlsHandshakeType type)
- {
- switch (type)
- {
- case TlsHandshakeType.ClientHello:
- return new TlsClientHello(this);
-
- case TlsHandshakeType.ClientKeyExchange:
- return new TlsClientKeyExchange(this);
-
- case TlsHandshakeType.Finished:
- return new TlsClientFinished(this);
-
- default:
- throw new InvalidOperationException("Unknown client handshake message type: " + type.ToString() );
- }
- }
-
- internal TlsServerHandshakeMessage CreateServerHandshakeMessage(TlsHandshakeType type, TlsStreamReader handMsg)
- {
- switch (type)
- {
- case TlsHandshakeType.Certificate:
- return new TlsServerCertificate(this, handMsg);
-
- case TlsHandshakeType.CertificateRequest:
- return new TlsServerCertificateRequest(this, handMsg);
-
- case TlsHandshakeType.ServerHello:
- return new TlsServerHello(this, handMsg);
-
- case TlsHandshakeType.ServerHelloDone:
- return new TlsServerHelloDone(this, handMsg);
-
- case TlsHandshakeType.ServerKeyExchange:
- return new TlsServerKeyExchange(this, handMsg);
-
- case TlsHandshakeType.Finished:
- return new TlsServerFinished(this, handMsg);
-
- default:
- throw CreateException("Unknown server handshake message received ({0})", type.ToString());
- }
- }
-
-
- #endregion
-
#region INTERNAL_METHODS
--- 191,194 ----
***************
*** 301,305 ****
this.handshakeFinished = false;
this.context = new TlsSessionContext();
- this.handshakeHashes = new TlsHandshakeHashes();
this.sessionId = new byte[0];
}
--- 244,247 ----
Index: TlsSessionContext.cs
===================================================================
RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/PgSqlClient.Security.Tls/source/TlsSessionContext.cs,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** TlsSessionContext.cs 16 Sep 2003 12:28:03 -0000 1.1
--- TlsSessionContext.cs 8 Oct 2003 12:16:47 -0000 1.2
***************
*** 22,25 ****
--- 22,26 ----
using System.Security.Tls.Cryptography;
+ using System.Security.Tls.Handshake;
namespace System.Security.Tls
***************
*** 31,34 ****
--- 32,37 ----
private TlsServerSettings serverSettings;
+ private TlsHandshakeHashes handshakeHashes;
+
private bool connectionEnd;
private TlsCipherSuite cipher;
***************
*** 66,69 ****
--- 69,77 ----
}
+ public TlsHandshakeHashes HandshakeHashes
+ {
+ get { return handshakeHashes; }
+ }
+
public TlsCipherSuite Cipher
{
***************
*** 156,160 ****
public TlsSessionContext()
{
! serverSettings = new TlsServerSettings();
}
--- 164,169 ----
public TlsSessionContext()
{
! this.serverSettings = new TlsServerSettings();
! this.handshakeHashes = new TlsHandshakeHashes();
}
Index: TlsSocket.cs
===================================================================
RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/PgSqlClient.Security.Tls/source/TlsSocket.cs,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** TlsSocket.cs 3 Oct 2003 19:09:44 -0000 1.7
--- TlsSocket.cs 8 Oct 2003 12:16:47 -0000 1.8
***************
*** 131,135 ****
}
- #warning "This needs testing"
if (base.Available == 0)
{
--- 131,134 ----
***************
*** 243,247 ****
}
// Update handshakes of current messages
! this.session.HandshakeHashes.Update(message.GetBytes());
break;
--- 242,246 ----
}
// Update handshakes of current messages
! this.session.Context.HandshakeHashes.Update(message.GetBytes());
break;
***************
*** 339,343 ****
private int sendRecord(TlsHandshakeType type)
{
! TlsClientHandshakeMessage msg = session.CreateClientHandshakeMessage(type);
// Write record
--- 338,342 ----
private int sendRecord(TlsHandshakeType type)
{
! TlsClientHandshakeMessage msg = createClientHandshakeMessage(type);
// Write record
***************
*** 451,455 ****
TlsServerHandshakeMessage message = null;
! message = session.CreateServerHandshakeMessage(handshakeType, handMsg);
if (message == null)
{
--- 450,454 ----
TlsServerHandshakeMessage message = null;
! message = createServerHandshakeMessage(handshakeType, handMsg);
if (message == null)
{
***************
*** 553,556 ****
--- 552,606 ----
#region HANDSHAKE_METHODS
+ private TlsClientHandshakeMessage createClientHandshakeMessage(TlsHandshakeType type)
+ {
+ switch (type)
+ {
+ case TlsHandshakeType.ClientHello:
+ return new TlsClientHello(session);
+
+ case TlsHandshakeType.ClientKeyExchange:
+ return new TlsClientKeyExchange(session);
+
+ case TlsHandshakeType.Certificate:
+ return new TlsClientCertificate(session);
+
+ case TlsHandshakeType.CertificateVerify:
+ return new TlsClientCertificateVerify(session);
+
+ case TlsHandshakeType.Finished:
+ return new TlsClientFinished(session);
+
+ default:
+ throw new InvalidOperationException("Unknown client handshake message type: " + type.ToString() );
+ }
+ }
+
+ private TlsServerHandshakeMessage createServerHandshakeMessage(TlsHandshakeType type, TlsStreamReader handMsg)
+ {
+ switch (type)
+ {
+ case TlsHandshakeType.Certificate:
+ return new TlsServerCertificate(session, handMsg);
+
+ case TlsHandshakeType.CertificateRequest:
+ return new TlsServerCertificateRequest(session, handMsg);
+
+ case TlsHandshakeType.ServerHello:
+ return new TlsServerHello(session, handMsg);
+
+ case TlsHandshakeType.ServerHelloDone:
+ return new TlsServerHelloDone(session, handMsg);
+
+ case TlsHandshakeType.ServerKeyExchange:
+ return new TlsServerKeyExchange(session, handMsg);
+
+ case TlsHandshakeType.Finished:
+ return new TlsServerFinished(session, handMsg);
+
+ default:
+ throw session.CreateException("Unknown server handshake message received ({0})", type.ToString());
+ }
+ }
+
internal void DoHandshake()
{
***************
*** 572,575 ****
--- 622,626 ----
{
#warning "Send client certificate if requested"
+ this.sendRecord(TlsHandshakeType.Certificate);
}
|