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