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