namespace Renci.SshNet.Messages.Authentication { /// /// Represents SSH_MSG_USERAUTH_BANNER message. /// [Message("SSH_MSG_USERAUTH_BANNER", 53)] public class BannerMessage : Message { private byte[] _message; private byte[] _language; /// /// Gets banner message. /// public string Message { get { return Utf8.GetString(_message, 0, _message.Length); } } /// /// Gets banner language. /// public string Language { get { return Utf8.GetString(_language, 0, _language.Length); } } /// /// Gets the size of the message in bytes. /// /// /// The size of the messages in bytes. /// protected override int BufferCapacity { get { var capacity = base.BufferCapacity; capacity += 4; // Message length capacity += _message.Length; // Message capacity += 4; // Language length capacity += _language.Length; // Language return capacity; } } internal override void Process(Session session) { session.OnUserAuthenticationBannerReceived(this); } /// /// Called when type specific data need to be loaded. /// protected override void LoadData() { _message = ReadBinary(); _language = ReadBinary(); } /// /// Called when type specific data need to be saved. /// protected override void SaveData() { WriteBinaryString(_message); WriteBinaryString(_language); } } }