Sebastian Kuschel reports that pfd_closing can be called for a socket
[u/mdw/putty] / pgssapi.c
1 /* This file actually defines the GSSAPI function pointers for
2 * functions we plan to import from a GSSAPI library.
3 */
4 #include "putty.h"
5
6 #ifndef NO_GSSAPI
7
8 #include "pgssapi.h"
9
10 #ifndef NO_LIBDL
11
12 /* Reserved static storage for GSS_oids. Comments are quotes from RFC 2744. */
13 static const gss_OID_desc oids[] = {
14 /* The implementation must reserve static storage for a
15 * gss_OID_desc object containing the value */
16 {10, (void *)"\x2a\x86\x48\x86\xf7\x12\x01\x02\x01\x01"},
17 /* corresponding to an object-identifier value of
18 * {iso(1) member-body(2) United States(840) mit(113554)
19 * infosys(1) gssapi(2) generic(1) user_name(1)}. The constant
20 * GSS_C_NT_USER_NAME should be initialized to point
21 * to that gss_OID_desc.
22
23 * The implementation must reserve static storage for a
24 * gss_OID_desc object containing the value */
25 {10, (void *)"\x2a\x86\x48\x86\xf7\x12\x01\x02\x01\x02"},
26 /* corresponding to an object-identifier value of
27 * {iso(1) member-body(2) United States(840) mit(113554)
28 * infosys(1) gssapi(2) generic(1) machine_uid_name(2)}.
29 * The constant GSS_C_NT_MACHINE_UID_NAME should be
30 * initialized to point to that gss_OID_desc.
31
32 * The implementation must reserve static storage for a
33 * gss_OID_desc object containing the value */
34 {10, (void *)"\x2a\x86\x48\x86\xf7\x12\x01\x02\x01\x03"},
35 /* corresponding to an object-identifier value of
36 * {iso(1) member-body(2) United States(840) mit(113554)
37 * infosys(1) gssapi(2) generic(1) string_uid_name(3)}.
38 * The constant GSS_C_NT_STRING_UID_NAME should be
39 * initialized to point to that gss_OID_desc.
40 *
41 * The implementation must reserve static storage for a
42 * gss_OID_desc object containing the value */
43 {6, (void *)"\x2b\x06\x01\x05\x06\x02"},
44 /* corresponding to an object-identifier value of
45 * {iso(1) org(3) dod(6) internet(1) security(5)
46 * nametypes(6) gss-host-based-services(2)). The constant
47 * GSS_C_NT_HOSTBASED_SERVICE_X should be initialized to point
48 * to that gss_OID_desc. This is a deprecated OID value, and
49 * implementations wishing to support hostbased-service names
50 * should instead use the GSS_C_NT_HOSTBASED_SERVICE OID,
51 * defined below, to identify such names;
52 * GSS_C_NT_HOSTBASED_SERVICE_X should be accepted a synonym
53 * for GSS_C_NT_HOSTBASED_SERVICE when presented as an input
54 * parameter, but should not be emitted by GSS-API
55 * implementations
56 *
57 * The implementation must reserve static storage for a
58 * gss_OID_desc object containing the value */
59 {10, (void *)"\x2a\x86\x48\x86\xf7\x12\x01\x02\x01\x04"},
60 /* corresponding to an object-identifier value of {iso(1)
61 * member-body(2) Unites States(840) mit(113554) infosys(1)
62 * gssapi(2) generic(1) service_name(4)}. The constant
63 * GSS_C_NT_HOSTBASED_SERVICE should be initialized
64 * to point to that gss_OID_desc.
65 *
66 * The implementation must reserve static storage for a
67 * gss_OID_desc object containing the value */
68 {6, (void *)"\x2b\x06\01\x05\x06\x03"},
69 /* corresponding to an object identifier value of
70 * {1(iso), 3(org), 6(dod), 1(internet), 5(security),
71 * 6(nametypes), 3(gss-anonymous-name)}. The constant
72 * and GSS_C_NT_ANONYMOUS should be initialized to point
73 * to that gss_OID_desc.
74 *
75 * The implementation must reserve static storage for a
76 * gss_OID_desc object containing the value */
77 {6, (void *)"\x2b\x06\x01\x05\x06\x04"},
78 /* corresponding to an object-identifier value of
79 * {1(iso), 3(org), 6(dod), 1(internet), 5(security),
80 * 6(nametypes), 4(gss-api-exported-name)}. The constant
81 * GSS_C_NT_EXPORT_NAME should be initialized to point
82 * to that gss_OID_desc.
83 */
84 };
85
86 /* Here are the constants which point to the static structure above.
87 *
88 * Constants of the form GSS_C_NT_* are specified by rfc 2744.
89 */
90 const_gss_OID GSS_C_NT_USER_NAME = oids+0;
91 const_gss_OID GSS_C_NT_MACHINE_UID_NAME = oids+1;
92 const_gss_OID GSS_C_NT_STRING_UID_NAME = oids+2;
93 const_gss_OID GSS_C_NT_HOSTBASED_SERVICE_X = oids+3;
94 const_gss_OID GSS_C_NT_HOSTBASED_SERVICE = oids+4;
95 const_gss_OID GSS_C_NT_ANONYMOUS = oids+5;
96 const_gss_OID GSS_C_NT_EXPORT_NAME = oids+6;
97
98 #endif /* NO_LIBDL */
99
100 static gss_OID_desc gss_mech_krb5_desc =
101 { 9, (void *)"\x2a\x86\x48\x86\xf7\x12\x01\x02\x02" };
102 /* iso(1) member-body(2) United States(840) mit(113554) infosys(1) gssapi(2) krb5(2)*/
103 const gss_OID GSS_MECH_KRB5 = &gss_mech_krb5_desc;
104
105 #endif /* NO_GSSAPI */