Update of /cvsroot/pgsqlclient/pgsqlclient_10/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls.Alerts
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15388
Modified Files:
TlsAlert.cs
Removed Files:
TlsCloseNotifyAlert.cs
Log Message:
2004-02-24 Carlos Guzman Alvarez <car...@te...>
* Mono.Security.Protocol.Tls.Alerts/TlsClosNotifyAlert.cs:
- Removed File.
* Mono.Security.Protocol.Tls.Alerts/TlsAlerts.cs:
* Mono.Security.Protocol.Tls/RecordProtocol.cs:
* Mono.Security.Protocol.Tls/SslClientStream.cs:
* Mono.Security.Protocol.Tls/SslServerStream.cs:
- Reimplementation of TLS/SSL Alert Protocol.
Index: TlsAlert.cs
===================================================================
RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls.Alerts/TlsAlert.cs,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** TlsAlert.cs 23 Feb 2004 12:17:25 -0000 1.3
--- TlsAlert.cs 24 Feb 2004 16:04:40 -0000 1.4
***************
*** 67,75 ****
#endregion
! internal abstract class TlsAlert : TlsStream
{
#region Fields
! private Context context;
private TlsAlertLevel level;
private TlsAlertDescription description;
--- 67,75 ----
#endregion
! internal class TlsAlert : TlsStream
{
#region Fields
! private Context context;
private TlsAlertLevel level;
private TlsAlertDescription description;
***************
*** 77,95 ****
#endregion
! #region Properties
! public Context Context
{
! get { return this.context; }
! }
!
! #endregion
! #region Constructors
public TlsAlert(
Context context,
! TlsAlertLevel level,
! TlsAlertDescription description) : base()
{
this.context = context;
--- 77,98 ----
#endregion
! #region Constructors
! public TlsAlert(
! Context context,
! TlsAlertDescription description) : base()
{
! this.context = context;
! this.description = description;
!
! this.inferAlertLevel();
! this.fill();
! }
public TlsAlert(
Context context,
! TlsAlertLevel level,
! TlsAlertDescription description) : base()
{
this.context = context;
***************
*** 102,111 ****
#endregion
- #region Abstract Methods
-
- public abstract void Update();
-
- #endregion
-
#region Properties
--- 105,108 ----
***************
*** 147,150 ****
--- 144,168 ----
#endregion
+ #region Methods
+
+ public void Update()
+ {
+ if ( this.description == TlsAlertDescription.CloseNotify )
+ {
+ this.context.ConnectionEnd = true;
+ }
+
+ if (this.IsFatal)
+ {
+ this.context.ConnectionEnd = true;
+ if (this.context is ServerContext)
+ {
+ ((ServerContext)this.context).SslStream.Close();
+ }
+ }
+ }
+
+ #endregion
+
#region Private Methods
***************
*** 155,158 ****
--- 173,212 ----
}
+ private void inferAlertLevel()
+ {
+ switch (description)
+ {
+ case TlsAlertDescription.CloseNotify:
+ this.level = TlsAlertLevel.Warning;
+ break;
+
+ case TlsAlertDescription.AccessDenied:
+ case TlsAlertDescription.BadCertificate:
+ case TlsAlertDescription.BadRecordMAC:
+ case TlsAlertDescription.CertificateExpired:
+ case TlsAlertDescription.CertificateRevoked:
+ case TlsAlertDescription.CertificateUnknown:
+ case TlsAlertDescription.DecodeError:
+ case TlsAlertDescription.DecompressionFailiure:
+ case TlsAlertDescription.DecryptError:
+ case TlsAlertDescription.DecryptionFailed:
+ case TlsAlertDescription.ExportRestriction:
+ case TlsAlertDescription.HandshakeFailiure:
+ case TlsAlertDescription.IlegalParameter:
+ case TlsAlertDescription.InsuficientSecurity:
+ case TlsAlertDescription.InternalError:
+ case TlsAlertDescription.NoRenegotiation:
+ case TlsAlertDescription.ProtocolVersion:
+ case TlsAlertDescription.RecordOverflow:
+ case TlsAlertDescription.UnexpectedMessage:
+ case TlsAlertDescription.UnknownCA:
+ case TlsAlertDescription.UnsupportedCertificate:
+ case TlsAlertDescription.UserCancelled:
+ default:
+ this.level = TlsAlertLevel.Fatal;
+ break;
+ }
+ }
+
#endregion
--- TlsCloseNotifyAlert.cs DELETED ---
|