From 6c8d802391e0aaf375108bcd1270565983d735a8 Mon Sep 17 00:00:00 2001 From: Günther Deschner Date: Wed, 2 Mar 2011 14:00:23 +0100 Subject: s3-libsmb: move smb encryption structs into own header. Guenther --- source3/include/client.h | 27 -------------------- source3/include/proto.h | 2 +- source3/include/smb_crypt.h | 62 +++++++++++++++++++++++++++++++++++++++++++++ source3/libsmb/async_smb.c | 1 + source3/libsmb/clifsinfo.c | 1 + source3/libsmb/smb_seal.c | 1 + source3/smbd/seal.c | 1 + 7 files changed, 67 insertions(+), 28 deletions(-) create mode 100644 source3/include/smb_crypt.h diff --git a/source3/include/client.h b/source3/include/client.h index 03d4c85583..9f8f46c4ab 100644 --- a/source3/include/client.h +++ b/source3/include/client.h @@ -127,33 +127,6 @@ struct rpc_pipe_client { struct netlogon_creds_CredentialState *dc; }; -/* Transport encryption state. */ -enum smb_trans_enc_type { - SMB_TRANS_ENC_NTLM -#if defined(HAVE_GSSAPI) && defined(HAVE_KRB5) - , SMB_TRANS_ENC_GSS -#endif -}; - -#if defined(HAVE_GSSAPI) && defined(HAVE_KRB5) -struct smb_tran_enc_state_gss { - gss_ctx_id_t gss_ctx; - gss_cred_id_t creds; -}; -#endif - -struct smb_trans_enc_state { - enum smb_trans_enc_type smb_enc_type; - uint16 enc_ctx_num; - bool enc_on; - union { - struct ntlmssp_state *ntlmssp_state; -#if defined(HAVE_GSSAPI) && defined(HAVE_KRB5) - struct smb_tran_enc_state_gss *gss_state; -#endif - } s; -}; - struct cli_state_seqnum { struct cli_state_seqnum *prev, *next; uint16_t mid; diff --git a/source3/include/proto.h b/source3/include/proto.h index 233866e2af..caa2d29046 100644 --- a/source3/include/proto.h +++ b/source3/include/proto.h @@ -2551,7 +2551,7 @@ NTSTATUS nt_status_string_to_code(const char *nt_status_str); NTSTATUS nt_status_squash(NTSTATUS nt_status); /* The following definitions come from libsmb/ntlmssp.c */ - +struct ntlmssp_state; NTSTATUS ntlmssp_set_username(struct ntlmssp_state *ntlmssp_state, const char *user) ; NTSTATUS ntlmssp_set_hashes(struct ntlmssp_state *ntlmssp_state, const uint8_t lm_hash[16], diff --git a/source3/include/smb_crypt.h b/source3/include/smb_crypt.h new file mode 100644 index 0000000000..a5930d186d --- /dev/null +++ b/source3/include/smb_crypt.h @@ -0,0 +1,62 @@ +/* + Unix SMB/CIFS implementation. + SMB Transport encryption code. + Copyright (C) Jeremy Allison 2007. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +#ifndef _HEADER_SMB_CRYPT_H +#define _HEADER_SMB_CRYPT_H + +#if HAVE_GSSAPI_GSSAPI_H +#include +#elif HAVE_GSSAPI_GSSAPI_GENERIC_H +#include +#elif HAVE_GSSAPI_H +#include +#endif + +#if HAVE_COM_ERR_H +#include +#endif + +/* Transport encryption state. */ +enum smb_trans_enc_type { + SMB_TRANS_ENC_NTLM +#if defined(HAVE_GSSAPI) && defined(HAVE_KRB5) + , SMB_TRANS_ENC_GSS +#endif +}; + +#if defined(HAVE_GSSAPI) && defined(HAVE_KRB5) +struct smb_tran_enc_state_gss { + gss_ctx_id_t gss_ctx; + gss_cred_id_t creds; +}; +#endif + +struct smb_trans_enc_state { + enum smb_trans_enc_type smb_enc_type; + uint16 enc_ctx_num; + bool enc_on; + union { + struct ntlmssp_state *ntlmssp_state; +#if defined(HAVE_GSSAPI) && defined(HAVE_KRB5) + struct smb_tran_enc_state_gss *gss_state; +#endif + } s; +}; + +#endif /* _HEADER_SMB_CRYPT_H */ diff --git a/source3/libsmb/async_smb.c b/source3/libsmb/async_smb.c index 24df6a600a..9708e3ccd3 100644 --- a/source3/libsmb/async_smb.c +++ b/source3/libsmb/async_smb.c @@ -20,6 +20,7 @@ #include "includes.h" #include "../lib/async_req/async_sock.h" #include "async_smb.h" +#include "smb_crypt.h" /* * Read an smb packet asynchronously, discard keepalives diff --git a/source3/libsmb/clifsinfo.c b/source3/libsmb/clifsinfo.c index a5f58bba8a..7845a9de07 100644 --- a/source3/libsmb/clifsinfo.c +++ b/source3/libsmb/clifsinfo.c @@ -22,6 +22,7 @@ #include "../libcli/auth/spnego.h" #include "../libcli/auth/ntlmssp.h" #include "async_smb.h" +#include "smb_crypt.h" /**************************************************************************** Get UNIX extensions version info. diff --git a/source3/libsmb/smb_seal.c b/source3/libsmb/smb_seal.c index 4610850638..0eed15d4a3 100644 --- a/source3/libsmb/smb_seal.c +++ b/source3/libsmb/smb_seal.c @@ -19,6 +19,7 @@ #include "includes.h" #include "../libcli/auth/ntlmssp.h" +#include "smb_crypt.h" /****************************************************************************** Pull out the encryption context for this packet. 0 means global context. diff --git a/source3/smbd/seal.c b/source3/smbd/seal.c index 1d8d4641e7..7fe44a0853 100644 --- a/source3/smbd/seal.c +++ b/source3/smbd/seal.c @@ -22,6 +22,7 @@ #include "../libcli/auth/spnego.h" #include "../libcli/auth/ntlmssp.h" #include "ntlmssp_wrap.h" +#include "smb_crypt.h" /****************************************************************************** Server side encryption. -- cgit