s3:cli_netlogon: add rpccli_{create,setup}_netlogon_creds_with_creds() helper functions
[obnox/samba/samba-obnox.git] / source3 / rpc_client / cli_netlogon.h
1 /*
2    Unix SMB/CIFS implementation.
3    NT Domain Authentication SMB / MSRPC client
4    Copyright (C) Andrew Tridgell 1992-2000
5    Copyright (C) Jeremy Allison                    1998.
6    Largely re-written by Jeremy Allison (C)        2005.
7    Copyright (C) Guenther Deschner                 2008.
8
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.
13
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.
18
19    You should have received a copy of the GNU General Public License
20    along with this program.  If not, see <http://www.gnu.org/licenses/>.
21 */
22
23 #ifndef _RPC_CLIENT_CLI_NETLOGON_H_
24 #define _RPC_CLIENT_CLI_NETLOGON_H_
25
26 struct cli_state;
27 struct messaging_context;
28 struct cli_credentials;
29 struct netlogon_creds_cli_context;
30 struct dcerpc_binding_handle;
31 #include "librpc/rpc/rpc_common.h"
32
33 /* The following definitions come from rpc_client/cli_netlogon.c  */
34
35 NTSTATUS rpccli_pre_open_netlogon_creds(void);
36 NTSTATUS rpccli_create_netlogon_creds(const char *server_computer,
37                                       const char *server_netbios_domain,
38                                       const char *client_account,
39                                       enum netr_SchannelType sec_chan_type,
40                                       struct messaging_context *msg_ctx,
41                                       TALLOC_CTX *mem_ctx,
42                                       struct netlogon_creds_cli_context **netlogon_creds);
43 NTSTATUS rpccli_create_netlogon_creds_with_creds(struct cli_credentials *creds,
44                                                  const char *server_computer,
45                                                  struct messaging_context *msg_ctx,
46                                                  TALLOC_CTX *mem_ctx,
47                                                  struct netlogon_creds_cli_context **netlogon_creds);
48 NTSTATUS rpccli_setup_netlogon_creds(struct cli_state *cli,
49                                      enum dcerpc_transport_t transport,
50                                      struct netlogon_creds_cli_context *netlogon_creds,
51                                      bool force_reauth,
52                                      struct samr_Password current_nt_hash,
53                                      const struct samr_Password *previous_nt_hash);
54 NTSTATUS rpccli_setup_netlogon_creds_with_creds(struct cli_state *cli,
55                                                 enum dcerpc_transport_t transport,
56                                                 struct netlogon_creds_cli_context *netlogon_creds,
57                                                 bool force_reauth,
58                                                 struct cli_credentials *creds);
59 NTSTATUS rpccli_netlogon_password_logon(struct netlogon_creds_cli_context *creds,
60                                         struct dcerpc_binding_handle *binding_handle,
61                                         TALLOC_CTX *mem_ctx,
62                                         uint32_t logon_parameters,
63                                         const char *domain,
64                                         const char *username,
65                                         const char *password,
66                                         const char *workstation,
67                                         enum netr_LogonInfoClass logon_type,
68                                         struct netr_SamInfo3 **info3);
69 NTSTATUS rpccli_netlogon_network_logon(struct netlogon_creds_cli_context *creds,
70                                        struct dcerpc_binding_handle *binding_handle,
71                                        TALLOC_CTX *mem_ctx,
72                                        uint32_t logon_parameters,
73                                        const char *username,
74                                        const char *domain,
75                                        const char *workstation,
76                                        const uint8 chal[8],
77                                        DATA_BLOB lm_response,
78                                        DATA_BLOB nt_response,
79                                        uint8_t *authoritative,
80                                        uint32_t *flags,
81                                        struct netr_SamInfo3 **info3);
82
83 #endif /* _RPC_CLIENT_CLI_NETLOGON_H_ */