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

CryptoAbstraction

static class CryptoAbstraction
using Org.BouncyCastle.Crypto.Prng; using Org.BouncyCastle.Security; using System.Security.Cryptography; namespace Renci.SshNet.Abstractions { internal static class CryptoAbstraction { private static readonly RandomNumberGenerator Randomizer = RandomNumberGenerator.Create(); internal static readonly SecureRandom SecureRandom = new SecureRandom(new CryptoApiRandomGenerator(Randomizer)); public static byte[] GenerateRandom(int length) { byte[] array = new byte[length]; Randomizer.GetBytes(array); return array; } public static byte[] HashMD5(byte[] source) { using (MD5 mD = MD5.Create()) return mD.ComputeHash(source); } public static byte[] HashSHA1(byte[] source) { using (SHA1 sHA = SHA1.Create()) return sHA.ComputeHash(source); } public static byte[] HashSHA256(byte[] source) { using (SHA256 sHA = SHA256.Create()) return sHA.ComputeHash(source); } public static byte[] HashSHA384(byte[] source) { using (SHA384 sHA = SHA384.Create()) return sHA.ComputeHash(source); } public static byte[] HashSHA512(byte[] source) { using (SHA512 sHA = SHA512.Create()) return sHA.ComputeHash(source); } } }