diff options
author | Stefan Metzmacher <metze@samba.org> | 2011-10-19 13:47:39 +0200 |
---|---|---|
committer | Stefan Metzmacher <metze@samba.org> | 2011-10-21 10:22:39 +0200 |
commit | 75d146d3ed4196b0856ea6eb56482a1a67fdf707 (patch) | |
tree | 6b4f87364d14870be8b8a06be4e05c21d2c646e3 /libcli/smb/smb_seal.h | |
parent | 321204eaeb05107b9a6d5ed464a11cd5018c97c6 (diff) | |
download | samba-75d146d3ed4196b0856ea6eb56482a1a67fdf707.tar.gz samba-75d146d3ed4196b0856ea6eb56482a1a67fdf707.tar.bz2 samba-75d146d3ed4196b0856ea6eb56482a1a67fdf707.zip |
libcli/smb: move smb_seal.c to the toplevel
metze
Autobuild-User: Stefan Metzmacher <metze@samba.org>
Autobuild-Date: Fri Oct 21 10:22:39 CEST 2011 on sn-devel-104
Diffstat (limited to 'libcli/smb/smb_seal.h')
-rw-r--r-- | libcli/smb/smb_seal.h | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/libcli/smb/smb_seal.h b/libcli/smb/smb_seal.h new file mode 100644 index 0000000000..fcee2057d8 --- /dev/null +++ b/libcli/smb/smb_seal.h @@ -0,0 +1,71 @@ +/* + 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 <http://www.gnu.org/licenses/>. +*/ + +#ifndef _HEADER_SMB_CRYPT_H +#define _HEADER_SMB_CRYPT_H + +#if HAVE_GSSAPI_GSSAPI_H +#include <gssapi/gssapi.h> +#elif HAVE_GSSAPI_GSSAPI_GENERIC_H +#include <gssapi/gssapi_generic.h> +#elif HAVE_GSSAPI_H +#include <gssapi.h> +#endif + +#if HAVE_COM_ERR_H +#include <com_err.h> +#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_t enc_ctx_num; + bool enc_on; + union { + struct gensec_security *gensec_security; +#if defined(HAVE_GSSAPI) && defined(HAVE_KRB5) + struct smb_tran_enc_state_gss *gss_state; +#endif + } s; +}; + +/* The following definitions come from smb_seal.c */ + +NTSTATUS get_enc_ctx_num(const uint8_t *buf, uint16_t *p_enc_ctx_num); +bool common_encryption_on(struct smb_trans_enc_state *es); +NTSTATUS common_encrypt_buffer(struct smb_trans_enc_state *es, char *buffer, char **buf_out); +NTSTATUS common_decrypt_buffer(struct smb_trans_enc_state *es, char *buf); +void common_free_encryption_state(struct smb_trans_enc_state **pp_es); +void common_free_enc_buffer(struct smb_trans_enc_state *es, char *buf); + +#endif /* _HEADER_SMB_CRYPT_H */ |