extensions/auth/nsAuthSSPI.h

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

     1 /* vim:set ts=4 sw=4 et cindent: */
     2 /* This Source Code Form is subject to the terms of the Mozilla Public
     3  * License, v. 2.0. If a copy of the MPL was not distributed with this
     4  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
     6 #ifndef nsAuthSSPI_h__
     7 #define nsAuthSSPI_h__
     9 #include "nsAuth.h"
    10 #include "nsIAuthModule.h"
    11 #include "nsString.h"
    13 #include <windows.h>
    15 #define SECURITY_WIN32 1
    16 #include <ntsecapi.h>
    17 #include <security.h>
    18 #include <rpc.h>
    20 // The nsNegotiateAuth class provides responses for the GSS-API Negotiate method
    21 // as specified by Microsoft in draft-brezak-spnego-http-04.txt
    23 // It can also be configured to talk raw NTLM.  This implementation of NTLM has
    24 // the advantage of being able to access the user's logon credentials.  This
    25 // implementation of NTLM should only be used for single-signon.  It should be
    26 // avoided when authenticating over the internet since it may use a lower-grade
    27 // version of password hashing depending on the version of Windows being used.
    29 class nsAuthSSPI MOZ_FINAL : public nsIAuthModule
    30 {
    31 public:
    32     NS_DECL_ISUPPORTS
    33     NS_DECL_NSIAUTHMODULE
    35     nsAuthSSPI(pType package = PACKAGE_TYPE_NEGOTIATE);
    37 private:
    38     ~nsAuthSSPI();
    40     void Reset();
    42     typedef TimeStamp MS_TimeStamp;
    44 private:
    45     CredHandle   mCred;
    46     CtxtHandle   mCtxt;
    47     nsCString    mServiceName;
    48     uint32_t     mServiceFlags;
    49     uint32_t     mMaxTokenLen;
    50     pType        mPackage;
    51     nsString     mDomain;
    52     nsString     mUsername;
    53     nsString     mPassword;
    54     bool         mIsFirst;	
    55     void*        mCertDERData; 
    56     uint32_t     mCertDERLength;
    57 };
    59 #endif /* nsAuthSSPI_h__ */

mercurial