public byte[] SignData(byte[] buffer, int offset, int count, object halg)
{
if (buffer == null)
{
throw new ArgumentNullException("buffer");
}
if (offset < 0 || offset > buffer.Length)
{
throw new ArgumentOutOfRangeException("offset");
}
if (count < 0 || count > buffer.Length - offset)
{
throw new ArgumentOutOfRangeException("count");
}
HashAlgorithmName hashAlgorithmName = LookupHashAlgorithm(halg);
byte[] hash = _defer.HashData(buffer, offset, count, hashAlgorithmName);
return(_defer.SignHash(hash, hashAlgorithmName));
}