A small collection of useful helper methods that I use in several projects.
Pull requests and/or optimization proposals are always welcome!
static T[] ConcatArrays<T>(params T[][] arrays)
static T[] ConcatArrays<T>(T[] arr1, T[] arr2)
static T[] SubArray<T>(T[] arr, int start, int length)
static T[] SubArray<T>(T[] arr, int start)
static bool ConstantTimeEquals(byte[] a, byte[] b)
static byte[] IntegerToLittleEndian(int data)
static byte[] Xor(byte[] data, IReadOnlyList<byte> keys)
static byte[] ReadFully(Stream input)
static string Escape(string argument, bool quote = false)
static string ExecuteShellCommand(string filename, string arguments, int timeout = 9000)
static byte[] AddPkcs7(byte[] data, int paddingLength)
static byte[] RemovePkcs7(byte[] paddedByteArray)
static byte[] AddZero(byte[] data, int paddingLength)
static byte[] RemoveZero(byte[] paddedByteArray)
static int Next()
static int Next(int maxValue)
static int Next(int minValue, int maxValue)
static void GetBytes(byte[] data)
static void GetNonZeroBytes(byte[] data)
static int Next()
static int Next(int maxValue)
static int Next(int minValue, int maxValue)
static void GetBytes(byte[] data)
static int Next()
static int Next(int maxValue)
static int Next(int minValue, int maxValue)