s4:kdc: Add resource SID compression
[samba.git] / auth / auth_sam_reply.h
index 5481eb26e878c8729b3eed9151b60e59e363026a..57a98249b08c5a525e5d4a025127865823ce3c01 100644 (file)
 #ifndef __AUTH_AUTH_SAM_REPLY_H__
 #define __AUTH_AUTH_SAM_REPLY_H__
 
+#include "libcli/util/ntstatus.h"
+#include "libcli/util/werror.h"
+#include "librpc/gen_ndr/auth.h"
+
 #undef _PRINTF_ATTRIBUTE
 #define _PRINTF_ATTRIBUTE(a1, a2) PRINTF_ATTRIBUTE(a1, a2)
 /* this file contains prototypes for functions that are private
 
 NTSTATUS make_user_info_SamBaseInfo(TALLOC_CTX *mem_ctx,
                                    const char *account_name,
-                                   struct netr_SamBaseInfo *base,
+                                   const struct netr_SamBaseInfo *base,
                                    bool authenticated,
                                    struct auth_user_info **_user_info);
 
-NTSTATUS auth_convert_user_info_dc_sambaseinfo(TALLOC_CTX *mem_ctx,
-                                             struct auth_user_info_dc *user_info_dc,
-                                             struct netr_SamBaseInfo **_sam);
+struct auth_user_info *auth_user_info_copy(TALLOC_CTX *mem_ctx,
+                                          const struct auth_user_info *src);
+
+NTSTATUS auth_convert_user_info_dc_saminfo6(TALLOC_CTX *mem_ctx,
+                                          const struct auth_user_info_dc *user_info_dc,
+                                          enum auth_group_inclusion group_inclusion,
+                                          struct netr_SamInfo6 **_sam6,
+                                          struct PAC_DOMAIN_GROUP_MEMBERSHIP **_resource_groups);
+NTSTATUS auth_convert_user_info_dc_saminfo2(TALLOC_CTX *mem_ctx,
+                                          const struct auth_user_info_dc *user_info_dc,
+                                          enum auth_group_inclusion group_inclusion,
+                                          struct netr_SamInfo2 **_sam2);
 NTSTATUS auth_convert_user_info_dc_saminfo3(TALLOC_CTX *mem_ctx,
-                                          struct auth_user_info_dc *user_info_dc,
-                                          struct netr_SamInfo3 **_sam3);
+                                          const struct auth_user_info_dc *user_info_dc,
+                                          enum auth_group_inclusion group_inclusion,
+                                          struct netr_SamInfo3 **_sam3,
+                                          struct PAC_DOMAIN_GROUP_MEMBERSHIP **_resource_groups);
 
 /**
  * Make a user_info_dc struct from the info3 returned by a domain logon
@@ -51,22 +66,24 @@ NTSTATUS auth_convert_user_info_dc_saminfo3(TALLOC_CTX *mem_ctx,
 NTSTATUS make_user_info_dc_netlogon_validation(TALLOC_CTX *mem_ctx,
                                              const char *account_name,
                                              uint16_t validation_level,
-                                             union netr_Validation *validation,
-                                              bool authenticated,
+                                             const union netr_Validation *validation,
+                                             bool authenticated,
                                              struct auth_user_info_dc **_user_info_dc);
 
 /**
  * Make a user_info_dc struct from the PAC_LOGON_INFO supplied in the krb5 logon
  */
 NTSTATUS make_user_info_dc_pac(TALLOC_CTX *mem_ctx,
-                             struct PAC_LOGON_INFO *pac_logon_info,
+                             const struct PAC_LOGON_INFO *pac_logon_info,
+                             const struct PAC_UPN_DNS_INFO *pac_upn_dns_info,
+                             enum auth_group_inclusion group_inclusion,
                              struct auth_user_info_dc **_user_info_dc);
 
 /* The following definitions come from auth/wbc_auth_util.c  */
 
 struct wbcAuthUserInfo;
 
-struct netr_SamInfo3 *wbcAuthUserInfo_to_netr_SamInfo3(TALLOC_CTX *mem_ctx,
+struct netr_SamInfo6 *wbcAuthUserInfo_to_netr_SamInfo6(TALLOC_CTX *mem_ctx,
                                                       const struct wbcAuthUserInfo *info);
 
 #undef _PRINTF_ATTRIBUTE