1 //-----------------------------------------------------------------------------
2 // Copyright (c) Microsoft Corporation.  All rights reserved.
3 //-----------------------------------------------------------------------------
4 
5 namespace System.IdentityModel
6 {
7     // #define ISC_REQ_DELEGATE                0x00000001
8     // #define ISC_REQ_MUTUAL_AUTH             0x00000002
9     // #define ISC_REQ_REPLAY_DETECT           0x00000004
10     // #define ISC_REQ_SEQUENCE_DETECT         0x00000008
11     // #define ISC_REQ_CONFIDENTIALITY         0x00000010
12     // #define ISC_REQ_USE_SESSION_KEY         0x00000020
13     // #define ISC_REQ_PROMPT_FOR_CREDS        0x00000040
14     // #define ISC_REQ_USE_SUPPLIED_CREDS      0x00000080
15     // #define ISC_REQ_ALLOCATE_MEMORY         0x00000100
16     // #define ISC_REQ_USE_DCE_STYLE           0x00000200
17     // #define ISC_REQ_DATAGRAM                0x00000400
18     // #define ISC_REQ_CONNECTION              0x00000800
19     // #define ISC_REQ_CALL_LEVEL              0x00001000
20     // #define ISC_REQ_FRAGMENT_SUPPLIED       0x00002000
21     // #define ISC_REQ_EXTENDED_ERROR          0x00004000
22     // #define ISC_REQ_STREAM                  0x00008000
23     // #define ISC_REQ_INTEGRITY               0x00010000
24     // #define ISC_REQ_IDENTIFY                0x00020000
25     // #define ISC_REQ_NULL_SESSION            0x00040000
26     // #define ISC_REQ_MANUAL_CRED_VALIDATION  0x00080000
27     // #define ISC_REQ_RESERVED1               0x00100000
28     // #define ISC_REQ_FRAGMENT_TO_FIT         0x00200000
29     // #define ISC_REQ_HTTP                    0x10000000
30 
31     // #define ASC_REQ_DELEGATE                0x00000001
32     // #define ASC_REQ_MUTUAL_AUTH             0x00000002
33     // #define ASC_REQ_REPLAY_DETECT           0x00000004
34     // #define ASC_REQ_SEQUENCE_DETECT         0x00000008
35     // #define ASC_REQ_CONFIDENTIALITY         0x00000010
36     // #define ASC_REQ_USE_SESSION_KEY         0x00000020
37     // #define ASC_REQ_ALLOCATE_MEMORY         0x00000100
38     // #define ASC_REQ_USE_DCE_STYLE           0x00000200
39     // #define ASC_REQ_DATAGRAM                0x00000400
40     // #define ASC_REQ_CONNECTION              0x00000800
41     // #define ASC_REQ_CALL_LEVEL              0x00001000
42     // #define ASC_REQ_EXTENDED_ERROR          0x00008000
43     // #define ASC_REQ_STREAM                  0x00010000
44     // #define ASC_REQ_INTEGRITY               0x00020000
45     // #define ASC_REQ_LICENSING               0x00040000
46     // #define ASC_REQ_IDENTIFY                0x00080000
47     // #define ASC_REQ_ALLOW_NULL_SESSION      0x00100000
48     // #define ASC_REQ_ALLOW_NON_USER_LOGONS   0x00200000
49     // #define ASC_REQ_ALLOW_CONTEXT_REPLAY    0x00400000
50     // #define ASC_REQ_FRAGMENT_TO_FIT         0x00800000
51     // #define ASC_REQ_FRAGMENT_SUPPLIED       0x00002000
52     // #define ASC_REQ_NO_TOKEN                0x01000000
53     // #define ASC_REQ_HTTP                    0x10000000
54 
55     [Flags]
56     internal enum SspiContextFlags
57     {
58         Zero            = 0,
59         Delegate        = 0x00000001,
60         MutualAuth      = 0x00000002,
61         ReplayDetect    = 0x00000004,
62         SequenceDetect  = 0x00000008,
63         Confidentiality = 0x00000010,
64         UseSessionKey   = 0x00000020,
65         AllocateMemory  = 0x00000100,
66         InitStream      = 0x00008000,
67         AcceptStream    = 0x00010000,
68         // Client applications requiring extended error messages specify the
69         // ISC_REQ_EXTENDED_ERROR flag when calling the InitializeSecurityContext
70         // Server applications requiring extended error messages set
71         // the ASC_REQ_EXTENDED_ERROR flag when calling AcceptSecurityContext.
72         InitExtendedError    = 0x00004000,
73         AcceptExtendedError  = 0x00008000,
74         InitIdentify                = 0x00020000, // ISC_REQ_IDENTIFY
75         AcceptIdentify              = 0x00080000, // ASC_REQ_IDENTIFY
76         InitManualCredValidation    = 0x00080000, // ISC_REQ_MANUAL_CRED_VALIDATION
77         InitAnonymous               = 0x00040000, // ISC_REQ_NULL_SESSION
78         AcceptAnonymous             = 0x00100000,    // ASC_REQ_ALLOW_NULL_SESSION
79         ChannelBindingProxyBindings               = 0x04000000,   // ASC_REQ_PROXY_BINDINGS
80         ChannelBindingAllowMissingBindings        = 0x10000000    // ASC_REQ_ALLOW_MISSING_BINDINGS
81     }
82 }
83