xref: /freebsd/crypto/krb5/src/lib/kadm5/kadm_rpc.h (revision 7f2fe78b9dd5f51c821d771b63d2e096f6fd49e9)
1*7f2fe78bSCy Schubert /* -*- mode: c; c-file-style: "bsd"; indent-tabs-mode: t -*- */
2*7f2fe78bSCy Schubert #ifndef __KADM_RPC_H__
3*7f2fe78bSCy Schubert #define __KADM_RPC_H__
4*7f2fe78bSCy Schubert 
5*7f2fe78bSCy Schubert #include <gssrpc/types.h>
6*7f2fe78bSCy Schubert 
7*7f2fe78bSCy Schubert #include	<krb5.h>
8*7f2fe78bSCy Schubert #include	<kadm5/admin.h>
9*7f2fe78bSCy Schubert 
10*7f2fe78bSCy Schubert struct cprinc_arg {
11*7f2fe78bSCy Schubert 	krb5_ui_4 api_version;
12*7f2fe78bSCy Schubert 	kadm5_principal_ent_rec rec;
13*7f2fe78bSCy Schubert 	long mask;
14*7f2fe78bSCy Schubert 	char *passwd;
15*7f2fe78bSCy Schubert };
16*7f2fe78bSCy Schubert typedef struct cprinc_arg cprinc_arg;
17*7f2fe78bSCy Schubert 
18*7f2fe78bSCy Schubert struct cprinc3_arg {
19*7f2fe78bSCy Schubert 	krb5_ui_4 api_version;
20*7f2fe78bSCy Schubert 	kadm5_principal_ent_rec rec;
21*7f2fe78bSCy Schubert 	long mask;
22*7f2fe78bSCy Schubert 	int n_ks_tuple;
23*7f2fe78bSCy Schubert 	krb5_key_salt_tuple *ks_tuple;
24*7f2fe78bSCy Schubert 	char *passwd;
25*7f2fe78bSCy Schubert };
26*7f2fe78bSCy Schubert typedef struct cprinc3_arg cprinc3_arg;
27*7f2fe78bSCy Schubert 
28*7f2fe78bSCy Schubert struct generic_ret {
29*7f2fe78bSCy Schubert 	krb5_ui_4 api_version;
30*7f2fe78bSCy Schubert 	kadm5_ret_t code;
31*7f2fe78bSCy Schubert };
32*7f2fe78bSCy Schubert typedef struct generic_ret generic_ret;
33*7f2fe78bSCy Schubert 
34*7f2fe78bSCy Schubert struct dprinc_arg {
35*7f2fe78bSCy Schubert 	krb5_ui_4 api_version;
36*7f2fe78bSCy Schubert 	krb5_principal princ;
37*7f2fe78bSCy Schubert };
38*7f2fe78bSCy Schubert typedef struct dprinc_arg dprinc_arg;
39*7f2fe78bSCy Schubert 
40*7f2fe78bSCy Schubert struct mprinc_arg {
41*7f2fe78bSCy Schubert 	krb5_ui_4 api_version;
42*7f2fe78bSCy Schubert 	kadm5_principal_ent_rec rec;
43*7f2fe78bSCy Schubert 	long mask;
44*7f2fe78bSCy Schubert };
45*7f2fe78bSCy Schubert typedef struct mprinc_arg mprinc_arg;
46*7f2fe78bSCy Schubert 
47*7f2fe78bSCy Schubert struct rprinc_arg {
48*7f2fe78bSCy Schubert 	krb5_ui_4 api_version;
49*7f2fe78bSCy Schubert 	krb5_principal src;
50*7f2fe78bSCy Schubert 	krb5_principal dest;
51*7f2fe78bSCy Schubert };
52*7f2fe78bSCy Schubert typedef struct rprinc_arg rprinc_arg;
53*7f2fe78bSCy Schubert 
54*7f2fe78bSCy Schubert struct gprincs_arg {
55*7f2fe78bSCy Schubert 	krb5_ui_4 api_version;
56*7f2fe78bSCy Schubert 	char *exp;
57*7f2fe78bSCy Schubert };
58*7f2fe78bSCy Schubert typedef struct gprincs_arg gprincs_arg;
59*7f2fe78bSCy Schubert 
60*7f2fe78bSCy Schubert struct gprincs_ret {
61*7f2fe78bSCy Schubert 	krb5_ui_4 api_version;
62*7f2fe78bSCy Schubert 	kadm5_ret_t code;
63*7f2fe78bSCy Schubert 	char **princs;
64*7f2fe78bSCy Schubert 	int count;
65*7f2fe78bSCy Schubert };
66*7f2fe78bSCy Schubert typedef struct gprincs_ret gprincs_ret;
67*7f2fe78bSCy Schubert 
68*7f2fe78bSCy Schubert struct chpass_arg {
69*7f2fe78bSCy Schubert 	krb5_ui_4 api_version;
70*7f2fe78bSCy Schubert 	krb5_principal princ;
71*7f2fe78bSCy Schubert 	char *pass;
72*7f2fe78bSCy Schubert };
73*7f2fe78bSCy Schubert typedef struct chpass_arg chpass_arg;
74*7f2fe78bSCy Schubert 
75*7f2fe78bSCy Schubert struct chpass3_arg {
76*7f2fe78bSCy Schubert 	krb5_ui_4 api_version;
77*7f2fe78bSCy Schubert 	krb5_principal princ;
78*7f2fe78bSCy Schubert 	krb5_boolean keepold;
79*7f2fe78bSCy Schubert 	int n_ks_tuple;
80*7f2fe78bSCy Schubert 	krb5_key_salt_tuple *ks_tuple;
81*7f2fe78bSCy Schubert 	char *pass;
82*7f2fe78bSCy Schubert };
83*7f2fe78bSCy Schubert typedef struct chpass3_arg chpass3_arg;
84*7f2fe78bSCy Schubert 
85*7f2fe78bSCy Schubert struct setkey_arg {
86*7f2fe78bSCy Schubert 	krb5_ui_4 api_version;
87*7f2fe78bSCy Schubert 	krb5_principal princ;
88*7f2fe78bSCy Schubert 	krb5_keyblock *keyblocks;
89*7f2fe78bSCy Schubert 	int n_keys;
90*7f2fe78bSCy Schubert };
91*7f2fe78bSCy Schubert typedef struct setkey_arg setkey_arg;
92*7f2fe78bSCy Schubert 
93*7f2fe78bSCy Schubert struct setkey3_arg {
94*7f2fe78bSCy Schubert 	krb5_ui_4 api_version;
95*7f2fe78bSCy Schubert 	krb5_principal princ;
96*7f2fe78bSCy Schubert 	krb5_boolean keepold;
97*7f2fe78bSCy Schubert 	int n_ks_tuple;
98*7f2fe78bSCy Schubert 	krb5_key_salt_tuple *ks_tuple;
99*7f2fe78bSCy Schubert 	krb5_keyblock *keyblocks;
100*7f2fe78bSCy Schubert 	int n_keys;
101*7f2fe78bSCy Schubert };
102*7f2fe78bSCy Schubert typedef struct setkey3_arg setkey3_arg;
103*7f2fe78bSCy Schubert 
104*7f2fe78bSCy Schubert struct setkey4_arg {
105*7f2fe78bSCy Schubert 	krb5_ui_4 api_version;
106*7f2fe78bSCy Schubert 	krb5_principal princ;
107*7f2fe78bSCy Schubert 	krb5_boolean keepold;
108*7f2fe78bSCy Schubert 	kadm5_key_data *key_data;
109*7f2fe78bSCy Schubert 	int n_key_data;
110*7f2fe78bSCy Schubert };
111*7f2fe78bSCy Schubert typedef struct setkey4_arg setkey4_arg;
112*7f2fe78bSCy Schubert 
113*7f2fe78bSCy Schubert struct chrand_arg {
114*7f2fe78bSCy Schubert 	krb5_ui_4 api_version;
115*7f2fe78bSCy Schubert 	krb5_principal princ;
116*7f2fe78bSCy Schubert };
117*7f2fe78bSCy Schubert typedef struct chrand_arg chrand_arg;
118*7f2fe78bSCy Schubert 
119*7f2fe78bSCy Schubert struct chrand3_arg {
120*7f2fe78bSCy Schubert 	krb5_ui_4 api_version;
121*7f2fe78bSCy Schubert 	krb5_principal princ;
122*7f2fe78bSCy Schubert 	krb5_boolean keepold;
123*7f2fe78bSCy Schubert 	int n_ks_tuple;
124*7f2fe78bSCy Schubert 	krb5_key_salt_tuple *ks_tuple;
125*7f2fe78bSCy Schubert };
126*7f2fe78bSCy Schubert typedef struct chrand3_arg chrand3_arg;
127*7f2fe78bSCy Schubert 
128*7f2fe78bSCy Schubert struct chrand_ret {
129*7f2fe78bSCy Schubert 	krb5_ui_4 api_version;
130*7f2fe78bSCy Schubert 	kadm5_ret_t code;
131*7f2fe78bSCy Schubert 	krb5_keyblock key;
132*7f2fe78bSCy Schubert 	krb5_keyblock *keys;
133*7f2fe78bSCy Schubert 	int n_keys;
134*7f2fe78bSCy Schubert };
135*7f2fe78bSCy Schubert typedef struct chrand_ret chrand_ret;
136*7f2fe78bSCy Schubert 
137*7f2fe78bSCy Schubert struct gprinc_arg {
138*7f2fe78bSCy Schubert 	krb5_ui_4 api_version;
139*7f2fe78bSCy Schubert 	krb5_principal princ;
140*7f2fe78bSCy Schubert 	long mask;
141*7f2fe78bSCy Schubert };
142*7f2fe78bSCy Schubert typedef struct gprinc_arg gprinc_arg;
143*7f2fe78bSCy Schubert 
144*7f2fe78bSCy Schubert struct gprinc_ret {
145*7f2fe78bSCy Schubert 	krb5_ui_4 api_version;
146*7f2fe78bSCy Schubert 	kadm5_ret_t code;
147*7f2fe78bSCy Schubert 	kadm5_principal_ent_rec rec;
148*7f2fe78bSCy Schubert };
149*7f2fe78bSCy Schubert typedef struct gprinc_ret gprinc_ret;
150*7f2fe78bSCy Schubert 
151*7f2fe78bSCy Schubert struct cpol_arg {
152*7f2fe78bSCy Schubert 	krb5_ui_4 api_version;
153*7f2fe78bSCy Schubert 	kadm5_policy_ent_rec rec;
154*7f2fe78bSCy Schubert 	long mask;
155*7f2fe78bSCy Schubert };
156*7f2fe78bSCy Schubert typedef struct cpol_arg cpol_arg;
157*7f2fe78bSCy Schubert 
158*7f2fe78bSCy Schubert struct dpol_arg {
159*7f2fe78bSCy Schubert 	krb5_ui_4 api_version;
160*7f2fe78bSCy Schubert 	char *name;
161*7f2fe78bSCy Schubert };
162*7f2fe78bSCy Schubert typedef struct dpol_arg dpol_arg;
163*7f2fe78bSCy Schubert 
164*7f2fe78bSCy Schubert struct mpol_arg {
165*7f2fe78bSCy Schubert 	krb5_ui_4 api_version;
166*7f2fe78bSCy Schubert 	kadm5_policy_ent_rec rec;
167*7f2fe78bSCy Schubert 	long mask;
168*7f2fe78bSCy Schubert };
169*7f2fe78bSCy Schubert typedef struct mpol_arg mpol_arg;
170*7f2fe78bSCy Schubert 
171*7f2fe78bSCy Schubert struct gpol_arg {
172*7f2fe78bSCy Schubert 	krb5_ui_4 api_version;
173*7f2fe78bSCy Schubert 	char *name;
174*7f2fe78bSCy Schubert };
175*7f2fe78bSCy Schubert typedef struct gpol_arg gpol_arg;
176*7f2fe78bSCy Schubert 
177*7f2fe78bSCy Schubert struct gpol_ret {
178*7f2fe78bSCy Schubert 	krb5_ui_4 api_version;
179*7f2fe78bSCy Schubert 	kadm5_ret_t code;
180*7f2fe78bSCy Schubert 	kadm5_policy_ent_rec rec;
181*7f2fe78bSCy Schubert };
182*7f2fe78bSCy Schubert typedef struct gpol_ret gpol_ret;
183*7f2fe78bSCy Schubert 
184*7f2fe78bSCy Schubert struct gpols_arg {
185*7f2fe78bSCy Schubert 	krb5_ui_4 api_version;
186*7f2fe78bSCy Schubert 	char *exp;
187*7f2fe78bSCy Schubert };
188*7f2fe78bSCy Schubert typedef struct gpols_arg gpols_arg;
189*7f2fe78bSCy Schubert 
190*7f2fe78bSCy Schubert struct gpols_ret {
191*7f2fe78bSCy Schubert 	krb5_ui_4 api_version;
192*7f2fe78bSCy Schubert 	kadm5_ret_t code;
193*7f2fe78bSCy Schubert 	char **pols;
194*7f2fe78bSCy Schubert 	int count;
195*7f2fe78bSCy Schubert };
196*7f2fe78bSCy Schubert typedef struct gpols_ret gpols_ret;
197*7f2fe78bSCy Schubert 
198*7f2fe78bSCy Schubert struct getprivs_ret {
199*7f2fe78bSCy Schubert 	krb5_ui_4 api_version;
200*7f2fe78bSCy Schubert 	kadm5_ret_t code;
201*7f2fe78bSCy Schubert 	long privs;
202*7f2fe78bSCy Schubert };
203*7f2fe78bSCy Schubert typedef struct getprivs_ret getprivs_ret;
204*7f2fe78bSCy Schubert 
205*7f2fe78bSCy Schubert struct purgekeys_arg {
206*7f2fe78bSCy Schubert 	krb5_ui_4 api_version;
207*7f2fe78bSCy Schubert 	krb5_principal princ;
208*7f2fe78bSCy Schubert 	int keepkvno;
209*7f2fe78bSCy Schubert };
210*7f2fe78bSCy Schubert typedef struct purgekeys_arg purgekeys_arg;
211*7f2fe78bSCy Schubert 
212*7f2fe78bSCy Schubert struct gstrings_arg {
213*7f2fe78bSCy Schubert 	krb5_ui_4 api_version;
214*7f2fe78bSCy Schubert 	krb5_principal princ;
215*7f2fe78bSCy Schubert };
216*7f2fe78bSCy Schubert typedef struct gstrings_arg gstrings_arg;
217*7f2fe78bSCy Schubert 
218*7f2fe78bSCy Schubert struct gstrings_ret {
219*7f2fe78bSCy Schubert 	krb5_ui_4 api_version;
220*7f2fe78bSCy Schubert 	kadm5_ret_t code;
221*7f2fe78bSCy Schubert 	krb5_string_attr *strings;
222*7f2fe78bSCy Schubert 	int count;
223*7f2fe78bSCy Schubert };
224*7f2fe78bSCy Schubert typedef struct gstrings_ret gstrings_ret;
225*7f2fe78bSCy Schubert 
226*7f2fe78bSCy Schubert struct sstring_arg {
227*7f2fe78bSCy Schubert 	krb5_ui_4 api_version;
228*7f2fe78bSCy Schubert 	krb5_principal princ;
229*7f2fe78bSCy Schubert 	char *key;
230*7f2fe78bSCy Schubert 	char *value;
231*7f2fe78bSCy Schubert };
232*7f2fe78bSCy Schubert typedef struct sstring_arg sstring_arg;
233*7f2fe78bSCy Schubert 
234*7f2fe78bSCy Schubert struct getpkeys_arg {
235*7f2fe78bSCy Schubert 	krb5_ui_4 api_version;
236*7f2fe78bSCy Schubert 	krb5_principal princ;
237*7f2fe78bSCy Schubert 	krb5_kvno kvno;
238*7f2fe78bSCy Schubert };
239*7f2fe78bSCy Schubert typedef struct getpkeys_arg getpkeys_arg;
240*7f2fe78bSCy Schubert 
241*7f2fe78bSCy Schubert struct getpkeys_ret {
242*7f2fe78bSCy Schubert 	krb5_ui_4 api_version;
243*7f2fe78bSCy Schubert 	kadm5_ret_t code;
244*7f2fe78bSCy Schubert 	kadm5_key_data *key_data;
245*7f2fe78bSCy Schubert 	int n_key_data;
246*7f2fe78bSCy Schubert };
247*7f2fe78bSCy Schubert typedef struct getpkeys_ret getpkeys_ret;
248*7f2fe78bSCy Schubert 
249*7f2fe78bSCy Schubert #define KADM 2112
250*7f2fe78bSCy Schubert #define KADMVERS 2
251*7f2fe78bSCy Schubert #define CREATE_PRINCIPAL 1
252*7f2fe78bSCy Schubert extern  enum clnt_stat create_principal_2(cprinc_arg *, generic_ret *,
253*7f2fe78bSCy Schubert 					  CLIENT *);
254*7f2fe78bSCy Schubert extern  bool_t create_principal_2_svc(cprinc_arg *, generic_ret *,
255*7f2fe78bSCy Schubert 				      struct svc_req *);
256*7f2fe78bSCy Schubert #define DELETE_PRINCIPAL 2
257*7f2fe78bSCy Schubert extern  enum clnt_stat delete_principal_2(dprinc_arg *, generic_ret *,
258*7f2fe78bSCy Schubert 					  CLIENT *);
259*7f2fe78bSCy Schubert extern  bool_t delete_principal_2_svc(dprinc_arg *, generic_ret *,
260*7f2fe78bSCy Schubert 				      struct svc_req *);
261*7f2fe78bSCy Schubert #define MODIFY_PRINCIPAL 3
262*7f2fe78bSCy Schubert extern  enum clnt_stat modify_principal_2(mprinc_arg *, generic_ret *,
263*7f2fe78bSCy Schubert 					  CLIENT *);
264*7f2fe78bSCy Schubert extern  bool_t modify_principal_2_svc(mprinc_arg *, generic_ret *,
265*7f2fe78bSCy Schubert 				      struct svc_req *);
266*7f2fe78bSCy Schubert #define RENAME_PRINCIPAL 4
267*7f2fe78bSCy Schubert extern  enum clnt_stat rename_principal_2(rprinc_arg *, generic_ret *,
268*7f2fe78bSCy Schubert 					  CLIENT *);
269*7f2fe78bSCy Schubert extern  bool_t rename_principal_2_svc(rprinc_arg *, generic_ret *,
270*7f2fe78bSCy Schubert 				      struct svc_req *);
271*7f2fe78bSCy Schubert #define GET_PRINCIPAL 5
272*7f2fe78bSCy Schubert extern  enum clnt_stat get_principal_2(gprinc_arg *, gprinc_ret *, CLIENT *);
273*7f2fe78bSCy Schubert extern  bool_t get_principal_2_svc(gprinc_arg *, gprinc_ret *,
274*7f2fe78bSCy Schubert 				   struct svc_req *);
275*7f2fe78bSCy Schubert #define CHPASS_PRINCIPAL 6
276*7f2fe78bSCy Schubert extern  enum clnt_stat chpass_principal_2(chpass_arg *, generic_ret *,
277*7f2fe78bSCy Schubert 					  CLIENT *);
278*7f2fe78bSCy Schubert extern  bool_t chpass_principal_2_svc(chpass_arg *, generic_ret *,
279*7f2fe78bSCy Schubert 				      struct svc_req *);
280*7f2fe78bSCy Schubert #define CHRAND_PRINCIPAL 7
281*7f2fe78bSCy Schubert extern  enum clnt_stat chrand_principal_2(chrand_arg *, chrand_ret *,
282*7f2fe78bSCy Schubert 					  CLIENT *);
283*7f2fe78bSCy Schubert extern  bool_t chrand_principal_2_svc(chrand_arg *, chrand_ret *,
284*7f2fe78bSCy Schubert 				      struct svc_req *);
285*7f2fe78bSCy Schubert #define CREATE_POLICY 8
286*7f2fe78bSCy Schubert extern  enum clnt_stat create_policy_2(cpol_arg *, generic_ret *, CLIENT *);
287*7f2fe78bSCy Schubert extern  bool_t create_policy_2_svc(cpol_arg *, generic_ret *,
288*7f2fe78bSCy Schubert 				   struct svc_req *);
289*7f2fe78bSCy Schubert #define DELETE_POLICY 9
290*7f2fe78bSCy Schubert extern  enum clnt_stat delete_policy_2(dpol_arg *, generic_ret *, CLIENT *);
291*7f2fe78bSCy Schubert extern  bool_t delete_policy_2_svc(dpol_arg *, generic_ret *,
292*7f2fe78bSCy Schubert 				   struct svc_req *);
293*7f2fe78bSCy Schubert #define MODIFY_POLICY 10
294*7f2fe78bSCy Schubert extern  enum clnt_stat modify_policy_2(mpol_arg *, generic_ret *, CLIENT *);
295*7f2fe78bSCy Schubert extern  bool_t modify_policy_2_svc(mpol_arg *, generic_ret *,
296*7f2fe78bSCy Schubert 				   struct svc_req *);
297*7f2fe78bSCy Schubert #define GET_POLICY 11
298*7f2fe78bSCy Schubert extern  enum clnt_stat get_policy_2(gpol_arg *, gpol_ret *, CLIENT *);
299*7f2fe78bSCy Schubert extern  bool_t get_policy_2_svc(gpol_arg *, gpol_ret *, struct svc_req *);
300*7f2fe78bSCy Schubert #define GET_PRIVS 12
301*7f2fe78bSCy Schubert extern  enum clnt_stat get_privs_2(void *, getprivs_ret *, CLIENT *);
302*7f2fe78bSCy Schubert extern  bool_t get_privs_2_svc(krb5_ui_4 *, getprivs_ret *, struct svc_req *);
303*7f2fe78bSCy Schubert #define INIT 13
304*7f2fe78bSCy Schubert extern  enum clnt_stat init_2(void *, generic_ret *, CLIENT *);
305*7f2fe78bSCy Schubert extern  bool_t init_2_svc(krb5_ui_4 *, generic_ret *, struct svc_req *);
306*7f2fe78bSCy Schubert #define GET_PRINCS 14
307*7f2fe78bSCy Schubert extern  enum clnt_stat get_princs_2(gprincs_arg *, gprincs_ret *, CLIENT *);
308*7f2fe78bSCy Schubert extern  bool_t get_princs_2_svc(gprincs_arg *, gprincs_ret *,
309*7f2fe78bSCy Schubert 				struct svc_req *);
310*7f2fe78bSCy Schubert #define GET_POLS 15
311*7f2fe78bSCy Schubert extern  enum clnt_stat get_pols_2(gpols_arg *, gpols_ret *, CLIENT *);
312*7f2fe78bSCy Schubert extern  bool_t get_pols_2_svc(gpols_arg *, gpols_ret *, struct svc_req *);
313*7f2fe78bSCy Schubert #define SETKEY_PRINCIPAL 16
314*7f2fe78bSCy Schubert extern  enum clnt_stat setkey_principal_2(setkey_arg *, generic_ret *,
315*7f2fe78bSCy Schubert 					  CLIENT *);
316*7f2fe78bSCy Schubert extern  bool_t setkey_principal_2_svc(setkey_arg *, generic_ret *,
317*7f2fe78bSCy Schubert 				      struct svc_req *);
318*7f2fe78bSCy Schubert 
319*7f2fe78bSCy Schubert /* 17 was SETV4KEY_PRINCIPAL (removed in 1.18). */
320*7f2fe78bSCy Schubert 
321*7f2fe78bSCy Schubert #define CREATE_PRINCIPAL3 18
322*7f2fe78bSCy Schubert extern  enum clnt_stat create_principal3_2(cprinc3_arg *, generic_ret *,
323*7f2fe78bSCy Schubert 					   CLIENT *);
324*7f2fe78bSCy Schubert extern  bool_t create_principal3_2_svc(cprinc3_arg *, generic_ret *,
325*7f2fe78bSCy Schubert 				       struct svc_req *);
326*7f2fe78bSCy Schubert #define CHPASS_PRINCIPAL3 19
327*7f2fe78bSCy Schubert extern  enum clnt_stat chpass_principal3_2(chpass3_arg *, generic_ret *,
328*7f2fe78bSCy Schubert 					   CLIENT *);
329*7f2fe78bSCy Schubert extern  bool_t chpass_principal3_2_svc(chpass3_arg *, generic_ret *,
330*7f2fe78bSCy Schubert 				       struct svc_req *);
331*7f2fe78bSCy Schubert #define CHRAND_PRINCIPAL3 20
332*7f2fe78bSCy Schubert extern  enum clnt_stat chrand_principal3_2(chrand3_arg *, chrand_ret *,
333*7f2fe78bSCy Schubert 					   CLIENT *);
334*7f2fe78bSCy Schubert extern  bool_t chrand_principal3_2_svc(chrand3_arg *, chrand_ret *,
335*7f2fe78bSCy Schubert 				       struct svc_req *);
336*7f2fe78bSCy Schubert #define SETKEY_PRINCIPAL3 21
337*7f2fe78bSCy Schubert extern  enum clnt_stat setkey_principal3_2(setkey3_arg *, generic_ret *,
338*7f2fe78bSCy Schubert 					   CLIENT *);
339*7f2fe78bSCy Schubert extern  bool_t setkey_principal3_2_svc(setkey3_arg *, generic_ret *,
340*7f2fe78bSCy Schubert 				       struct svc_req *);
341*7f2fe78bSCy Schubert #define PURGEKEYS 22
342*7f2fe78bSCy Schubert extern  enum clnt_stat purgekeys_2(purgekeys_arg *, generic_ret *, CLIENT *);
343*7f2fe78bSCy Schubert extern  bool_t purgekeys_2_svc(purgekeys_arg *, generic_ret *,
344*7f2fe78bSCy Schubert 			       struct svc_req *);
345*7f2fe78bSCy Schubert #define GET_STRINGS 23
346*7f2fe78bSCy Schubert extern  enum clnt_stat get_strings_2(gstrings_arg *, gstrings_ret *, CLIENT *);
347*7f2fe78bSCy Schubert extern  bool_t get_strings_2_svc(gstrings_arg *, gstrings_ret *,
348*7f2fe78bSCy Schubert 				 struct svc_req *);
349*7f2fe78bSCy Schubert #define SET_STRING 24
350*7f2fe78bSCy Schubert extern  enum clnt_stat set_string_2(sstring_arg *, generic_ret *, CLIENT *);
351*7f2fe78bSCy Schubert extern  bool_t set_string_2_svc(sstring_arg *, generic_ret *,
352*7f2fe78bSCy Schubert 				struct svc_req *);
353*7f2fe78bSCy Schubert #define SETKEY_PRINCIPAL4 25
354*7f2fe78bSCy Schubert extern  enum clnt_stat setkey_principal4_2(setkey4_arg *, generic_ret *,
355*7f2fe78bSCy Schubert 					   CLIENT *);
356*7f2fe78bSCy Schubert extern  bool_t setkey_principal4_2_svc(setkey4_arg *, generic_ret *,
357*7f2fe78bSCy Schubert 				       struct svc_req *);
358*7f2fe78bSCy Schubert #define EXTRACT_KEYS 26
359*7f2fe78bSCy Schubert extern enum clnt_stat get_principal_keys_2(getpkeys_arg *, getpkeys_ret *,
360*7f2fe78bSCy Schubert 					   CLIENT *);
361*7f2fe78bSCy Schubert extern  bool_t get_principal_keys_2_svc(getpkeys_arg *, getpkeys_ret *,
362*7f2fe78bSCy Schubert 					struct svc_req *);
363*7f2fe78bSCy Schubert 
364*7f2fe78bSCy Schubert extern bool_t xdr_cprinc_arg ();
365*7f2fe78bSCy Schubert extern bool_t xdr_cprinc3_arg ();
366*7f2fe78bSCy Schubert extern bool_t xdr_generic_ret ();
367*7f2fe78bSCy Schubert extern bool_t xdr_dprinc_arg ();
368*7f2fe78bSCy Schubert extern bool_t xdr_mprinc_arg ();
369*7f2fe78bSCy Schubert extern bool_t xdr_rprinc_arg ();
370*7f2fe78bSCy Schubert extern bool_t xdr_gprincs_arg ();
371*7f2fe78bSCy Schubert extern bool_t xdr_gprincs_ret ();
372*7f2fe78bSCy Schubert extern bool_t xdr_chpass_arg ();
373*7f2fe78bSCy Schubert extern bool_t xdr_chpass3_arg ();
374*7f2fe78bSCy Schubert extern bool_t xdr_setkey_arg ();
375*7f2fe78bSCy Schubert extern bool_t xdr_setkey3_arg ();
376*7f2fe78bSCy Schubert extern bool_t xdr_setkey4_arg ();
377*7f2fe78bSCy Schubert extern bool_t xdr_chrand_arg ();
378*7f2fe78bSCy Schubert extern bool_t xdr_chrand3_arg ();
379*7f2fe78bSCy Schubert extern bool_t xdr_chrand_ret ();
380*7f2fe78bSCy Schubert extern bool_t xdr_gprinc_arg ();
381*7f2fe78bSCy Schubert extern bool_t xdr_gprinc_ret ();
382*7f2fe78bSCy Schubert extern bool_t xdr_kadm5_ret_t ();
383*7f2fe78bSCy Schubert extern bool_t xdr_kadm5_principal_ent_rec ();
384*7f2fe78bSCy Schubert extern bool_t xdr_kadm5_policy_ent_rec ();
385*7f2fe78bSCy Schubert extern bool_t	xdr_krb5_keyblock ();
386*7f2fe78bSCy Schubert extern bool_t	xdr_krb5_principal ();
387*7f2fe78bSCy Schubert extern bool_t	xdr_krb5_enctype ();
388*7f2fe78bSCy Schubert extern bool_t	xdr_krb5_octet ();
389*7f2fe78bSCy Schubert extern bool_t	xdr_krb5_int32 ();
390*7f2fe78bSCy Schubert extern bool_t	xdr_u_int32 ();
391*7f2fe78bSCy Schubert extern bool_t xdr_cpol_arg ();
392*7f2fe78bSCy Schubert extern bool_t xdr_dpol_arg ();
393*7f2fe78bSCy Schubert extern bool_t xdr_mpol_arg ();
394*7f2fe78bSCy Schubert extern bool_t xdr_gpol_arg ();
395*7f2fe78bSCy Schubert extern bool_t xdr_gpol_ret ();
396*7f2fe78bSCy Schubert extern bool_t xdr_gpols_arg ();
397*7f2fe78bSCy Schubert extern bool_t xdr_gpols_ret ();
398*7f2fe78bSCy Schubert extern bool_t xdr_getprivs_ret ();
399*7f2fe78bSCy Schubert extern bool_t xdr_purgekeys_arg ();
400*7f2fe78bSCy Schubert extern bool_t xdr_gstrings_arg ();
401*7f2fe78bSCy Schubert extern bool_t xdr_gstrings_ret ();
402*7f2fe78bSCy Schubert extern bool_t xdr_sstring_arg ();
403*7f2fe78bSCy Schubert extern bool_t xdr_krb5_string_attr ();
404*7f2fe78bSCy Schubert extern bool_t xdr_kadm5_key_data ();
405*7f2fe78bSCy Schubert extern bool_t xdr_getpkeys_arg ();
406*7f2fe78bSCy Schubert extern bool_t xdr_getpkeys_ret ();
407*7f2fe78bSCy Schubert 
408*7f2fe78bSCy Schubert #endif /* __KADM_RPC_H__ */
409