WINBIND_AUTH_LEVEL_COMPAT_AUTH_RESPONSE = 2,
WINBIND_AUTH_LEVEL_COMPAT_LOGOFF = 3,
WINBIND_AUTH_LEVEL_CHANGE_PASSWORD_PLAIN= 4,
- WINBIND_AUTH_LEVEL_CHANGE_PASSWORD_CRYPT= 5
+ WINBIND_AUTH_LEVEL_CHANGE_PASSWORD_CRYPT= 5,
+ WINBIND_AUTH_LEVEL_CCACHE_NTLM_AUTH = 6
} winbind_auth_level;
struct winbind_auth_compat_auth_plain_req {
samr_Password *lm_verifier;
};
+ struct winbind_auth_ccache_ntlm_auth_req {
+ [string,charset(UTF8)] uint8 account_name[];
+ [string,charset(UTF8)] uint8 *domain_name;
+ hyper uid;
+ DATA_BLOB initial_blob;
+ DATA_BLOB challenge_blob;
+ };
+
typedef [switch_type(winbind_auth_level)] union {
[case(WINBIND_AUTH_LEVEL_COMPAT_AUTH_PLAIN)]
struct winbind_auth_compat_auth_plain_req compat_auth_plain;
struct winbind_auth_change_password_plain_req change_password_plain;
[case(WINBIND_AUTH_LEVEL_CHANGE_PASSWORD_CRYPT)]
struct winbind_auth_change_password_crypt_req change_password_crypt;
+ [case(WINBIND_AUTH_LEVEL_CCACHE_NTLM_AUTH)]
+ struct winbind_auth_ccache_ntlm_auth_req ccache_ntlm_auth;
[default];
} winbind_auth_req;
[case(WINBIND_AUTH_LEVEL_COMPAT_LOGOFF)];
[case(WINBIND_AUTH_LEVEL_CHANGE_PASSWORD_PLAIN)];
[case(WINBIND_AUTH_LEVEL_CHANGE_PASSWORD_CRYPT)];
+ [case(WINBIND_AUTH_LEVEL_CCACHE_NTLM_AUTH)]
+ DATA_BLOB ccache_ntlm_auth;
[default];
} winbind_auth_rep;
/* Various group queries */
winbind_status winbind_getuserdomgroups(/*TODO*/);
-
- /*
- * Complete the challenge phase of the NTLM authentication
- * protocol using cached password.
- */
- winbind_status winbind_ccache_ntlmauth(/*TODO*/);
}