private byte[] GetPaddedValue (BigInteger value, int length)
{
byte[] result = value.GetBytes ();
if (result.Length >= length)
return result;
// left-pad 0x00 value on the result (same integer, correct length)
byte[] padded = new byte[length];
Buffer.BlockCopy (result, 0, padded, (length - result.Length), result.Length);
// temporary result may contain decrypted (plaintext) data, clear it
Array.Clear (result, 0, result.Length);
return padded;
}
}