WINBIND_AUTH_LEVEL_COMPAT_AUTH_PLAIN = 1,
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_PLAIN= 4,
+ WINBIND_AUTH_LEVEL_CHANGE_PASSWORD_CRYPT= 5
} winbind_auth_level;
struct winbind_auth_compat_auth_plain_req {
[string,charset(UTF8)] uint8 new_password[];
};
+ struct winbind_auth_change_password_crypt_req {
+ [string,charset(UTF8)] uint8 account_name[];
+ [string,charset(UTF8)] uint8 *domain_name;
+ samr_CryptPassword nt_password;
+ samr_Password nt_verifier;
+ samr_CryptPassword *lm_password;
+ samr_Password *lm_verifier;
+ };
+
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_compat_logoff_req compat_logoff;
[case(WINBIND_AUTH_LEVEL_CHANGE_PASSWORD_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;
[default];
} winbind_auth_req;
struct winbind_auth_compat_auth_rep compat_auth;
[case(WINBIND_AUTH_LEVEL_COMPAT_LOGOFF)];
[case(WINBIND_AUTH_LEVEL_CHANGE_PASSWORD_PLAIN)];
+ [case(WINBIND_AUTH_LEVEL_CHANGE_PASSWORD_CRYPT)];
[default];
} winbind_auth_rep;
[out,switch_is(*level)] winbind_auth_rep *rep
);
- winbind_status winbind_pam_chng_paswd_auth_crap(/*TODO*/);
-
/*
* List various things
*/