PasswordChangeRequiredMessage.cs 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. namespace Renci.SshNet.Messages.Authentication
  2. {
  3. /// <summary>
  4. /// Represents SSH_MSG_USERAUTH_PASSWD_CHANGEREQ message.
  5. /// </summary>
  6. [Message("SSH_MSG_USERAUTH_PASSWD_CHANGEREQ", 60)]
  7. internal class PasswordChangeRequiredMessage : Message
  8. {
  9. /// <summary>
  10. /// Gets password change request message as UTF-8 encoded byte array.
  11. /// </summary>
  12. public byte[] Message { get; private set; }
  13. /// <summary>
  14. /// Gets message language as UTF-8 encoded byte array.
  15. /// </summary>
  16. public byte[] Language { get; private set; }
  17. /// <summary>
  18. /// Gets the size of the message in bytes.
  19. /// </summary>
  20. /// <value>
  21. /// The size of the messages in bytes.
  22. /// </value>
  23. protected override int BufferCapacity
  24. {
  25. get
  26. {
  27. var capacity = base.BufferCapacity;
  28. capacity += 4; // Message length
  29. capacity += Message.Length; // Message
  30. capacity += 4; // Language length
  31. capacity += Language.Length; // Language
  32. return capacity;
  33. }
  34. }
  35. /// <summary>
  36. /// Called when type specific data need to be loaded.
  37. /// </summary>
  38. protected override void LoadData()
  39. {
  40. Message = ReadBinary();
  41. Language = ReadBinary();
  42. }
  43. /// <summary>
  44. /// Called when type specific data need to be saved.
  45. /// </summary>
  46. protected override void SaveData()
  47. {
  48. WriteBinaryString(Message);
  49. WriteBinaryString(Language);
  50. }
  51. }
  52. }