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)
{
return MD5.HashData(source);
}
public static byte[] HashSHA1(byte[] source)
{
return SHA1.HashData(source);
}
public static byte[] HashSHA256(byte[] source)
{
return SHA256.HashData(source);
}
public static byte[] HashSHA384(byte[] source)
{
return SHA384.HashData(source);
}
public static byte[] HashSHA512(byte[] source)
{
return SHA512.HashData(source);
}
}
}