|
| 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 */ |
0 commit comments