public BufferWrapper(byte[] buffer, Common.SecurityBufferType bufferType)
        {
            if (buffer == null || buffer.Length == 0)
            {
                throw new ArgumentException("buffer cannot be null or 0 length");
            }

            Buffer = buffer;
            BufferType = bufferType;
        }
 public static extern int AcceptSecurityContext(ref Common.SecurityHandle phCredential,
     ref Common.SecurityHandle phContext,
     ref Common.SecurityBufferDesciption pInput,
     uint fContextReq,
     uint TargetDataRep,
     out Common.SecurityHandle phNewContext,
     out Common.SecurityBufferDesciption pOutput,
     out uint pfContextAttr,                         //managed ulong == 64 bits!!!
     out Common.SecurityInteger ptsTimeStamp);
 private static extern int AcquireCredentialsHandle(
     string pszPrincipal,                            //SEC_CHAR*
     string pszPackage,                              //SEC_CHAR* //"Kerberos","NTLM","Negotiative"
     int fCredentialUse,
     IntPtr PAuthenticationID,                       //_LUID AuthenticationID,//pvLogonID, //PLUID
     IntPtr pAuthData,                               //PVOID
     int pGetKeyFn,                                  //SEC_GET_KEY_FN
     IntPtr pvGetKeyArgument,                        //PVOID
     ref Common.SecurityHandle phCredential,                        //SecHandle //PCtxtHandle ref
     ref Common.SecurityInteger ptsExpiry);                         //PTimeStamp //TimeStamp ref