/* IBM_PROLOG_BEGIN_TAG                                                   */
/* This is an automatically generated prolog.                             */
/*                                                                        */
/* onc720 src/oncplus/usr/include/tirpc/rpcsvc/nispasswd.h 1.2            */
/*                                                                        */
/*                                                                        */
/*                                                                        */
/* COPYRIGHT International Business Machines Corp. 1996,1999              */
/* All Rights Reserved                                                    */
/*                                                                        */
/* IBM_PROLOG_END_TAG                                                     */
/* @(#)95	1.2  src/oncplus/usr/include/tirpc/rpcsvc/nispasswd.h, nisplus, onc720 6/24/99 13:45:33  */

/*
 *   COMPONENT_NAME: onchdrs
 *
 *   FUNCTIONS: nispasswd_authresult
 *		nispasswd_code
 *		nispasswd_error
 *		nispasswd_field
 *		nispasswd_status
 *		nispasswd_updresult
 *		nispasswd_verf
 *		npd_newpass
 *		npd_request
 *		npd_update
 *		passbuf
 *		passwd_info
 *
 *   ORIGINS: 162
 *
 */

enum nispasswd_status {
	NPD_SUCCESS = 0,
	NPD_TRYAGAIN = 1,
	NPD_PARTIALSUCCESS = 2,
	NPD_FAILED = 3};
typedef enum nispasswd_status nispasswd_status;
bool_t xdr_nispasswd_status();


enum nispasswd_code {
	NPD_NOTMASTER = 0,
	NPD_NOSUCHENTRY = 1,
	NPD_IDENTINVALID = 2,
	NPD_NOPASSWD = 3,
	NPD_NOSHDWINFO = 4,
	NPD_SHDWCORRUPT = 5,
	NPD_NOTAGED = 6,
	NPD_CKGENFAILED = 7,
	NPD_VERFINVALID = 8,
	NPD_PASSINVALID = 9,
	NPD_ENCRYPTFAIL = 10,
	NPD_DECRYPTFAIL = 11,
	NPD_KEYSUPDATED = 12,
	NPD_KEYNOTREENC = 13,
	NPD_PERMDENIED = 14,
	NPD_SRVNOTRESP = 15,
	NPD_NISERROR = 16,
	NPD_SYSTEMERR = 17,
	NPD_BUFTOOSMALL = 18,
	NPD_INVALIDARGS = 19};
typedef enum nispasswd_code nispasswd_code;
bool_t xdr_nispasswd_code(XDR *, nispasswd_code *);


enum nispasswd_field {
	NPD_PASSWD = 0,
	NPD_GECOS = 1,
	NPD_SHELL = 2,
	NPD_SECRETKEY = 3};
typedef enum nispasswd_field nispasswd_field;
bool_t xdr_nispasswd_field(XDR *, nispasswd_field *);


struct nispasswd_error {
	nispasswd_field npd_field;
	nispasswd_code npd_code;
	struct nispasswd_error *next;
};
typedef struct nispasswd_error nispasswd_error;
bool_t xdr_nispasswd_error(XDR *, nispasswd_error *);


struct passwd_info {
	char *pw_gecos;
	char *pw_shell;
};
typedef struct passwd_info passwd_info;
bool_t xdr_passwd_info(XDR *, passwd_info *);


struct npd_request {
	char *username;
	char *domain;
	char *key_type;
	struct {
		u_int user_pub_key_len;
		u_char *user_pub_key_val;
	} user_pub_key;
	struct {
		u_int npd_authpass_len;
		u_char *npd_authpass_val;
	} npd_authpass;
	u_long ident;
};
typedef struct npd_request npd_request;
bool_t xdr_npd_request(XDR *, npd_request *);

#define __NPD_MAXPASSBYTES 12

typedef char passbuf[__NPD_MAXPASSBYTES];
bool_t xdr_passbuf(XDR *, passbuf);


struct npd_newpass {
	u_long npd_xrandval;
	passbuf pass;
};
typedef struct npd_newpass npd_newpass;
bool_t xdr_npd_newpass(XDR *, npd_newpass *);


struct npd_update {
	u_long ident;
	npd_newpass xnewpass;
	passwd_info pass_info;
};
typedef struct npd_update npd_update;
bool_t xdr_npd_update(XDR *, npd_update *);


struct nispasswd_verf {
	u_long npd_xid;
	u_long npd_xrandval;
};
typedef struct nispasswd_verf nispasswd_verf;
bool_t xdr_nispasswd_verf(XDR *, nispasswd_verf *);


struct nispasswd_authresult {
	nispasswd_status status;
	union {
		nispasswd_verf npd_verf;
		nispasswd_code npd_err;
	} nispasswd_authresult_u;
};
typedef struct nispasswd_authresult nispasswd_authresult;
bool_t xdr_nispasswd_authresult(XDR *, nispasswd_authresult *);


struct nispasswd_updresult {
	nispasswd_status status;
	union {
		nispasswd_error reason;
		nispasswd_code npd_err;
	} nispasswd_updresult_u;
};
typedef struct nispasswd_updresult nispasswd_updresult;
bool_t xdr_nispasswd_updresult(XDR *, nispasswd_updresult *);


#define NISPASSWD_PROG ((u_long)100303)
#define NISPASSWD_VERS ((u_long)1)
#define NISPASSWD_AUTHENTICATE ((u_long)1)
/* extern nispasswd_authresult *nispasswd_authenticate_1(); */
#define NISPASSWD_UPDATE ((u_long)2)
/* extern nispasswd_updresult *nispasswd_update_1(); */

