extensions/auth/nsAuthSSPI.h

branch
TOR_BUG_9701
changeset 15
b8a032363ba2
equal deleted inserted replaced
-1:000000000000 0:3bd727be2824
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/. */
5
6 #ifndef nsAuthSSPI_h__
7 #define nsAuthSSPI_h__
8
9 #include "nsAuth.h"
10 #include "nsIAuthModule.h"
11 #include "nsString.h"
12
13 #include <windows.h>
14
15 #define SECURITY_WIN32 1
16 #include <ntsecapi.h>
17 #include <security.h>
18 #include <rpc.h>
19
20 // The nsNegotiateAuth class provides responses for the GSS-API Negotiate method
21 // as specified by Microsoft in draft-brezak-spnego-http-04.txt
22
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.
28
29 class nsAuthSSPI MOZ_FINAL : public nsIAuthModule
30 {
31 public:
32 NS_DECL_ISUPPORTS
33 NS_DECL_NSIAUTHMODULE
34
35 nsAuthSSPI(pType package = PACKAGE_TYPE_NEGOTIATE);
36
37 private:
38 ~nsAuthSSPI();
39
40 void Reset();
41
42 typedef TimeStamp MS_TimeStamp;
43
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 };
58
59 #endif /* nsAuthSSPI_h__ */

mercurial