<PackageReference Include="SSH.NET" Version="2016.0.0" />

Cipher

public abstract class Cipher
Base class for cipher implementation.
namespace Renci.SshNet.Security.Cryptography { public abstract class Cipher { public abstract byte MinimumSize { get; } public byte[] Encrypt(byte[] input) { return Encrypt(input, 0, input.Length); } public abstract byte[] Encrypt(byte[] input, int offset, int length); public abstract byte[] Decrypt(byte[] input); protected static void UInt32ToBigEndian(uint number, byte[] buffer) { buffer[0] = (byte)(number >> 24); buffer[1] = (byte)(number >> 16); buffer[2] = (byte)(number >> 8); buffer[3] = (byte)number; } protected static void UInt32ToBigEndian(uint number, byte[] buffer, int offset) { buffer[offset] = (byte)(number >> 24); buffer[offset + 1] = (byte)(number >> 16); buffer[offset + 2] = (byte)(number >> 8); buffer[offset + 3] = (byte)number; } protected static uint BigEndianToUInt32(byte[] buffer) { return (uint)((buffer[0] << 24) | (buffer[1] << 16) | (buffer[2] << 8) | buffer[3]); } protected static uint BigEndianToUInt32(byte[] buffer, int offset) { return (uint)((buffer[offset] << 24) | (buffer[offset + 1] << 16) | (buffer[offset + 2] << 8) | buffer[offset + 3]); } protected static ulong BigEndianToUInt64(byte[] buffer) { uint num = BigEndianToUInt32(buffer); uint num2 = BigEndianToUInt32(buffer, 4); return ((ulong)num << 32) | num2; } protected static ulong BigEndianToUInt64(byte[] buffer, int offset) { uint num = BigEndianToUInt32(buffer, offset); uint num2 = BigEndianToUInt32(buffer, offset + 4); return ((ulong)num << 32) | num2; } protected static void UInt64ToBigEndian(ulong number, byte[] buffer) { UInt32ToBigEndian((uint)(number >> 32), buffer); UInt32ToBigEndian((uint)number, buffer, 4); } protected static void UInt64ToBigEndian(ulong number, byte[] buffer, int offset) { UInt32ToBigEndian((uint)(number >> 32), buffer, offset); UInt32ToBigEndian((uint)number, buffer, offset + 4); } protected static void UInt32ToLittleEndian(uint number, byte[] buffer) { buffer[0] = (byte)number; buffer[1] = (byte)(number >> 8); buffer[2] = (byte)(number >> 16); buffer[3] = (byte)(number >> 24); } protected static void UInt32ToLittleEndian(uint number, byte[] buffer, int offset) { buffer[offset] = (byte)number; buffer[offset + 1] = (byte)(number >> 8); buffer[offset + 2] = (byte)(number >> 16); buffer[offset + 3] = (byte)(number >> 24); } protected static uint LittleEndianToUInt32(byte[] buffer) { return (uint)(buffer[0] | (buffer[1] << 8) | (buffer[2] << 16) | (buffer[3] << 24)); } protected static uint LittleEndianToUInt32(byte[] buffer, int offset) { return (uint)(buffer[offset] | (buffer[offset + 1] << 8) | (buffer[offset + 2] << 16) | (buffer[offset + 3] << 24)); } protected static ulong LittleEndianToUInt64(byte[] buffer) { uint num = LittleEndianToUInt32(buffer); return ((ulong)LittleEndianToUInt32(buffer, 4) << 32) | num; } protected static ulong LittleEndianToUInt64(byte[] buffer, int offset) { uint num = LittleEndianToUInt32(buffer, offset); return ((ulong)LittleEndianToUInt32(buffer, offset + 4) << 32) | num; } protected static void UInt64ToLittleEndian(ulong number, byte[] buffer) { UInt32ToLittleEndian((uint)number, buffer); UInt32ToLittleEndian((uint)(number >> 32), buffer, 4); } protected static void UInt64ToLittleEndian(ulong number, byte[] buffer, int offset) { UInt32ToLittleEndian((uint)number, buffer, offset); UInt32ToLittleEndian((uint)(number >> 32), buffer, offset + 4); } } }