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