2 Unix SMB/CIFS implementation.
4 Kerberos backend for GENSEC
6 Copyright (C) Andrew Bartlett <abartlet@samba.org> 2004-2005
7 Copyright (C) Stefan Metzmacher <metze@samba.org> 2004-2005
9 This program is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation; either version 3 of the License, or
12 (at your option) any later version.
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
20 You should have received a copy of the GNU General Public License
21 along with this program. If not, see <http://www.gnu.org/licenses/>.
24 /* This structure described here, so the RPC-PAC test can get at the PAC provided */
26 enum gensec_gssapi_sasl_state
30 STAGE_SASL_SSF_ACCEPT
,
38 struct gensec_gssapi_state
{
39 gss_ctx_id_t gssapi_context
;
40 gss_name_t server_name
;
41 gss_name_t client_name
;
42 OM_uint32 gss_want_flags
, gss_got_flags
;
44 gss_cred_id_t delegated_cred_handle
;
48 /* gensec_gssapi only */
49 gss_krb5_lucid_context_v1_t
*lucid
;
52 struct gss_channel_bindings_struct
*input_chan_bindings
;
53 struct smb_krb5_context
*smb_krb5_context
;
54 struct gssapi_creds_container
*client_cred
;
55 struct gssapi_creds_container
*server_cred
;
57 bool sasl
; /* We have two different mechs in this file: One
58 * for SASL wrapped GSSAPI and another for normal
60 enum gensec_gssapi_sasl_state sasl_state
;
61 uint8_t sasl_protection
; /* What was negotiated at the SASL
62 * layer, independent of the GSSAPI
65 size_t max_wrap_buf_size
;
66 int gss_exchange_count
;
69 const char *target_principal
;