#define _SAMBA3_H
#include "librpc/gen_ndr/security.h"
+#include "librpc/gen_ndr/samr.h"
struct samba3_samaccount {
uint32_t logon_time,
char *profile_path;
char *acct_desc;
char *workstations;
+ uid_t uid;
uint32_t user_rid, group_rid, hours_len, unknown_6;
uint16_t acct_ctrl, logon_divs;
uint16_t bad_password_count, logon_count;
- uint8_t *lm_pw_ptr, *nt_pw_ptr;
+ struct samr_Password lm_pw, nt_pw;
uint8_t *nt_pw_hist_ptr;
uint8_t *hours;
};
struct samba3_groupmapping {
- struct pdb_methods *methods;
gid_t gid;
struct dom_sid *sid;
int sid_name_use;
struct samba3_regkey *keys;
};
+struct samba3_secrets
+{
+ struct cli_credentials *ipc_cred;
+
+ uint32_t ldappw_count;
+ struct samba3_ldappw
+ {
+ char *dn;
+ char *password;
+ } *ldappws;
+
+ uint32_t domain_count;
+ struct samba3_domainsecrets
+ {
+ char *name;
+ struct dom_sid sid;
+ struct GUID guid;
+ char *plaintext_pw;
+ time_t last_change_time;
+ struct {
+ uint8_t hash[16];
+ time_t mod_time;
+ } hash_pw;
+ int sec_channel_type;
+ } *domains;
+
+ uint32_t trusted_domain_count;
+ struct samba3_trusted_dom_pass {
+ uint32_t uni_name_len;
+ const char *uni_name[32]; /* unicode domain name */
+ const char *pass; /* trust relationship's password */
+ time_t mod_time;
+ struct dom_sid domain_sid; /* remote domain's sid */
+ } *trusted_domains;
+
+ uint32_t afs_keyfile_count;
+
+ struct samba3_afs_keyfile {
+ uint32_t nkeys;
+ struct {
+ uint32_t kvno;
+ char key[8];
+ } entry[8];
+ char *cell;
+ } *afs_keyfiles;
+};
+
+struct samba3_parameter {
+ char *name;
+ char *value;
+};
+
+struct samba3_share_info {
+ char *name;
+ struct security_descriptor secdesc;
+
+ uint32_t parameter_count;
+ struct samba3_parameter *parameters;
+};
+
struct samba3
{
uint32_t winsdb_count;
uint32_t samaccount_count;
struct samba3_samaccount *samaccounts;
+ uint32_t share_count;
+ struct samba3_share_info *shares;
+
+ struct samba3_secrets secrets;
struct samba3_groupdb group;
struct samba3_idmapdb idmap;
struct samba3_policy policy;