internal int MakeSignature(byte[] buffer, int offset, int count, ref byte[] output)
{
SecSizes sizes = this.Sizes;
int num = count + sizes.MaxSignature;
if ((output == null) || (output.Length < num))
{
output = new byte[num];
}
Buffer.BlockCopy(buffer, offset, output, sizes.MaxSignature, count);
SecurityBuffer[] input = new SecurityBuffer[] { new SecurityBuffer(output, 0, sizes.MaxSignature, BufferType.Token), new SecurityBuffer(output, sizes.MaxSignature, count, BufferType.Data) };
int error = SSPIWrapper.MakeSignature(GlobalSSPI.SSPIAuth, this.m_SecurityContext, input, 0);
if (error != 0)
{
throw new Win32Exception(error);
}
return(input[0].size + input[1].size);
}