HostAlgorithm.cs 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. namespace Renci.SshNet.Security
  2. {
  3. /// <summary>
  4. /// Base class for SSH host algorithms.
  5. /// </summary>
  6. public abstract class HostAlgorithm
  7. {
  8. /// <summary>
  9. /// Gets the host key name.
  10. /// </summary>
  11. public string Name { get; private set; }
  12. /// <summary>
  13. /// Gets the host key data.
  14. /// </summary>
  15. public abstract byte[] Data { get; }
  16. /// <summary>
  17. /// Initializes a new instance of the <see cref="HostAlgorithm"/> class.
  18. /// </summary>
  19. /// <param name="name">The host key name.</param>
  20. public HostAlgorithm(string name)
  21. {
  22. this.Name = name;
  23. }
  24. /// <summary>
  25. /// Signs the specified data.
  26. /// </summary>
  27. /// <param name="data">The data.</param>
  28. /// <returns>Signed data.</returns>
  29. public abstract byte[] Sign(byte[] data);
  30. /// <summary>
  31. /// Verifies the signature.
  32. /// </summary>
  33. /// <param name="data">The data.</param>
  34. /// <param name="signature">The signature.</param>
  35. /// <returns><c>True</c> is signature was successfully verifies; otherwise <c>false</c>.</returns>
  36. public abstract bool VerifySignature(byte[] data, byte[] signature);
  37. }
  38. }