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