예제 #1
0
 public void Serialise(System.IO.Stream stream, Version version)
 {
     stream.WriteByte((byte)(255 - _ClientVersion.Major));
     stream.WriteByte((byte)(255 - _ClientVersion.Minor));
     _Random.Serialise(stream);
     if (_SessionID == null)
     {
         stream.WriteByte(0);
     }
     else
     {
         stream.WriteByte((byte)_SessionID.Length);
         stream.Write(_SessionID, 0, _SessionID.Length);
     }
     if (_Cookie == null)
     {
         stream.WriteByte(0);
     }
     else
     {
         stream.WriteByte((byte)_Cookie.Length);
         stream.Write(_Cookie, 0, _Cookie.Length);
     }
     if (_CipherSuites.Length > 0)
     {
         NetworkByteOrderConverter.WriteUInt16(stream, (ushort)(_CipherSuites.Length * 2));
         for (uint index = 0; index < _CipherSuites.Length; index++)
         {
             NetworkByteOrderConverter.WriteUInt16(stream, _CipherSuites[index]);
         }
     }
     stream.WriteByte((byte)_CompressionMethods.Length);
     stream.Write(_CompressionMethods, 0, _CompressionMethods.Length);
     if (_Extensions == null)
     {
         NetworkByteOrderConverter.WriteUInt16(stream, 0);
     }
     else
     {
         _Extensions.Serialise(stream);
     }
 }
예제 #2
0
 public void Serialise(System.IO.Stream stream, Version version)
 {
     stream.WriteByte((byte)(255 - _ServerVersion.Major));
     stream.WriteByte((byte)(255 - _ServerVersion.Minor));
     _Random.Serialise(stream);
     if (_SessionID == null)
     {
         stream.WriteByte(0);
     }
     else
     {
         stream.WriteByte((byte)_SessionID.Length);
         stream.Write(_SessionID, 0, _SessionID.Length);
     }
     NetworkByteOrderConverter.WriteUInt16(stream, _CipherSuite);
     stream.WriteByte(_CompressionMethod);
     if (_Extensions != null)
     {
         _Extensions.Serialise(stream);
     }
 }