[pgsqlclient-checkins] pgsqlclient_10/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls.Handsha
Status: Inactive
Brought to you by:
carlosga_fb
Update of /cvsroot/pgsqlclient/pgsqlclient_10/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls.Handshake.Client In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31528 Modified Files: TlsClientCertificate.cs TlsClientCertificateVerify.cs TlsClientFinished.cs TlsClientHello.cs TlsClientKeyExchange.cs TlsServerCertificate.cs TlsServerCertificateRequest.cs TlsServerFinished.cs TlsServerHello.cs TlsServerHelloDone.cs TlsServerKeyExchange.cs Log Message: 2004-02-23 Carlos Guzman Alvarez <car...@te...> * Mono.Security.Protocol.Tls/TlsContext.cs: - Removed file, implementation is now present in: Context.cs ClientContext.cs ServerContext.cs * Mono.Security.Protocol.Tls/Context.cs: * Mono.Security.Protocol.Tls/ClientContext.cs: * Mono.Security.Protocol.Tls/ServerContext.cs: * Mono.Security.Protocol.Tls/ServerRecordProtocol.cs: - New classes. * Mono.Security.Protocol.Tls/SslServerStream.cs: - Added implementation for properties, and read/write methods as in SslClientStream. - doHandshake method is not implemented yet. * Mono.Security.Protocol.Tls/SslClientStream.cs: * Mono.Security.Protocol.Tls/RecordProtocol.cs: * Mono.Security.Protocol.Tls/Ciphersuite.cs: * Mono.Security.Protocol.Tls.Alerts/TlsAlert.cs: * Mono.Security.Protocol.Tls.Alerts/TlsCloseNotifyAlert.cs: * Mono.Security.Protocol.Tls.Handshake/TlsHandshakeMessage.cs: * Mono.Security.Protocol.Tls.Handshake.Client/*.cs: - Added changes for make use of the new Context implementation. Index: TlsClientCertificate.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls.Handshake.Client/TlsClientCertificate.cs,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** TlsClientCertificate.cs 17 Feb 2004 17:51:06 -0000 1.3 --- TlsClientCertificate.cs 23 Feb 2004 12:18:52 -0000 1.4 *************** *** 34,38 **** #region Constructors ! public TlsClientCertificate(TlsContext context) : base(context, TlsHandshakeType.Certificate) { --- 34,38 ---- #region Constructors ! public TlsClientCertificate(Context context) : base(context, TlsHandshakeType.Certificate) { *************** *** 61,67 **** { #warning "Client certificate selection is unfinished" ! if (this.Context.ClientSettings.Certificates == null || ! this.Context.ClientSettings.Certificates.Count == 0) { throw this.Context.CreateException("Client certificate requested by the server and no client certificate specified."); --- 61,68 ---- { #warning "Client certificate selection is unfinished" + ClientContext context = (ClientContext)this.Context; ! if (context.ClientSettings.Certificates == null || ! context.ClientSettings.Certificates.Count == 0) { throw this.Context.CreateException("Client certificate requested by the server and no client certificate specified."); *************** *** 71,75 **** X509Certificate clientCert = this.Context.ClientSettings.Certificates[0]; ! clientCert = this.Context.SslStream.RaiseClientCertificateSelection( this.Context.ClientSettings.Certificates, new X509Certificate(this.Context.ServerSettings.Certificates[0].RawData), --- 72,76 ---- X509Certificate clientCert = this.Context.ClientSettings.Certificates[0]; ! clientCert = context.SslStream.RaiseClientCertificateSelection( this.Context.ClientSettings.Certificates, new X509Certificate(this.Context.ServerSettings.Certificates[0].RawData), *************** *** 83,87 **** // Update the selected client certificate ! this.Context.ClientSettings.ClientCertificate = clientCert; // Write client certificates information to a stream --- 84,88 ---- // Update the selected client certificate ! context.ClientSettings.ClientCertificate = clientCert; // Write client certificates information to a stream Index: TlsClientCertificateVerify.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls.Handshake.Client/TlsClientCertificateVerify.cs,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** TlsClientCertificateVerify.cs 10 Feb 2004 09:45:30 -0000 1.1 --- TlsClientCertificateVerify.cs 23 Feb 2004 12:18:52 -0000 1.2 *************** *** 35,39 **** #region Constructors ! public TlsClientCertificateVerify(TlsContext context) : base(context, TlsHandshakeType.Finished) { --- 35,39 ---- #region Constructors ! public TlsClientCertificateVerify(Context context) : base(context, TlsHandshakeType.Finished) { *************** *** 62,67 **** { AsymmetricAlgorithm privKey = null; ! privKey = this.Context.SslStream.RaisePrivateKeySelection( this.Context.ClientSettings.ClientCertificate, this.Context.ClientSettings.TargetHost); --- 62,68 ---- { AsymmetricAlgorithm privKey = null; + ClientContext context = (ClientContext)this.Context; ! privKey = context.SslStream.RaisePrivateKeySelection( this.Context.ClientSettings.ClientCertificate, this.Context.ClientSettings.TargetHost); *************** *** 76,82 **** MD5SHA1 hash = new MD5SHA1(); hash.ComputeHash( ! this.Context.HandshakeMessages.ToArray(), 0, ! (int)this.Context.HandshakeMessages.Length); // RSAManaged of the selected ClientCertificate --- 77,83 ---- MD5SHA1 hash = new MD5SHA1(); hash.ComputeHash( ! context.HandshakeMessages.ToArray(), 0, ! (int)context.HandshakeMessages.Length); // RSAManaged of the selected ClientCertificate Index: TlsClientFinished.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls.Handshake.Client/TlsClientFinished.cs,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** TlsClientFinished.cs 10 Feb 2004 09:45:30 -0000 1.1 --- TlsClientFinished.cs 23 Feb 2004 12:18:52 -0000 1.2 *************** *** 34,38 **** #region Constructors ! public TlsClientFinished(TlsContext context) : base(context, TlsHandshakeType.Finished) { --- 34,38 ---- #region Constructors ! public TlsClientFinished(Context context) : base(context, TlsHandshakeType.Finished) { Index: TlsClientHello.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls.Handshake.Client/TlsClientHello.cs,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** TlsClientHello.cs 20 Feb 2004 18:15:20 -0000 1.3 --- TlsClientHello.cs 23 Feb 2004 12:18:52 -0000 1.4 *************** *** 38,42 **** #region Constructors ! public TlsClientHello(TlsContext context) : base(context, TlsHandshakeType.ClientHello) { --- 38,42 ---- #region Constructors ! public TlsClientHello(Context context) : base(context, TlsHandshakeType.ClientHello) { *************** *** 49,56 **** public override void Update() { base.Update(); ! this.Context.ClientRandom = random; ! this.Context.ClientHelloProtocol = this.Context.Protocol; random = null; --- 49,58 ---- public override void Update() { + ClientContext context = (ClientContext)this.Context; + base.Update(); ! context.ClientRandom = random; ! context.ClientHelloProtocol = this.Context.Protocol; random = null; Index: TlsClientKeyExchange.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls.Handshake.Client/TlsClientKeyExchange.cs,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** TlsClientKeyExchange.cs 10 Feb 2004 09:45:30 -0000 1.1 --- TlsClientKeyExchange.cs 23 Feb 2004 12:18:52 -0000 1.2 *************** *** 33,37 **** #region Constructors ! public TlsClientKeyExchange (TlsContext context) : base(context, TlsHandshakeType.ClientKeyExchange) --- 33,37 ---- #region Constructors ! public TlsClientKeyExchange (Context context) : base(context, TlsHandshakeType.ClientKeyExchange) Index: TlsServerCertificate.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls.Handshake.Client/TlsServerCertificate.cs,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** TlsServerCertificate.cs 18 Feb 2004 16:52:47 -0000 1.3 --- TlsServerCertificate.cs 23 Feb 2004 12:18:52 -0000 1.4 *************** *** 45,49 **** #region Constructors ! public TlsServerCertificate(TlsContext context, byte[] buffer) : base(context, TlsHandshakeType.Certificate, buffer) { --- 45,49 ---- #region Constructors ! public TlsServerCertificate(Context context, byte[] buffer) : base(context, TlsHandshakeType.Certificate, buffer) { *************** *** 97,102 **** } - #warning Correct validation needs to be made using a certificate chain - // Restrict validation to the first certificate this.validateCertificate(certificates[0]); --- 97,100 ---- *************** *** 109,113 **** private void validateCertificate(X509Certificate certificate) { ! ArrayList errors = new ArrayList(); // 1 step : Validate dates --- 107,112 ---- private void validateCertificate(X509Certificate certificate) { ! ArrayList errors = new ArrayList(); ! ClientContext context = (ClientContext)this.Context; // 1 step : Validate dates *************** *** 140,144 **** int[] certificateErrors = (int[])errors.ToArray(typeof(int)); ! if (!this.Context.SslStream.RaiseServerCertificateValidation( new X509Cert.X509Certificate(certificate.RawData), certificateErrors)) --- 139,143 ---- int[] certificateErrors = (int[])errors.ToArray(typeof(int)); ! if (!context.SslStream.RaiseServerCertificateValidation( new X509Cert.X509Certificate(certificate.RawData), certificateErrors)) Index: TlsServerCertificateRequest.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls.Handshake.Client/TlsServerCertificateRequest.cs,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** TlsServerCertificateRequest.cs 10 Feb 2004 09:45:30 -0000 1.1 --- TlsServerCertificateRequest.cs 23 Feb 2004 12:18:52 -0000 1.2 *************** *** 40,44 **** #region Constructors ! public TlsServerCertificateRequest(TlsContext context, byte[] buffer) : base(context, TlsHandshakeType.ServerHello, buffer) { --- 40,44 ---- #region Constructors ! public TlsServerCertificateRequest(Context context, byte[] buffer) : base(context, TlsHandshakeType.ServerHello, buffer) { Index: TlsServerFinished.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls.Handshake.Client/TlsServerFinished.cs,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** TlsServerFinished.cs 10 Feb 2004 09:45:30 -0000 1.1 --- TlsServerFinished.cs 23 Feb 2004 12:18:52 -0000 1.2 *************** *** 34,38 **** #region Constructors ! public TlsServerFinished(TlsContext context, byte[] buffer) : base(context, TlsHandshakeType.ServerHello, buffer) { --- 34,38 ---- #region Constructors ! public TlsServerFinished(Context context, byte[] buffer) : base(context, TlsHandshakeType.ServerHello, buffer) { Index: TlsServerHello.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls.Handshake.Client/TlsServerHello.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** TlsServerHello.cs 20 Feb 2004 18:15:20 -0000 1.2 --- TlsServerHello.cs 23 Feb 2004 12:18:52 -0000 1.3 *************** *** 40,44 **** #region Constructors ! public TlsServerHello(TlsContext context, byte[] buffer) : base(context, TlsHandshakeType.ServerHello, buffer) { --- 40,44 ---- #region Constructors ! public TlsServerHello(Context context, byte[] buffer) : base(context, TlsHandshakeType.ServerHello, buffer) { *************** *** 58,61 **** --- 58,62 ---- this.Context.CompressionMethod = this.compressionMethod; this.Context.Cipher.Context = this.Context; + this.Context.ProtocolNegotiated = true; // Compute ClientRandom + ServerRandom *************** *** 119,123 **** SecurityProtocolType serverProtocol = this.Context.DecodeProtocolCode(protocol); ! if ((serverProtocol & this.Context.SecurityProtocolFlags) == serverProtocol) { this.Context.SecurityProtocol = serverProtocol; --- 120,125 ---- SecurityProtocolType serverProtocol = this.Context.DecodeProtocolCode(protocol); ! if ((serverProtocol & this.Context.SecurityProtocolFlags) == serverProtocol || ! (this.Context.SecurityProtocolFlags & SecurityProtocolType.Default) == SecurityProtocolType.Default) { this.Context.SecurityProtocol = serverProtocol; Index: TlsServerHelloDone.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls.Handshake.Client/TlsServerHelloDone.cs,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** TlsServerHelloDone.cs 10 Feb 2004 09:45:30 -0000 1.1 --- TlsServerHelloDone.cs 23 Feb 2004 12:18:52 -0000 1.2 *************** *** 31,35 **** #region Constructors ! public TlsServerHelloDone(TlsContext context, byte[] buffer) : base(context, TlsHandshakeType.ServerHello, buffer) { --- 31,35 ---- #region Constructors ! public TlsServerHelloDone(Context context, byte[] buffer) : base(context, TlsHandshakeType.ServerHello, buffer) { *************** *** 42,48 **** public override void Update() { base.Update(); ! this.Context.HelloDone = true; } --- 42,50 ---- public override void Update() { + ClientContext context = (ClientContext)this.Context; + base.Update(); ! context.HelloDone = true; } Index: TlsServerKeyExchange.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls.Handshake.Client/TlsServerKeyExchange.cs,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** TlsServerKeyExchange.cs 10 Feb 2004 09:45:30 -0000 1.1 --- TlsServerKeyExchange.cs 23 Feb 2004 12:18:52 -0000 1.2 *************** *** 42,46 **** #region Constructors ! public TlsServerKeyExchange(TlsContext context, byte[] buffer) : base(context, TlsHandshakeType.ServerKeyExchange, buffer) { --- 42,46 ---- #region Constructors ! public TlsServerKeyExchange(Context context, byte[] buffer) : base(context, TlsHandshakeType.ServerKeyExchange, buffer) { |