2 * Copyright (C) 1998-2000 Luke Howard. All rights reserved.
6 * Structures for handling GSS-API binds within LDAP client
7 * and server libraries. This isn't entirely SASL specific,
8 * apart from the negotiation state.
11 #ifndef _GSSLDAP_INT_H_
12 #define _GSSLDAP_INT_H_
14 #define GSSAPI_LDAP_PRINCIPAL_ATTRIBUTE "krbName"
15 #define GSSAPI_LDAP_SERVICE_NAME "ldap"
16 #define GSSAPI_LDAP_DN_PREFIX "dn:"
17 #define GSSAPI_LDAP_DN_PREFIX_LEN (sizeof(GSSAPI_LDAP_DN_PREFIX) - 1)
23 * GSS-API SASL negotiation state for the client library
25 typedef struct gssldap_client_state_desc {
29 /* dn passed to ldap_gssapi_bind() */
32 /* msgid for bind conversation */
38 /* result code to return from ldap_gssapi_bind() */
40 } gssldap_client_state_desc, *gssldap_client_state_t;
43 * Plugin (server side) state
45 typedef struct gssldap_server_state_desc {
46 /* The LDAP connection */
49 /* Where in the negotiation we are */
50 gsssasl_server_negotiation_desc state;
52 /* The GSS-API context */
56 gss_buffer_desc client_name;
58 /* SASL authorization identity (with dn: prefix chopped) */
61 /* The next entry in the list */
62 struct gssldap_server_state_desc *next;
63 } gssldap_server_state_desc, *gssldap_server_state_t;
65 #endif /* _GSSLDAP_INT_H_ */