Bumping manifests a=b2g-bump
[gecko.git] / extensions / auth / nsAuthSSPI.h
blob1357d121a0c43e01758a81dbcf759f132fddea6f
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
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;
59 #endif /* nsAuthSSPI_h__ */