PasswordChangeRequiredMessage.cs 2.1 KB

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