From 2c6ecae4e62a5bb7acac2872450148fb4521cf3e Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Fri, 14 Oct 2005 04:04:52 +0000 Subject: r10982: Move credentials.h into auth/credentials, and add flags needed by previous patch. Andrew Bartlett (This used to be commit 2c537d47ba99885c6462016342b1cc29df4c54c5) --- source4/auth/credentials/credentials.h | 81 ++++++++++++++++++++++++++++++++++ source4/include/credentials.h | 76 ------------------------------- source4/include/includes.h | 2 +- 3 files changed, 82 insertions(+), 77 deletions(-) create mode 100644 source4/auth/credentials/credentials.h delete mode 100644 source4/include/credentials.h diff --git a/source4/auth/credentials/credentials.h b/source4/auth/credentials/credentials.h new file mode 100644 index 0000000000..324b518462 --- /dev/null +++ b/source4/auth/credentials/credentials.h @@ -0,0 +1,81 @@ +/* + samba -- Unix SMB/CIFS implementation. + + Client credentials structure + + Copyright (C) Jelmer Vernooij 2004-2005 + Copyright (C) Andrew Bartlett 2005 + + 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 2 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, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ + +struct ccache_container; + +/* In order of priority */ +enum credentials_obtained { + CRED_UNINITIALISED = 0, /* We don't even have a guess yet */ + CRED_GUESS_ENV, /* Current value should be used, which was guessed */ + CRED_CALLBACK, /* Callback should be used to obtain value */ + CRED_GUESS_FILE, /* A guess from a file (or file pointed at in env variable) */ + CRED_SPECIFIED /* Was explicitly specified on the command-line */ +}; + +#define CLI_CRED_NTLM2 0x01 +#define CLI_CRED_NTLMv2_AUTH 0x02 +#define CLI_CRED_LANMAN_AUTH 0x04 +#define CLI_CRED_NTLM_AUTH 0x08 + +struct cli_credentials { + /* Preferred methods, NULL means default */ + const char **preferred_methods; + + enum credentials_obtained workstation_obtained; + enum credentials_obtained username_obtained; + enum credentials_obtained password_obtained; + enum credentials_obtained domain_obtained; + enum credentials_obtained realm_obtained; + enum credentials_obtained ccache_obtained; + enum credentials_obtained principal_obtained; + + const char *workstation; + const char *username; + const char *password; + const char *domain; + const char *realm; + const char *principal; + + struct samr_Password *nt_hash; + + struct ccache_container *ccache; + + const char *(*workstation_cb) (struct cli_credentials *); + const char *(*password_cb) (struct cli_credentials *); + const char *(*username_cb) (struct cli_credentials *); + const char *(*domain_cb) (struct cli_credentials *); + const char *(*realm_cb) (struct cli_credentials *); + const char *(*principal_cb) (struct cli_credentials *); + + /* Private handle for the callback routines to use */ + void *priv_data; + + struct creds_CredentialState *netlogon_creds; + enum netr_SchannelType secure_channel_type; + int kvno; + + /* We are flagged to get machine account details from the + * secrets.ldb when we are asked for a username or password */ + + BOOL machine_account_pending; +}; diff --git a/source4/include/credentials.h b/source4/include/credentials.h deleted file mode 100644 index 4b9c1363f9..0000000000 --- a/source4/include/credentials.h +++ /dev/null @@ -1,76 +0,0 @@ -/* - samba -- Unix SMB/CIFS implementation. - - Client credentials structure - - Copyright (C) Jelmer Vernooij 2004-2005 - Copyright (C) Andrew Bartlett 2005 - - 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 2 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, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - -struct ccache_container; - -/* In order of priority */ -enum credentials_obtained { - CRED_UNINITIALISED = 0, /* We don't even have a guess yet */ - CRED_GUESS_ENV, /* Current value should be used, which was guessed */ - CRED_CALLBACK, /* Callback should be used to obtain value */ - CRED_GUESS_FILE, /* A guess from a file (or file pointed at in env variable) */ - CRED_SPECIFIED /* Was explicitly specified on the command-line */ -}; - -struct cli_credentials { - /* Preferred methods, NULL means default */ - const char **preferred_methods; - - enum credentials_obtained workstation_obtained; - enum credentials_obtained username_obtained; - enum credentials_obtained password_obtained; - enum credentials_obtained domain_obtained; - enum credentials_obtained realm_obtained; - enum credentials_obtained ccache_obtained; - enum credentials_obtained principal_obtained; - - const char *workstation; - const char *username; - const char *password; - const char *domain; - const char *realm; - const char *principal; - - struct samr_Password *nt_hash; - - struct ccache_container *ccache; - - const char *(*workstation_cb) (struct cli_credentials *); - const char *(*password_cb) (struct cli_credentials *); - const char *(*username_cb) (struct cli_credentials *); - const char *(*domain_cb) (struct cli_credentials *); - const char *(*realm_cb) (struct cli_credentials *); - const char *(*principal_cb) (struct cli_credentials *); - - /* Private handle for the callback routines to use */ - void *priv_data; - - struct creds_CredentialState *netlogon_creds; - enum netr_SchannelType secure_channel_type; - int kvno; - - /* We are flagged to get machine account details from the - * secrets.ldb when we are asked for a username or password */ - - BOOL machine_account_pending; -}; diff --git a/source4/include/includes.h b/source4/include/includes.h index b7acae9019..f2da31eed6 100644 --- a/source4/include/includes.h +++ b/source4/include/includes.h @@ -113,7 +113,7 @@ struct ipv4_addr { #include "ntvfs/ntvfs.h" #include "cli_context.h" #include "lib/com/com.h" -#include "credentials.h" +#include "auth/credentials/credentials.h" /***** automatically generated prototypes *****/ #define _PRINTF_ATTRIBUTE(a1, a2) PRINTF_ATTRIBUTE(a1, a2) -- cgit