PasswordChangeRequiredMessage.cs 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  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. #if TUNING
  10. /// <summary>
  11. /// Gets password change request message as UTF-8 encoded byte array.
  12. /// </summary>
  13. public byte[] Message { get; private set; }
  14. #else
  15. /// <summary>
  16. /// Gets password change request message.
  17. /// </summary>
  18. public string Message { get; private set; }
  19. #endif
  20. #if TUNING
  21. /// <summary>
  22. /// Gets message language as UTF-8 encoded byte array.
  23. /// </summary>
  24. public byte[] Language { get; private set; }
  25. #else
  26. /// <summary>
  27. /// Gets message language.
  28. /// </summary>
  29. public string Language { get; private set; }
  30. #endif
  31. #if TUNING
  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. #endif
  51. /// <summary>
  52. /// Called when type specific data need to be loaded.
  53. /// </summary>
  54. protected override void LoadData()
  55. {
  56. #if TUNING
  57. Message = ReadBinary();
  58. Language = ReadBinary();
  59. #else
  60. Message = ReadString();
  61. Language = ReadString();
  62. #endif
  63. }
  64. /// <summary>
  65. /// Called when type specific data need to be saved.
  66. /// </summary>
  67. protected override void SaveData()
  68. {
  69. #if TUNING
  70. WriteBinaryString(Message);
  71. WriteBinaryString(Language);
  72. #else
  73. Write(Message);
  74. Write(Language);
  75. #endif
  76. }
  77. }
  78. }