b3d375b2 |
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 */ |