auth.idl fix size_is() reference in IDL
[samba.git] / librpc / idl / auth.idl
1 #include "idl_types.h"
2
3 /*
4   security IDL structures
5 */
6
7 import "misc.idl", "security.idl", "lsa.idl", "krb5pac.idl";
8
9 interface auth
10 {
11         typedef [public] enum {
12                 SEC_AUTH_METHOD_UNAUTHENTICATED = 0,
13                 SEC_AUTH_METHOD_NTLM            = 1,
14                 SEC_AUTH_METHOD_KERBEROS        = 2
15         } auth_method;
16
17         /* This is the parts of the session_info that don't change
18          * during local privilage and group manipulations */
19         typedef [public] struct {
20                 utf8string account_name;
21                 utf8string domain_name;
22
23                 utf8string full_name;
24                 utf8string logon_script;
25                 utf8string profile_path;
26                 utf8string home_directory;
27                 utf8string home_drive;
28                 utf8string logon_server;
29
30                 NTTIME last_logon;
31                 NTTIME last_logoff;
32                 NTTIME acct_expiry;
33                 NTTIME last_password_change;
34                 NTTIME allow_password_change;
35                 NTTIME force_password_change;
36
37                 uint16 logon_count;
38                 uint16 bad_password_count;
39
40                 uint32 acct_flags;
41
42                 uint8 authenticated;
43         } auth_user_info;
44
45         /* This information is preserved only to assist torture tests */
46         typedef [public] struct {
47                 /* Number SIDs from the DC netlogon validation info */
48                 uint32 num_dc_sids;
49                 [size_is(num_dc_sids)] dom_sid dc_sids[*];
50                 PAC_SIGNATURE_DATA *pac_srv_sig;
51                 PAC_SIGNATURE_DATA *pac_kdc_sig;
52         } auth_user_info_torture;
53
54         /* This is the interim product of the auth subsystem, before
55          * privileges and local groups are handled */
56         typedef [public] struct {
57                 uint32 num_sids;
58                 [size_is(num_sids)] dom_sid sids[*];
59                 auth_user_info *info;
60                 DATA_BLOB user_session_key;
61                 DATA_BLOB lm_session_key;
62         } auth_user_info_dc;
63
64         typedef [public] struct {
65                 security_token *security_token;
66                 auth_user_info *info;
67                 DATA_BLOB session_key;
68                 DATA_BLOB exported_gssapi_credentials;
69         } auth_session_info_transport;
70 }