xref: /freebsd/crypto/krb5/src/lib/kadm5/kadm_rpc.h (revision f1c4c3daccbaf3820f0e2224de53df12fc952fcc)
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 setkey_arg {
86 	krb5_ui_4 api_version;
87 	krb5_principal princ;
88 	krb5_keyblock *keyblocks;
89 	int n_keys;
90 };
91 typedef struct setkey_arg setkey_arg;
92 
93 struct setkey3_arg {
94 	krb5_ui_4 api_version;
95 	krb5_principal princ;
96 	krb5_boolean keepold;
97 	int n_ks_tuple;
98 	krb5_key_salt_tuple *ks_tuple;
99 	krb5_keyblock *keyblocks;
100 	int n_keys;
101 };
102 typedef struct setkey3_arg setkey3_arg;
103 
104 struct setkey4_arg {
105 	krb5_ui_4 api_version;
106 	krb5_principal princ;
107 	krb5_boolean keepold;
108 	kadm5_key_data *key_data;
109 	int n_key_data;
110 };
111 typedef struct setkey4_arg setkey4_arg;
112 
113 struct chrand_arg {
114 	krb5_ui_4 api_version;
115 	krb5_principal princ;
116 };
117 typedef struct chrand_arg chrand_arg;
118 
119 struct chrand3_arg {
120 	krb5_ui_4 api_version;
121 	krb5_principal princ;
122 	krb5_boolean keepold;
123 	int n_ks_tuple;
124 	krb5_key_salt_tuple *ks_tuple;
125 };
126 typedef struct chrand3_arg chrand3_arg;
127 
128 struct chrand_ret {
129 	krb5_ui_4 api_version;
130 	kadm5_ret_t code;
131 	krb5_keyblock key;
132 	krb5_keyblock *keys;
133 	int n_keys;
134 };
135 typedef struct chrand_ret chrand_ret;
136 
137 struct gprinc_arg {
138 	krb5_ui_4 api_version;
139 	krb5_principal princ;
140 	long mask;
141 };
142 typedef struct gprinc_arg gprinc_arg;
143 
144 struct gprinc_ret {
145 	krb5_ui_4 api_version;
146 	kadm5_ret_t code;
147 	kadm5_principal_ent_rec rec;
148 };
149 typedef struct gprinc_ret gprinc_ret;
150 
151 struct cpol_arg {
152 	krb5_ui_4 api_version;
153 	kadm5_policy_ent_rec rec;
154 	long mask;
155 };
156 typedef struct cpol_arg cpol_arg;
157 
158 struct dpol_arg {
159 	krb5_ui_4 api_version;
160 	char *name;
161 };
162 typedef struct dpol_arg dpol_arg;
163 
164 struct mpol_arg {
165 	krb5_ui_4 api_version;
166 	kadm5_policy_ent_rec rec;
167 	long mask;
168 };
169 typedef struct mpol_arg mpol_arg;
170 
171 struct gpol_arg {
172 	krb5_ui_4 api_version;
173 	char *name;
174 };
175 typedef struct gpol_arg gpol_arg;
176 
177 struct gpol_ret {
178 	krb5_ui_4 api_version;
179 	kadm5_ret_t code;
180 	kadm5_policy_ent_rec rec;
181 };
182 typedef struct gpol_ret gpol_ret;
183 
184 struct gpols_arg {
185 	krb5_ui_4 api_version;
186 	char *exp;
187 };
188 typedef struct gpols_arg gpols_arg;
189 
190 struct gpols_ret {
191 	krb5_ui_4 api_version;
192 	kadm5_ret_t code;
193 	char **pols;
194 	int count;
195 };
196 typedef struct gpols_ret gpols_ret;
197 
198 struct getprivs_ret {
199 	krb5_ui_4 api_version;
200 	kadm5_ret_t code;
201 	long privs;
202 };
203 typedef struct getprivs_ret getprivs_ret;
204 
205 struct purgekeys_arg {
206 	krb5_ui_4 api_version;
207 	krb5_principal princ;
208 	int keepkvno;
209 };
210 typedef struct purgekeys_arg purgekeys_arg;
211 
212 struct gstrings_arg {
213 	krb5_ui_4 api_version;
214 	krb5_principal princ;
215 };
216 typedef struct gstrings_arg gstrings_arg;
217 
218 struct gstrings_ret {
219 	krb5_ui_4 api_version;
220 	kadm5_ret_t code;
221 	krb5_string_attr *strings;
222 	int count;
223 };
224 typedef struct gstrings_ret gstrings_ret;
225 
226 struct sstring_arg {
227 	krb5_ui_4 api_version;
228 	krb5_principal princ;
229 	char *key;
230 	char *value;
231 };
232 typedef struct sstring_arg sstring_arg;
233 
234 struct getpkeys_arg {
235 	krb5_ui_4 api_version;
236 	krb5_principal princ;
237 	krb5_kvno kvno;
238 };
239 typedef struct getpkeys_arg getpkeys_arg;
240 
241 struct getpkeys_ret {
242 	krb5_ui_4 api_version;
243 	kadm5_ret_t code;
244 	kadm5_key_data *key_data;
245 	int n_key_data;
246 };
247 typedef struct getpkeys_ret getpkeys_ret;
248 
249 struct calias_arg {
250 	krb5_ui_4 api_version;
251 	krb5_principal alias;
252 	krb5_principal target;
253 };
254 typedef struct calias_arg calias_arg;
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 
326 /* 17 was SETV4KEY_PRINCIPAL (removed in 1.18). */
327 
328 #define CREATE_PRINCIPAL3 18
329 extern  enum clnt_stat create_principal3_2(cprinc3_arg *, generic_ret *,
330 					   CLIENT *);
331 extern  bool_t create_principal3_2_svc(cprinc3_arg *, generic_ret *,
332 				       struct svc_req *);
333 #define CHPASS_PRINCIPAL3 19
334 extern  enum clnt_stat chpass_principal3_2(chpass3_arg *, generic_ret *,
335 					   CLIENT *);
336 extern  bool_t chpass_principal3_2_svc(chpass3_arg *, generic_ret *,
337 				       struct svc_req *);
338 #define CHRAND_PRINCIPAL3 20
339 extern  enum clnt_stat chrand_principal3_2(chrand3_arg *, chrand_ret *,
340 					   CLIENT *);
341 extern  bool_t chrand_principal3_2_svc(chrand3_arg *, chrand_ret *,
342 				       struct svc_req *);
343 #define SETKEY_PRINCIPAL3 21
344 extern  enum clnt_stat setkey_principal3_2(setkey3_arg *, generic_ret *,
345 					   CLIENT *);
346 extern  bool_t setkey_principal3_2_svc(setkey3_arg *, generic_ret *,
347 				       struct svc_req *);
348 #define PURGEKEYS 22
349 extern  enum clnt_stat purgekeys_2(purgekeys_arg *, generic_ret *, CLIENT *);
350 extern  bool_t purgekeys_2_svc(purgekeys_arg *, generic_ret *,
351 			       struct svc_req *);
352 #define GET_STRINGS 23
353 extern  enum clnt_stat get_strings_2(gstrings_arg *, gstrings_ret *, CLIENT *);
354 extern  bool_t get_strings_2_svc(gstrings_arg *, gstrings_ret *,
355 				 struct svc_req *);
356 #define SET_STRING 24
357 extern  enum clnt_stat set_string_2(sstring_arg *, generic_ret *, CLIENT *);
358 extern  bool_t set_string_2_svc(sstring_arg *, generic_ret *,
359 				struct svc_req *);
360 #define SETKEY_PRINCIPAL4 25
361 extern  enum clnt_stat setkey_principal4_2(setkey4_arg *, generic_ret *,
362 					   CLIENT *);
363 extern  bool_t setkey_principal4_2_svc(setkey4_arg *, generic_ret *,
364 				       struct svc_req *);
365 #define EXTRACT_KEYS 26
366 extern enum clnt_stat get_principal_keys_2(getpkeys_arg *, getpkeys_ret *,
367 					   CLIENT *);
368 extern  bool_t get_principal_keys_2_svc(getpkeys_arg *, getpkeys_ret *,
369 					struct svc_req *);
370 
371 #define CREATE_ALIAS 27
372 extern enum clnt_stat create_alias_2(calias_arg *, generic_ret *, CLIENT *);
373 extern  bool_t create_alias_2_svc(calias_arg *, generic_ret *,
374 				  struct svc_req *);
375 #endif /* __KADM_RPC_H__ */
376