ConnectionParameter.cs
上传用户:szltgg
上传日期:2019-05-16
资源大小:604k
文件大小:4k
源码类别:

Telnet服务器

开发平台:

C#

  1. /*
  2.  Copyright (c) 2005 Poderosa Project, All Rights Reserved.
  3.  This file is a part of the Granados SSH Client Library that is subject to
  4.  the license included in the distributed package.
  5.  You may not use this file except in compliance with the license.
  6.  $Id: ConnectionParameter.cs,v 1.2 2005/04/20 08:58:56 okajima Exp $
  7. */
  8. using System;
  9. using Granados.PKI;
  10. namespace Granados.SSHC
  11. {
  12. /// <summary>
  13. /// Fill the properties of ConnectionParameter object before you start the connection.
  14. /// </summary>
  15. public class SSHConnectionParameter : ICloneable {
  16. //protocol
  17. private SSHProtocol _protocol;
  18. public SSHProtocol Protocol {
  19. get { return _protocol; }
  20. set { _protocol = value; }
  21. }
  22. //algorithm
  23. private CipherAlgorithm[] _cipherAlgorithms;
  24. public CipherAlgorithm[] PreferableCipherAlgorithms {
  25. get { return _cipherAlgorithms; }
  26. set { _cipherAlgorithms = value; }
  27. }
  28. private PublicKeyAlgorithm[] _hostkeyAlgorithms;
  29. public PublicKeyAlgorithm[] PreferableHostKeyAlgorithms {
  30. get { return _hostkeyAlgorithms; }
  31. set { _hostkeyAlgorithms = value; }
  32. }
  33. //account
  34. private AuthenticationType _authtype;
  35. public AuthenticationType AuthenticationType {
  36. get { return _authtype; }
  37. set { _authtype = value; }
  38. }
  39. private string _username;
  40. public string UserName {
  41. get { return _username; }
  42. set { _username = value; }
  43. }
  44. private string _password;
  45. public string Password {
  46. get { return _password; }
  47. set { _password = value; }
  48. }
  49. private string _identityFile;
  50. public string IdentityFile {
  51. get { return _identityFile; }
  52. set { _identityFile = value; }
  53. }
  54. //host
  55. private HostKeyCheckCallback _keycheck;
  56. public HostKeyCheckCallback KeyCheck {
  57. get { return _keycheck; }
  58. set { _keycheck = value; }
  59. }
  60. //terminal
  61. private string _terminalname;
  62. public string TerminalName {
  63. get { return _terminalname; }
  64. set { _terminalname = value; }
  65. }
  66. private int _width;
  67. public int TerminalWidth {
  68. get { return _width; }
  69. set { _width = value; }
  70. }
  71. private int _height;
  72. public int TerminalHeight {
  73. get { return _height; }
  74. set { _height = value; }
  75. }
  76. private int _pixelWidth;
  77. public int TerminalPixelWidth {
  78. get { return _pixelWidth; }
  79. set { _pixelWidth = value; }
  80. }
  81. private int _pixelHeight;
  82. public int TerminalPixelHeight {
  83. get { return _pixelHeight; }
  84. set { _pixelHeight = value; }
  85. }
  86. private Random _random;
  87. public Random Random {
  88. get { return _random; }
  89. set { _random = value; }
  90. }
  91. private bool _checkMACError;
  92. public bool CheckMACError {
  93. get { return _checkMACError; }
  94. set { _checkMACError = value; }
  95. }
  96. //SSH2 only property
  97. private int _windowsize;
  98. public int WindowSize {
  99. get { return _windowsize; }
  100. set { _windowsize = value; }
  101. }
  102. //SSH2 only property
  103. private int _maxpacketsize;
  104. public int MaxPacketSize {
  105. get { return _maxpacketsize; }
  106. set { _maxpacketsize = value; }
  107. }
  108. private string _ssh1VersionEOL;
  109. public string SSH1VersionEOL {
  110. get { return _ssh1VersionEOL; }
  111. set { _ssh1VersionEOL = value; }
  112. }
  113. public SSHConnectionParameter() {
  114. _random = new Random();
  115. _authtype = AuthenticationType.Password;
  116. _terminalname = "vt100";
  117. _width = 80;
  118. _height = 25;
  119. _protocol = SSHProtocol.SSH2;
  120. _cipherAlgorithms = new CipherAlgorithm[] { CipherAlgorithm.AES128, CipherAlgorithm.Blowfish, CipherAlgorithm.TripleDES };
  121. _hostkeyAlgorithms = new PublicKeyAlgorithm[] { PublicKeyAlgorithm.DSA, PublicKeyAlgorithm.RSA }; 
  122. _windowsize = 0x1000;
  123. _maxpacketsize = 0x10000;
  124. _checkMACError = true;
  125. _ssh1VersionEOL = "n";
  126. }
  127. public object Clone() {
  128. SSHConnectionParameter n = new SSHConnectionParameter();
  129. n._authtype = _authtype;
  130. n._cipherAlgorithms = _cipherAlgorithms;
  131. n._height = _height;
  132. n._hostkeyAlgorithms = _hostkeyAlgorithms;
  133. n._identityFile = _identityFile;
  134. n._keycheck = _keycheck;
  135. n._maxpacketsize = _maxpacketsize;
  136. n._password = _password;
  137. n._protocol = _protocol;
  138. n._random = _random;
  139. n._terminalname = _terminalname;
  140. n._username = _username;
  141. n._width = _width;
  142. n._windowsize = _windowsize;
  143. n._checkMACError = _checkMACError;
  144. return n;
  145. }
  146. }
  147. }