private static byte[] WrapMessage(SafeGssContextHandle context, byte[] message)
{
Interop.NetSecurityNative.GssBuffer wrapped = default(Interop.NetSecurityNative.GssBuffer);
Interop.NetSecurityNative.Status status;
try
{
Interop.NetSecurityNative.Status minorStatus;
status = Interop.NetSecurityNative.WrapBuffer(out minorStatus,
context, false, message, 0, message.Length, ref wrapped);
if (status != Interop.NetSecurityNative.Status.GSS_S_COMPLETE)
{
throw new Interop.NetSecurityNative.GssApiException(status, minorStatus);
}
return wrapped.ToByteArray();
}
finally
{
wrapped.Dispose();
}
}
}