pull up r25115 from trunk
[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 chrand_arg {
112         krb5_ui_4 api_version;
113         krb5_principal princ;
114 };
115 typedef struct chrand_arg chrand_arg;
116
117 struct chrand3_arg {
118         krb5_ui_4 api_version;
119         krb5_principal princ;
120         krb5_boolean keepold;
121         int n_ks_tuple;
122         krb5_key_salt_tuple *ks_tuple;
123 };
124 typedef struct chrand3_arg chrand3_arg;
125
126 struct chrand_ret {
127         krb5_ui_4 api_version;
128         kadm5_ret_t code;
129         krb5_keyblock key;
130         krb5_keyblock *keys;
131         int n_keys;
132 };
133 typedef struct chrand_ret chrand_ret;
134
135 struct gprinc_arg {
136         krb5_ui_4 api_version;
137         krb5_principal princ;
138         long mask;
139 };
140 typedef struct gprinc_arg gprinc_arg;
141
142 struct gprinc_ret {
143         krb5_ui_4 api_version;
144         kadm5_ret_t code;
145         kadm5_principal_ent_rec rec;
146 };
147 typedef struct gprinc_ret gprinc_ret;
148
149 struct cpol_arg {
150         krb5_ui_4 api_version;
151         kadm5_policy_ent_rec rec;
152         long mask;
153 };
154 typedef struct cpol_arg cpol_arg;
155
156 struct dpol_arg {
157         krb5_ui_4 api_version;
158         char *name;
159 };
160 typedef struct dpol_arg dpol_arg;
161
162 struct mpol_arg {
163         krb5_ui_4 api_version;
164         kadm5_policy_ent_rec rec;
165         long mask;
166 };
167 typedef struct mpol_arg mpol_arg;
168
169 struct gpol_arg {
170         krb5_ui_4 api_version;
171         char *name;
172 };
173 typedef struct gpol_arg gpol_arg;
174
175 struct gpol_ret {
176         krb5_ui_4 api_version;
177         kadm5_ret_t code;
178         kadm5_policy_ent_rec rec;
179 };
180 typedef struct gpol_ret gpol_ret;
181
182 struct gpols_arg {
183         krb5_ui_4 api_version;
184         char *exp;
185 };
186 typedef struct gpols_arg gpols_arg;
187
188 struct gpols_ret {
189         krb5_ui_4 api_version;
190         kadm5_ret_t code;
191         char **pols;
192         int count;
193 };
194 typedef struct gpols_ret gpols_ret;
195
196 struct getprivs_ret {
197         krb5_ui_4 api_version;
198         kadm5_ret_t code;
199         long privs;
200 };
201 typedef struct getprivs_ret getprivs_ret;
202
203 struct purgekeys_arg {
204         krb5_ui_4 api_version;
205         krb5_principal princ;
206         int keepkvno;
207 };
208 typedef struct purgekeys_arg purgekeys_arg;
209
210 #define KADM 2112
211 #define KADMVERS 2
212 #define CREATE_PRINCIPAL 1
213 extern  generic_ret * create_principal_2(cprinc_arg *, CLIENT *);
214 extern  generic_ret * create_principal_2_svc(cprinc_arg *, struct svc_req *);
215 #define DELETE_PRINCIPAL 2
216 extern  generic_ret * delete_principal_2(dprinc_arg *, CLIENT *);
217 extern  generic_ret * delete_principal_2_svc(dprinc_arg *, struct svc_req *);
218 #define MODIFY_PRINCIPAL 3
219 extern  generic_ret * modify_principal_2(mprinc_arg *, CLIENT *);
220 extern  generic_ret * modify_principal_2_svc(mprinc_arg *, struct svc_req *);
221 #define RENAME_PRINCIPAL 4
222 extern  generic_ret * rename_principal_2(rprinc_arg *, CLIENT *);
223 extern  generic_ret * rename_principal_2_svc(rprinc_arg *, struct svc_req *);
224 #define GET_PRINCIPAL 5
225 extern  gprinc_ret * get_principal_2(gprinc_arg *, CLIENT *);
226 extern  gprinc_ret * get_principal_2_svc(gprinc_arg *, struct svc_req *);
227 #define CHPASS_PRINCIPAL 6
228 extern  generic_ret * chpass_principal_2(chpass_arg *, CLIENT *);
229 extern  generic_ret * chpass_principal_2_svc(chpass_arg *, struct svc_req *);
230 #define CHRAND_PRINCIPAL 7
231 extern  chrand_ret * chrand_principal_2(chrand_arg *, CLIENT *);
232 extern  chrand_ret * chrand_principal_2_svc(chrand_arg *, struct svc_req *);
233 #define CREATE_POLICY 8
234 extern  generic_ret * create_policy_2(cpol_arg *, CLIENT *);
235 extern  generic_ret * create_policy_2_svc(cpol_arg *, struct svc_req *);
236 #define DELETE_POLICY 9
237 extern  generic_ret * delete_policy_2(dpol_arg *, CLIENT *);
238 extern  generic_ret * delete_policy_2_svc(dpol_arg *, struct svc_req *);
239 #define MODIFY_POLICY 10
240 extern  generic_ret * modify_policy_2(mpol_arg *, CLIENT *);
241 extern  generic_ret * modify_policy_2_svc(mpol_arg *, struct svc_req *);
242 #define GET_POLICY 11
243 extern  gpol_ret * get_policy_2(gpol_arg *, CLIENT *);
244 extern  gpol_ret * get_policy_2_svc(gpol_arg *, struct svc_req *);
245 #define GET_PRIVS 12
246 extern  getprivs_ret * get_privs_2(void *, CLIENT *);
247 extern  getprivs_ret * get_privs_2_svc(krb5_ui_4 *, struct svc_req *);
248 #define INIT 13
249 extern  generic_ret * init_2(void *, CLIENT *);
250 extern  generic_ret * init_2_svc(krb5_ui_4 *, struct svc_req *);
251 #define GET_PRINCS 14
252 extern  gprincs_ret * get_princs_2(gprincs_arg *, CLIENT *);
253 extern  gprincs_ret * get_princs_2_svc(gprincs_arg *, struct svc_req *);
254 #define GET_POLS 15
255 extern  gpols_ret * get_pols_2(gpols_arg *, CLIENT *);
256 extern  gpols_ret * get_pols_2_svc(gpols_arg *, struct svc_req *);
257 #define SETKEY_PRINCIPAL 16
258 extern  generic_ret * setkey_principal_2(setkey_arg *, CLIENT *);
259 extern  generic_ret * setkey_principal_2_svc(setkey_arg *, struct svc_req *);
260 #define SETV4KEY_PRINCIPAL 17
261 extern  generic_ret * setv4key_principal_2(setv4key_arg *, CLIENT *);
262 extern  generic_ret * setv4key_principal_2_svc(setv4key_arg *, struct svc_req *);
263 #define CREATE_PRINCIPAL3 18
264 extern  generic_ret * create_principal3_2(cprinc3_arg *, CLIENT *);
265 extern  generic_ret * create_principal3_2_svc(cprinc3_arg *, struct svc_req *);
266 #define CHPASS_PRINCIPAL3 19
267 extern  generic_ret * chpass_principal3_2(chpass3_arg *, CLIENT *);
268 extern  generic_ret * chpass_principal3_2_svc(chpass3_arg *, struct svc_req *);
269 #define CHRAND_PRINCIPAL3 20
270 extern  chrand_ret * chrand_principal3_2(chrand3_arg *, CLIENT *);
271 extern  chrand_ret * chrand_principal3_2_svc(chrand3_arg *, struct svc_req *);
272 #define SETKEY_PRINCIPAL3 21
273 extern  generic_ret * setkey_principal3_2(setkey3_arg *, CLIENT *);
274 extern  generic_ret * setkey_principal3_2_svc(setkey3_arg *, struct svc_req *);
275 #define PURGEKEYS 22
276 extern  generic_ret * purgekeys_2(purgekeys_arg *, CLIENT *);
277 extern  generic_ret * purgekeys_2_svc(purgekeys_arg *, struct svc_req *);
278
279 extern bool_t xdr_cprinc_arg ();
280 extern bool_t xdr_cprinc3_arg ();
281 extern bool_t xdr_generic_ret ();
282 extern bool_t xdr_dprinc_arg ();
283 extern bool_t xdr_mprinc_arg ();
284 extern bool_t xdr_rprinc_arg ();
285 extern bool_t xdr_gprincs_arg ();
286 extern bool_t xdr_gprincs_ret ();
287 extern bool_t xdr_chpass_arg ();
288 extern bool_t xdr_chpass3_arg ();
289 extern bool_t xdr_setv4key_arg ();
290 extern bool_t xdr_setkey_arg ();
291 extern bool_t xdr_setkey3_arg ();
292 extern bool_t xdr_chrand_arg ();
293 extern bool_t xdr_chrand3_arg ();
294 extern bool_t xdr_chrand_ret ();
295 extern bool_t xdr_gprinc_arg ();
296 extern bool_t xdr_gprinc_ret ();
297 extern bool_t xdr_kadm5_ret_t ();
298 extern bool_t xdr_kadm5_principal_ent_rec ();
299 extern bool_t xdr_kadm5_policy_ent_rec ();
300 extern bool_t   xdr_krb5_keyblock ();
301 extern bool_t   xdr_krb5_principal ();
302 extern bool_t   xdr_krb5_enctype ();
303 extern bool_t   xdr_krb5_octet ();
304 extern bool_t   xdr_krb5_int32 ();
305 extern bool_t   xdr_u_int32 ();
306 extern bool_t xdr_cpol_arg ();
307 extern bool_t xdr_dpol_arg ();
308 extern bool_t xdr_mpol_arg ();
309 extern bool_t xdr_gpol_arg ();
310 extern bool_t xdr_gpol_ret ();
311 extern bool_t xdr_gpols_arg ();
312 extern bool_t xdr_gpols_ret ();
313 extern bool_t xdr_getprivs_ret ();
314 extern bool_t xdr_purgekeys_arg ();
315
316
317 #endif /* __KADM_RPC_H__ */