xref: /illumos-gate/usr/src/lib/krb5/kadm5/kadm_rpc.h (revision 55fea89d)
1 /*
2  * WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
3  *
4  *	Openvision retains the copyright to derivative works of
5  *	this source code.  Do *NOT* create a derivative of this
6  *	source code before consulting with your legal department.
7  *	Do *NOT* integrate *ANY* of this source code into another
8  *	product before consulting with your legal department.
9  *
10  *	For further information, read the top-level Openvision
11  *	copyright which is contained in the top-level MIT Kerberos
12  *	copyright.
13  *
14  * WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
15  *
16  */
17 
18 #ifndef __KADM_RPC_H__
19 #define __KADM_RPC_H__
20 
21 #include <rpc/types.h>
22 
23 #include	<kadm5/admin.h>
24 #include	<krb5.h>
25 
26 struct cprinc_arg {
27 	krb5_ui_4 api_version;
28 	kadm5_principal_ent_rec rec;
29 	long mask;
30 	char *passwd;
31 };
32 typedef struct cprinc_arg cprinc_arg;
33 
34 struct cprinc3_arg {
35 	krb5_ui_4 api_version;
36 	kadm5_principal_ent_rec rec;
37 	long mask;
38 	int n_ks_tuple;
39 	krb5_key_salt_tuple *ks_tuple;
40 	char *passwd;
41 };
42 typedef struct cprinc3_arg cprinc3_arg;
43 
44 struct generic_ret {
45 	krb5_ui_4 api_version;
46 	kadm5_ret_t code;
47 };
48 typedef struct generic_ret generic_ret;
49 
50 struct dprinc_arg {
51 	krb5_ui_4 api_version;
52 	krb5_principal princ;
53 };
54 typedef struct dprinc_arg dprinc_arg;
55 
56 struct mprinc_arg {
57 	krb5_ui_4 api_version;
58 	kadm5_principal_ent_rec rec;
59 	long mask;
60 };
61 typedef struct mprinc_arg mprinc_arg;
62 
63 struct rprinc_arg {
64 	krb5_ui_4 api_version;
65 	krb5_principal src;
66 	krb5_principal dest;
67 };
68 typedef struct rprinc_arg rprinc_arg;
69 
70 struct gprincs_arg {
71         krb5_ui_4 api_version;
72 	char *exp;
73 };
74 typedef struct gprincs_arg gprincs_arg;
75 
76 struct gprincs_ret {
77         krb5_ui_4 api_version;
78 	kadm5_ret_t code;
79 	char **princs;
80 	int count;
81 };
82 typedef struct gprincs_ret gprincs_ret;
83 
84 struct chpass_arg {
85 	krb5_ui_4 api_version;
86 	krb5_principal princ;
87 	char *pass;
88 };
89 typedef struct chpass_arg chpass_arg;
90 
91 struct chpass3_arg {
92 	krb5_ui_4 api_version;
93 	krb5_principal princ;
94 	krb5_boolean keepold;
95 	int n_ks_tuple;
96 	krb5_key_salt_tuple *ks_tuple;
97 	char *pass;
98 };
99 typedef struct chpass3_arg chpass3_arg;
100 
101 struct setv4key_arg {
102 	krb5_ui_4 api_version;
103 	krb5_principal princ;
104         krb5_keyblock *keyblock;
105 };
106 typedef struct setv4key_arg setv4key_arg;
107 
108 struct setkey_arg {
109 	krb5_ui_4 api_version;
110 	krb5_principal princ;
111         krb5_keyblock *keyblocks;
112         int n_keys;
113 };
114 typedef struct setkey_arg setkey_arg;
115 
116 struct setkey3_arg {
117 	krb5_ui_4 api_version;
118 	krb5_principal princ;
119 	krb5_boolean keepold;
120 	int n_ks_tuple;
121 	krb5_key_salt_tuple *ks_tuple;
122         krb5_keyblock *keyblocks;
123         int n_keys;
124 };
125 typedef struct setkey3_arg setkey3_arg;
126 
127 struct chrand_arg {
128 	krb5_ui_4 api_version;
129 	krb5_principal princ;
130 };
131 typedef struct chrand_arg chrand_arg;
132 
133 struct chrand3_arg {
134 	krb5_ui_4 api_version;
135 	krb5_principal princ;
136 	krb5_boolean keepold;
137 	int n_ks_tuple;
138 	krb5_key_salt_tuple *ks_tuple;
139 };
140 typedef struct chrand3_arg chrand3_arg;
141 
142 struct chrand_ret {
143 	krb5_ui_4 api_version;
144 	kadm5_ret_t code;
145 	krb5_keyblock key;
146 	krb5_keyblock *keys;
147 	int n_keys;
148 };
149 typedef struct chrand_ret chrand_ret;
150 
151 struct gprinc_arg {
152 	krb5_ui_4 api_version;
153 	krb5_principal princ;
154 	long mask;
155 };
156 typedef struct gprinc_arg gprinc_arg;
157 
158 struct gprinc_ret {
159 	krb5_ui_4 api_version;
160 	kadm5_ret_t code;
161 	kadm5_principal_ent_rec rec;
162 };
163 typedef struct gprinc_ret gprinc_ret;
164 
165 struct cpol_arg {
166 	krb5_ui_4 api_version;
167 	kadm5_policy_ent_rec rec;
168 	long mask;
169 };
170 typedef struct cpol_arg cpol_arg;
171 
172 struct dpol_arg {
173 	krb5_ui_4 api_version;
174 	char *name;
175 };
176 typedef struct dpol_arg dpol_arg;
177 
178 struct mpol_arg {
179 	krb5_ui_4 api_version;
180 	kadm5_policy_ent_rec rec;
181 	long mask;
182 };
183 typedef struct mpol_arg mpol_arg;
184 
185 struct gpol_arg {
186 	krb5_ui_4 api_version;
187 	char *name;
188 };
189 typedef struct gpol_arg gpol_arg;
190 
191 struct gpol_ret {
192 	krb5_ui_4 api_version;
193 	kadm5_ret_t code;
194 	kadm5_policy_ent_rec rec;
195 };
196 typedef struct gpol_ret gpol_ret;
197 
198 struct gpols_arg {
199         krb5_ui_4 api_version;
200 	char *exp;
201 };
202 typedef struct gpols_arg gpols_arg;
203 
204 struct gpols_ret {
205         krb5_ui_4 api_version;
206 	kadm5_ret_t code;
207 	char **pols;
208 	int count;
209 };
210 typedef struct gpols_ret gpols_ret;
211 
212 struct getprivs_ret {
213 	krb5_ui_4 api_version;
214 	kadm5_ret_t code;
215 	long privs;
216 };
217 typedef struct getprivs_ret getprivs_ret;
218 
219 #define KADM 2112
220 #define KADMVERS 2
221 #define CREATE_PRINCIPAL 1
222 extern  generic_ret * create_principal_2(cprinc_arg *, CLIENT *);
223 extern  generic_ret * create_principal_2_svc(cprinc_arg *, struct svc_req *);
224 #define DELETE_PRINCIPAL 2
225 extern  generic_ret * delete_principal_2(dprinc_arg *, CLIENT *);
226 extern  generic_ret * delete_principal_2_svc(dprinc_arg *, struct svc_req *);
227 #define MODIFY_PRINCIPAL 3
228 extern  generic_ret * modify_principal_2(mprinc_arg *, CLIENT *);
229 extern  generic_ret * modify_principal_2_svc(mprinc_arg *, struct svc_req *);
230 #define RENAME_PRINCIPAL 4
231 extern  generic_ret * rename_principal_2(rprinc_arg *, CLIENT *);
232 extern  generic_ret * rename_principal_2_svc(rprinc_arg *, struct svc_req *);
233 #define GET_PRINCIPAL 5
234 extern  gprinc_ret * get_principal_2(gprinc_arg *, CLIENT *);
235 extern  gprinc_ret * get_principal_2_svc(gprinc_arg *, struct svc_req *);
236 #define CHPASS_PRINCIPAL 6
237 extern  generic_ret * chpass_principal_2(chpass_arg *, CLIENT *);
238 extern  generic_ret * chpass_principal_2_svc(chpass_arg *, struct svc_req *);
239 #define CHRAND_PRINCIPAL 7
240 extern  chrand_ret * chrand_principal_2(chrand_arg *, CLIENT *);
241 extern  chrand_ret * chrand_principal_2_svc(chrand_arg *, struct svc_req *);
242 #define CREATE_POLICY 8
243 extern  generic_ret * create_policy_2(cpol_arg *, CLIENT *);
244 extern  generic_ret * create_policy_2_svc(cpol_arg *, struct svc_req *);
245 #define DELETE_POLICY 9
246 extern  generic_ret * delete_policy_2(dpol_arg *, CLIENT *);
247 extern  generic_ret * delete_policy_2_svc(dpol_arg *, struct svc_req *);
248 #define MODIFY_POLICY 10
249 extern  generic_ret * modify_policy_2(mpol_arg *, CLIENT *);
250 extern  generic_ret * modify_policy_2_svc(mpol_arg *, struct svc_req *);
251 #define GET_POLICY 11
252 extern  gpol_ret * get_policy_2(gpol_arg *, CLIENT *);
253 extern  gpol_ret * get_policy_2_svc(gpol_arg *, struct svc_req *);
254 #define GET_PRIVS 12
255 extern  getprivs_ret * get_privs_2(void *, CLIENT *);
256 extern  getprivs_ret * get_privs_2_svc(krb5_ui_4 *, struct svc_req *);
257 #define INIT 13
258 extern  generic_ret * init_2(void *, CLIENT *);
259 extern  generic_ret * init_2_svc(krb5_ui_4 *, struct svc_req *);
260 #define GET_PRINCS 14
261 extern  gprincs_ret * get_princs_2(gprincs_arg *, CLIENT *);
262 extern  gprincs_ret * get_princs_2_svc(gprincs_arg *, struct svc_req *);
263 #define GET_POLS 15
264 extern  gpols_ret * get_pols_2(gpols_arg *, CLIENT *);
265 extern  gpols_ret * get_pols_2_svc(gpols_arg *, struct svc_req *);
266 #define SETKEY_PRINCIPAL 16
267 extern  generic_ret * setkey_principal_2(setkey_arg *, CLIENT *);
268 extern  generic_ret * setkey_principal_2_svc(setkey_arg *, struct svc_req *);
269 #define SETV4KEY_PRINCIPAL 17
270 extern  generic_ret * setv4key_principal_2(setv4key_arg *, CLIENT *);
271 extern  generic_ret * setv4key_principal_2_svc(setv4key_arg *, struct svc_req *);
272 #define CREATE_PRINCIPAL3 18
273 extern  generic_ret * create_principal3_2(cprinc3_arg *, CLIENT *);
274 extern  generic_ret * create_principal3_2_svc(cprinc3_arg *, struct svc_req *);
275 #define CHPASS_PRINCIPAL3 19
276 extern  generic_ret * chpass_principal3_2(chpass3_arg *, CLIENT *);
277 extern  generic_ret * chpass_principal3_2_svc(chpass3_arg *, struct svc_req *);
278 #define CHRAND_PRINCIPAL3 20
279 extern  chrand_ret * chrand_principal3_2(chrand3_arg *, CLIENT *);
280 extern  chrand_ret * chrand_principal3_2_svc(chrand3_arg *, struct svc_req *);
281 #define SETKEY_PRINCIPAL3 21
282 extern  generic_ret * setkey_principal3_2(setkey3_arg *, CLIENT *);
283 extern  generic_ret * setkey_principal3_2_svc(setkey3_arg *, struct svc_req *);
284 
285 extern bool_t xdr_cprinc_arg ();
286 extern bool_t xdr_cprinc3_arg ();
287 extern bool_t xdr_generic_ret ();
288 extern bool_t xdr_dprinc_arg ();
289 extern bool_t xdr_mprinc_arg ();
290 extern bool_t xdr_rprinc_arg ();
291 extern bool_t xdr_gprincs_arg ();
292 extern bool_t xdr_gprincs_ret ();
293 extern bool_t xdr_chpass_arg ();
294 extern bool_t xdr_chpass3_arg ();
295 extern bool_t xdr_setv4key_arg ();
296 extern bool_t xdr_setkey_arg ();
297 extern bool_t xdr_setkey3_arg ();
298 extern bool_t xdr_chrand_arg ();
299 extern bool_t xdr_chrand3_arg ();
300 extern bool_t xdr_chrand_ret ();
301 extern bool_t xdr_gprinc_arg ();
302 extern bool_t xdr_gprinc_ret ();
303 extern bool_t xdr_kadm5_ret_t ();
304 extern bool_t xdr_kadm5_principal_ent_rec ();
305 extern bool_t xdr_kadm5_policy_ent_rec ();
306 extern bool_t	xdr_krb5_keyblock ();
307 extern bool_t	xdr_krb5_principal ();
308 extern bool_t	xdr_krb5_enctype ();
309 extern bool_t	xdr_krb5_octet ();
310 extern bool_t	xdr_krb5_int32 ();
311 extern bool_t	xdr_u_int32 ();
312 extern bool_t xdr_cpol_arg ();
313 extern bool_t xdr_dpol_arg ();
314 extern bool_t xdr_mpol_arg ();
315 extern bool_t xdr_gpol_arg ();
316 extern bool_t xdr_gpol_ret ();
317 extern bool_t xdr_gpols_arg ();
318 extern bool_t xdr_gpols_ret ();
319 extern bool_t xdr_getprivs_ret ();
320 
321 
322 #endif /* __KADM_RPC_H__ */
323