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);
}
}
}