[pgsqlclient-checkins] pgsqlclient_10/Mono.Security.Protocol.Tls/Mono.Security.Protocol.Tls/Mono.Sec
Status: Inactive
Brought to you by:
carlosga_fb
From: <car...@us...> - 2003-10-14 09:48:27
|
Update of /cvsroot/pgsqlclient/pgsqlclient_10/Mono.Security.Protocol.Tls/Mono.Security.Protocol.Tls/Mono.Security.Protocol.Tls.Handshake In directory sc8-pr-cvs1:/tmp/cvs-serv32207 Modified Files: TlsHandshakeMessage.cs Log Message: Added new TlsStream class. TlsStreamReader and TlsStreamWriter will be replaced by this class soon. TlsHandhskaeMessage inherits from this class. Index: TlsHandshakeMessage.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/Mono.Security.Protocol.Tls/Mono.Security.Protocol.Tls/Mono.Security.Protocol.Tls.Handshake/TlsHandshakeMessage.cs,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** TlsHandshakeMessage.cs 13 Oct 2003 20:48:03 -0000 1.3 --- TlsHandshakeMessage.cs 14 Oct 2003 09:48:22 -0000 1.4 *************** *** 24,34 **** using System; ! using System.IO; ! using System.Net; namespace Mono.Security.Protocol.Tls.Handshake { ! #warning "Think on implement a base stream class with the same stream methods as this have and remove TlsStreamReader and TlsStreamWriter classes" ! internal class TlsHandshakeMessage : Stream { #region FIELDS --- 24,32 ---- using System; ! // using Mono.Security.Protocol.Tls; namespace Mono.Security.Protocol.Tls.Handshake { ! internal class TlsHandshakeMessage : TlsStream { #region FIELDS *************** *** 37,73 **** private TlsHandshakeType handshakeType; private TlsContentType contentType; - private bool canRead; - private bool canWrite; - private MemoryStream buffer; - - #endregion - - #region STREAM_PROPERTIES - - public override bool CanWrite - { - get { return canWrite; } - } - - public override bool CanRead - { - get { return canRead; } - } - - public override bool CanSeek - { - get { return buffer.CanSeek; } - } - - public override long Position - { - get { return buffer.Position; } - set { buffer.Position = value; } - } - - public override long Length - { - get { return buffer.Length; } - } #endregion --- 35,38 ---- *************** *** 94,116 **** #region CONSTRUCTORS - private TlsHandshakeMessage() : base() - { - this.buffer = new MemoryStream(0); - } - - private TlsHandshakeMessage(byte[] data) : base() - { - this.buffer = new MemoryStream(data, false); - } - public TlsHandshakeMessage(TlsSession session, TlsHandshakeType handshakeType, ! TlsContentType contentType) : this() { this.session = session; this.handshakeType = handshakeType; this.contentType = contentType; - this.canRead = false; - this.canWrite = true; // Fill message contents --- 59,69 ---- #region CONSTRUCTORS public TlsHandshakeMessage(TlsSession session, TlsHandshakeType handshakeType, ! TlsContentType contentType) : base() { this.session = session; this.handshakeType = handshakeType; this.contentType = contentType; // Fill message contents *************** *** 119,128 **** public TlsHandshakeMessage(TlsSession session, ! TlsHandshakeType handshakeType, byte[] data) : this(data) { this.session = session; this.handshakeType = handshakeType; - this.canRead = true; - this.canWrite = false; // Parse message --- 72,79 ---- public TlsHandshakeMessage(TlsSession session, ! TlsHandshakeType handshakeType, byte[] data) : base(data) { this.session = session; this.handshakeType = handshakeType; // Parse message *************** *** 132,267 **** #endregion - #region SPECIFIC_READ_METHODS - - public new byte ReadByte() - { - return (byte)base.ReadByte(); - } - - public short ReadInt16() - { - byte[] bytes = this.ReadBytes(2); - - return IPAddress.HostToNetworkOrder(BitConverter.ToInt16(bytes, 0)); - } - - public int ReadInt24() - { - byte[] b = this.ReadBytes(3); - - return ((b[0] & 0xff) << 16) | ((b[1] & 0xff) << 8) | (b[2] & 0xff); - } - - public int ReadInt32() - { - byte[] bytes = this.ReadBytes(4); - - return IPAddress.HostToNetworkOrder(BitConverter.ToInt32(bytes, 0)); - } - - public long ReadInt64() - { - byte[] bytes = this.ReadBytes(8); - - return IPAddress.HostToNetworkOrder(BitConverter.ToInt64(bytes, 0)); - } - - public byte[] ReadBytes(int count) - { - byte[] bytes = new byte[count]; - this.Read(bytes, 0, count); - - return bytes; - } - - #endregion - - #region SPECIFIC_WRITE_METHODS - - public void Write(byte value) - { - WriteByte(value); - } - - public void Write(short value) - { - byte[] bytes = BitConverter.GetBytes((short)IPAddress.HostToNetworkOrder(value)); - Write(bytes); - } - - public void WriteInt24(int value) - { - int int24 = IPAddress.HostToNetworkOrder(value); - byte[] content = new byte[3]; - - System.Array.Copy(BitConverter.GetBytes(int24), 1, content, 0, 3); - - Write(content); - } - - public void Write(int value) - { - byte[] bytes = BitConverter.GetBytes((int)IPAddress.HostToNetworkOrder(value)); - Write(bytes); - } - - public void Write(long value) - { - byte[] bytes = BitConverter.GetBytes((long)IPAddress.HostToNetworkOrder(value)); - Write(bytes); - } - - public void Write(byte[] buffer) - { - Write(buffer, 0, buffer.Length); - } - - #endregion - - #region STREAM_METHODS - - public override void Flush() - { - buffer.Flush(); - } - - public override void SetLength(long length) - { - buffer.SetLength(length); - } - - public override long Seek(long offset, System.IO.SeekOrigin loc) - { - return buffer.Seek(offset, loc); - } - - public override int Read(byte[] buffer, int offset, int count) - { - if (canRead) - { - return this.buffer.Read(buffer, offset, count); - } - throw new InvalidOperationException("Read operations are not allowed by this stream"); - } - - public override void Write(byte[] buffer, int offset, int count) - { - if (canWrite) - { - this.buffer.Write(buffer, offset, count); - } - else - { - throw new InvalidOperationException("Write operations are not allowed by this stream"); - } - } - - #endregion - #region METHODS public virtual void UpdateSession() { ! if (canWrite) { this.session.Context.HandshakeHashes.Update(this.EncodeMessage()); --- 83,91 ---- #endregion #region METHODS public virtual void UpdateSession() { ! if (CanWrite) { this.session.Context.HandshakeHashes.Update(this.EncodeMessage()); *************** *** 282,286 **** byte[] result = null; ! if (canWrite) { TlsStreamWriter c = new TlsStreamWriter(); --- 106,110 ---- byte[] result = null; ! if (CanWrite) { TlsStreamWriter c = new TlsStreamWriter(); *************** *** 288,292 **** c.Write((byte)HandshakeType); c.WriteInt24((int)Length); ! c.Write(buffer.ToArray()); result = c.GetBytes(); --- 112,116 ---- c.Write((byte)HandshakeType); c.WriteInt24((int)Length); ! c.Write(ToArray()); result = c.GetBytes(); *************** *** 294,311 **** return result; - } - - protected int GetUnixTime() - { - DateTime now = DateTime.Now.ToUniversalTime(); - TimeSpan unixTime = now.Subtract(new DateTime(1970, 1, 1)); - - return (int)unixTime.TotalSeconds; - } - - public void Reset() - { - buffer.SetLength(0); - buffer.Position = 0; } --- 118,121 ---- |