/*
 * Please do not edit this file.
 * It was generated using rpcgen.
 */

#ifndef _KEY_PROT_H_RPCGEN
#define	_KEY_PROT_H_RPCGEN

#include <rpc/rpc.h>

#ifdef __cplusplus
extern "C" {
#endif

#pragma ident   "@(#)key_prot.x 1.7     97/11/19 SMI"

/* Copyright (c)  1990, 1991 Sun Microsystems, Inc. */

/*
 * Compiled from key_prot.x using rpcgen.
 * DO NOT EDIT THIS FILE!
 * This is NOT source code!
 */
#define	PROOT 3
#define	HEXMODULUS "d4a0ba0250b6fd2ec626e7efd637df76c716e22d0944b88b"
#define	HEXKEYBYTES 48
#define	KEYSIZE 192
#define	KEYBYTES 24
#define	KEYCHECKSUMSIZE 16

enum keystatus {
	KEY_SUCCESS = 0,
	KEY_NOSECRET = 1,
	KEY_UNKNOWN = 2,
	KEY_SYSTEMERR = 3,
	KEY_BADALG = 4,
	KEY_BADLEN = 5
};
typedef enum keystatus keystatus;

typedef char keybuf[HEXKEYBYTES];

typedef struct {
	u_int keybuf3_len;
	char *keybuf3_val;
} keybuf3;

typedef char *netnamestr;

typedef int keylen_t;

typedef int algtype_t;

struct mechtype {
	keylen_t keylen;
	algtype_t algtype;
};
typedef struct mechtype mechtype;

typedef int keynum_t;

typedef struct {
	u_int deskeyarray_len;
	des_block *deskeyarray_val;
} deskeyarray;

struct cryptkeyarg {
	netnamestr remotename;
	des_block deskey;
};
typedef struct cryptkeyarg cryptkeyarg;

struct cryptkeyarg2 {
	netnamestr remotename;
	netobj remotekey;
	des_block deskey;
};
typedef struct cryptkeyarg2 cryptkeyarg2;

struct cryptkeyarg3 {
	netnamestr remotename;
	keybuf3 remotekey;
	deskeyarray deskey;
	algtype_t algtype;
	keylen_t keylen;
};
typedef struct cryptkeyarg3 cryptkeyarg3;

struct cryptkeyres {
	keystatus status;
	union {
		des_block deskey;
	} cryptkeyres_u;
};
typedef struct cryptkeyres cryptkeyres;

struct cryptkeyres3 {
	keystatus status;
	union {
		deskeyarray deskey;
	} cryptkeyres3_u;
};
typedef struct cryptkeyres3 cryptkeyres3;
#define	MAXGIDS 16

struct unixcred {
	u_int uid;
	u_int gid;
	struct {
		u_int gids_len;
		u_int *gids_val;
	} gids;
};
typedef struct unixcred unixcred;

struct unixcred3 {
	u_int uid;
	u_int gid;
	struct {
		u_int gids_len;
		u_int *gids_val;
	} gids;
};
typedef struct unixcred3 unixcred3;

struct getcredres {
	keystatus status;
	union {
		unixcred cred;
	} getcredres_u;
};
typedef struct getcredres getcredres;

struct getcredres3 {
	keystatus status;
	union {
		unixcred3 cred;
	} getcredres3_u;
};
typedef struct getcredres3 getcredres3;

struct key_netstarg {
	keybuf st_priv_key;
	keybuf st_pub_key;
	netnamestr st_netname;
};
typedef struct key_netstarg key_netstarg;

struct key_netstarg3 {
	keybuf3 st_priv_key;
	keybuf3 st_pub_key;
	netnamestr st_netname;
	algtype_t algtype;
	keylen_t keylen;
	des_block userkey;
};
typedef struct key_netstarg3 key_netstarg3;

struct key_netstres {
	keystatus status;
	union {
		key_netstarg knet;
	} key_netstres_u;
};
typedef struct key_netstres key_netstres;

struct key_netstres3 {
	keystatus status;
	union {
		key_netstarg3 knet;
	} key_netstres3_u;
};
typedef struct key_netstres3 key_netstres3;

struct deskeyarg3 {
	keybuf3 pub_key;
	int nkeys;
	algtype_t algtype;
	keylen_t keylen;
};
typedef struct deskeyarg3 deskeyarg3;

struct setkeyarg3 {
	keybuf3 key;
	des_block userkey;
	algtype_t algtype;
	keylen_t keylen;
};
typedef struct setkeyarg3 setkeyarg3;

#ifndef opaque
#define	opaque char
#endif


#define	KEY_PROG	100029
#define	KEY_VERS	1

#if defined(__STDC__) || defined(__cplusplus)
#define	KEY_SET	1
extern  keystatus * key_set_1(char *, CLIENT *);
extern  keystatus * key_set_1_svc(char *, struct svc_req *);
#define	KEY_ENCRYPT	2
extern  cryptkeyres * key_encrypt_1(cryptkeyarg *, CLIENT *);
extern  cryptkeyres * key_encrypt_1_svc(cryptkeyarg *, struct svc_req *);
#define	KEY_DECRYPT	3
extern  cryptkeyres * key_decrypt_1(cryptkeyarg *, CLIENT *);
extern  cryptkeyres * key_decrypt_1_svc(cryptkeyarg *, struct svc_req *);
#define	KEY_GEN	4
extern  des_block * key_gen_1(void *, CLIENT *);
extern  des_block * key_gen_1_svc(void *, struct svc_req *);
#define	KEY_GETCRED	5
extern  getcredres * key_getcred_1(netnamestr *, CLIENT *);
extern  getcredres * key_getcred_1_svc(netnamestr *, struct svc_req *);
extern int key_prog_1_freeresult(SVCXPRT *, xdrproc_t, caddr_t);

#else /* K&R C */
#define	KEY_SET	1
extern  keystatus * key_set_1();
extern  keystatus * key_set_1_svc();
#define	KEY_ENCRYPT	2
extern  cryptkeyres * key_encrypt_1();
extern  cryptkeyres * key_encrypt_1_svc();
#define	KEY_DECRYPT	3
extern  cryptkeyres * key_decrypt_1();
extern  cryptkeyres * key_decrypt_1_svc();
#define	KEY_GEN	4
extern  des_block * key_gen_1();
extern  des_block * key_gen_1_svc();
#define	KEY_GETCRED	5
extern  getcredres * key_getcred_1();
extern  getcredres * key_getcred_1_svc();
extern int key_prog_1_freeresult();
#endif /* K&R C */
#define	KEY_VERS2	2

#if defined(__STDC__) || defined(__cplusplus)
extern  keystatus * key_set_2(char *, CLIENT *);
extern  keystatus * key_set_2_svc(char *, struct svc_req *);
extern  cryptkeyres * key_encrypt_2(cryptkeyarg *, CLIENT *);
extern  cryptkeyres * key_encrypt_2_svc(cryptkeyarg *, struct svc_req *);
extern  cryptkeyres * key_decrypt_2(cryptkeyarg *, CLIENT *);
extern  cryptkeyres * key_decrypt_2_svc(cryptkeyarg *, struct svc_req *);
extern  des_block * key_gen_2(void *, CLIENT *);
extern  des_block * key_gen_2_svc(void *, struct svc_req *);
extern  getcredres * key_getcred_2(netnamestr *, CLIENT *);
extern  getcredres * key_getcred_2_svc(netnamestr *, struct svc_req *);
#define	KEY_ENCRYPT_PK	6
extern  cryptkeyres * key_encrypt_pk_2(cryptkeyarg2 *, CLIENT *);
extern  cryptkeyres * key_encrypt_pk_2_svc(cryptkeyarg2 *, struct svc_req *);
#define	KEY_DECRYPT_PK	7
extern  cryptkeyres * key_decrypt_pk_2(cryptkeyarg2 *, CLIENT *);
extern  cryptkeyres * key_decrypt_pk_2_svc(cryptkeyarg2 *, struct svc_req *);
#define	KEY_NET_PUT	8
extern  keystatus * key_net_put_2(key_netstarg *, CLIENT *);
extern  keystatus * key_net_put_2_svc(key_netstarg *, struct svc_req *);
#define	KEY_NET_GET	9
extern  key_netstres * key_net_get_2(void *, CLIENT *);
extern  key_netstres * key_net_get_2_svc(void *, struct svc_req *);
#define	KEY_GET_CONV	10
extern  cryptkeyres * key_get_conv_2(char *, CLIENT *);
extern  cryptkeyres * key_get_conv_2_svc(char *, struct svc_req *);
extern int key_prog_2_freeresult(SVCXPRT *, xdrproc_t, caddr_t);

#else /* K&R C */
extern  keystatus * key_set_2();
extern  keystatus * key_set_2_svc();
extern  cryptkeyres * key_encrypt_2();
extern  cryptkeyres * key_encrypt_2_svc();
extern  cryptkeyres * key_decrypt_2();
extern  cryptkeyres * key_decrypt_2_svc();
extern  des_block * key_gen_2();
extern  des_block * key_gen_2_svc();
extern  getcredres * key_getcred_2();
extern  getcredres * key_getcred_2_svc();
#define	KEY_ENCRYPT_PK	6
extern  cryptkeyres * key_encrypt_pk_2();
extern  cryptkeyres * key_encrypt_pk_2_svc();
#define	KEY_DECRYPT_PK	7
extern  cryptkeyres * key_decrypt_pk_2();
extern  cryptkeyres * key_decrypt_pk_2_svc();
#define	KEY_NET_PUT	8
extern  keystatus * key_net_put_2();
extern  keystatus * key_net_put_2_svc();
#define	KEY_NET_GET	9
extern  key_netstres * key_net_get_2();
extern  key_netstres * key_net_get_2_svc();
#define	KEY_GET_CONV	10
extern  cryptkeyres * key_get_conv_2();
extern  cryptkeyres * key_get_conv_2_svc();
extern int key_prog_2_freeresult();
#endif /* K&R C */
#define	KEY_VERS3	3

#if defined(__STDC__) || defined(__cplusplus)
extern  keystatus * key_set_3(char *, CLIENT *);
extern  keystatus * key_set_3_svc(char *, struct svc_req *);
extern  cryptkeyres * key_encrypt_3(cryptkeyarg *, CLIENT *);
extern  cryptkeyres * key_encrypt_3_svc(cryptkeyarg *, struct svc_req *);
extern  cryptkeyres * key_decrypt_3(cryptkeyarg *, CLIENT *);
extern  cryptkeyres * key_decrypt_3_svc(cryptkeyarg *, struct svc_req *);
extern  des_block * key_gen_3(void *, CLIENT *);
extern  des_block * key_gen_3_svc(void *, struct svc_req *);
extern  getcredres * key_getcred_3(netnamestr *, CLIENT *);
extern  getcredres * key_getcred_3_svc(netnamestr *, struct svc_req *);
extern  cryptkeyres * key_encrypt_pk_3(cryptkeyarg2 *, CLIENT *);
extern  cryptkeyres * key_encrypt_pk_3_svc(cryptkeyarg2 *, struct svc_req *);
extern  cryptkeyres * key_decrypt_pk_3(cryptkeyarg2 *, CLIENT *);
extern  cryptkeyres * key_decrypt_pk_3_svc(cryptkeyarg2 *, struct svc_req *);
extern  keystatus * key_net_put_3(key_netstarg *, CLIENT *);
extern  keystatus * key_net_put_3_svc(key_netstarg *, struct svc_req *);
extern  key_netstres * key_net_get_3(void *, CLIENT *);
extern  key_netstres * key_net_get_3_svc(void *, struct svc_req *);
extern  cryptkeyres * key_get_conv_3(char *, CLIENT *);
extern  cryptkeyres * key_get_conv_3_svc(char *, struct svc_req *);
#define	KEY_SET_3	11
extern  keystatus * key_set_3_3(setkeyarg3 *, CLIENT *);
extern  keystatus * key_set_3_3_svc(setkeyarg3 *, struct svc_req *);
#define	KEY_ENCRYPT_3	12
extern  cryptkeyres3 * key_encrypt_3_3(cryptkeyarg3 *, CLIENT *);
extern  cryptkeyres3 * key_encrypt_3_3_svc(cryptkeyarg3 *, struct svc_req *);
#define	KEY_DECRYPT_3	13
extern  cryptkeyres3 * key_decrypt_3_3(cryptkeyarg3 *, CLIENT *);
extern  cryptkeyres3 * key_decrypt_3_3_svc(cryptkeyarg3 *, struct svc_req *);
#define	KEY_GEN_3	14
extern  deskeyarray * key_gen_3_3(keynum_t *, CLIENT *);
extern  deskeyarray * key_gen_3_3_svc(keynum_t *, struct svc_req *);
#define	KEY_GETCRED_3	15
extern  getcredres3 * key_getcred_3_3(netnamestr *, CLIENT *);
extern  getcredres3 * key_getcred_3_3_svc(netnamestr *, struct svc_req *);
#define	KEY_ENCRYPT_PK_3	16
extern  cryptkeyres3 * key_encrypt_pk_3_3(cryptkeyarg3 *, CLIENT *);
extern  cryptkeyres3 * key_encrypt_pk_3_3_svc(cryptkeyarg3 *, struct svc_req *);
#define	KEY_DECRYPT_PK_3	17
extern  cryptkeyres3 * key_decrypt_pk_3_3(cryptkeyarg3 *, CLIENT *);
extern  cryptkeyres3 * key_decrypt_pk_3_3_svc(cryptkeyarg3 *, struct svc_req *);
#define	KEY_NET_PUT_3	18
extern  keystatus * key_net_put_3_3(key_netstarg3 *, CLIENT *);
extern  keystatus * key_net_put_3_3_svc(key_netstarg3 *, struct svc_req *);
#define	KEY_NET_GET_3	19
extern  key_netstres3 * key_net_get_3_3(key_netstarg3 *, CLIENT *);
extern  key_netstres3 * key_net_get_3_3_svc(key_netstarg3 *, struct svc_req *);
#define	KEY_GET_CONV_3	20
extern  cryptkeyres3 * key_get_conv_3_3(deskeyarg3 *, CLIENT *);
extern  cryptkeyres3 * key_get_conv_3_3_svc(deskeyarg3 *, struct svc_req *);
#define	KEY_CLEAR_3	21
extern  keystatus * key_clear_3_3(void *, CLIENT *);
extern  keystatus * key_clear_3_3_svc(void *, struct svc_req *);
extern int key_prog_3_freeresult(SVCXPRT *, xdrproc_t, caddr_t);

#else /* K&R C */
extern  keystatus * key_set_3();
extern  keystatus * key_set_3_svc();
extern  cryptkeyres * key_encrypt_3();
extern  cryptkeyres * key_encrypt_3_svc();
extern  cryptkeyres * key_decrypt_3();
extern  cryptkeyres * key_decrypt_3_svc();
extern  des_block * key_gen_3();
extern  des_block * key_gen_3_svc();
extern  getcredres * key_getcred_3();
extern  getcredres * key_getcred_3_svc();
extern  cryptkeyres * key_encrypt_pk_3();
extern  cryptkeyres * key_encrypt_pk_3_svc();
extern  cryptkeyres * key_decrypt_pk_3();
extern  cryptkeyres * key_decrypt_pk_3_svc();
extern  keystatus * key_net_put_3();
extern  keystatus * key_net_put_3_svc();
extern  key_netstres * key_net_get_3();
extern  key_netstres * key_net_get_3_svc();
extern  cryptkeyres * key_get_conv_3();
extern  cryptkeyres * key_get_conv_3_svc();
#define	KEY_SET_3	11
extern  keystatus * key_set_3_3();
extern  keystatus * key_set_3_3_svc();
#define	KEY_ENCRYPT_3	12
extern  cryptkeyres3 * key_encrypt_3_3();
extern  cryptkeyres3 * key_encrypt_3_3_svc();
#define	KEY_DECRYPT_3	13
extern  cryptkeyres3 * key_decrypt_3_3();
extern  cryptkeyres3 * key_decrypt_3_3_svc();
#define	KEY_GEN_3	14
extern  deskeyarray * key_gen_3_3();
extern  deskeyarray * key_gen_3_3_svc();
#define	KEY_GETCRED_3	15
extern  getcredres3 * key_getcred_3_3();
extern  getcredres3 * key_getcred_3_3_svc();
#define	KEY_ENCRYPT_PK_3	16
extern  cryptkeyres3 * key_encrypt_pk_3_3();
extern  cryptkeyres3 * key_encrypt_pk_3_3_svc();
#define	KEY_DECRYPT_PK_3	17
extern  cryptkeyres3 * key_decrypt_pk_3_3();
extern  cryptkeyres3 * key_decrypt_pk_3_3_svc();
#define	KEY_NET_PUT_3	18
extern  keystatus * key_net_put_3_3();
extern  keystatus * key_net_put_3_3_svc();
#define	KEY_NET_GET_3	19
extern  key_netstres3 * key_net_get_3_3();
extern  key_netstres3 * key_net_get_3_3_svc();
#define	KEY_GET_CONV_3	20
extern  cryptkeyres3 * key_get_conv_3_3();
extern  cryptkeyres3 * key_get_conv_3_3_svc();
#define	KEY_CLEAR_3	21
extern  keystatus * key_clear_3_3();
extern  keystatus * key_clear_3_3_svc();
extern int key_prog_3_freeresult();
#endif /* K&R C */

/* the xdr functions */

#if defined(__STDC__) || defined(__cplusplus)
extern  bool_t xdr_keystatus(XDR *, keystatus*);
extern  bool_t xdr_keybuf(XDR *, keybuf);
extern  bool_t xdr_keybuf3(XDR *, keybuf3*);
extern  bool_t xdr_netnamestr(XDR *, netnamestr*);
extern  bool_t xdr_keylen_t(XDR *, keylen_t*);
extern  bool_t xdr_algtype_t(XDR *, algtype_t*);
extern  bool_t xdr_mechtype(XDR *, mechtype*);
extern  bool_t xdr_keynum_t(XDR *, keynum_t*);
extern  bool_t xdr_deskeyarray(XDR *, deskeyarray*);
extern  bool_t xdr_cryptkeyarg(XDR *, cryptkeyarg*);
extern  bool_t xdr_cryptkeyarg2(XDR *, cryptkeyarg2*);
extern  bool_t xdr_cryptkeyarg3(XDR *, cryptkeyarg3*);
extern  bool_t xdr_cryptkeyres(XDR *, cryptkeyres*);
extern  bool_t xdr_cryptkeyres3(XDR *, cryptkeyres3*);
extern  bool_t xdr_unixcred(XDR *, unixcred*);
extern  bool_t xdr_unixcred3(XDR *, unixcred3*);
extern  bool_t xdr_getcredres(XDR *, getcredres*);
extern  bool_t xdr_getcredres3(XDR *, getcredres3*);
extern  bool_t xdr_key_netstarg(XDR *, key_netstarg*);
extern  bool_t xdr_key_netstarg3(XDR *, key_netstarg3*);
extern  bool_t xdr_key_netstres(XDR *, key_netstres*);
extern  bool_t xdr_key_netstres3(XDR *, key_netstres3*);
extern  bool_t xdr_deskeyarg3(XDR *, deskeyarg3*);
extern  bool_t xdr_setkeyarg3(XDR *, setkeyarg3*);

#else /* K&R C */
extern bool_t xdr_keystatus();
extern bool_t xdr_keybuf();
extern bool_t xdr_keybuf3();
extern bool_t xdr_netnamestr();
extern bool_t xdr_keylen_t();
extern bool_t xdr_algtype_t();
extern bool_t xdr_mechtype();
extern bool_t xdr_keynum_t();
extern bool_t xdr_deskeyarray();
extern bool_t xdr_cryptkeyarg();
extern bool_t xdr_cryptkeyarg2();
extern bool_t xdr_cryptkeyarg3();
extern bool_t xdr_cryptkeyres();
extern bool_t xdr_cryptkeyres3();
extern bool_t xdr_unixcred();
extern bool_t xdr_unixcred3();
extern bool_t xdr_getcredres();
extern bool_t xdr_getcredres3();
extern bool_t xdr_key_netstarg();
extern bool_t xdr_key_netstarg3();
extern bool_t xdr_key_netstres();
extern bool_t xdr_key_netstres3();
extern bool_t xdr_deskeyarg3();
extern bool_t xdr_setkeyarg3();

#endif /* K&R C */

#ifdef __cplusplus
}
#endif

#endif /* !_KEY_PROT_H_RPCGEN */
