xref: /onnv-gate/usr/src/lib/krb5/kadm5/kadm_rpc.h (revision 7934:6aeeafc994de)
10Sstevel@tonic-gate /*
20Sstevel@tonic-gate  * WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
30Sstevel@tonic-gate  *
40Sstevel@tonic-gate  *	Openvision retains the copyright to derivative works of
50Sstevel@tonic-gate  *	this source code.  Do *NOT* create a derivative of this
60Sstevel@tonic-gate  *	source code before consulting with your legal department.
70Sstevel@tonic-gate  *	Do *NOT* integrate *ANY* of this source code into another
80Sstevel@tonic-gate  *	product before consulting with your legal department.
90Sstevel@tonic-gate  *
100Sstevel@tonic-gate  *	For further information, read the top-level Openvision
110Sstevel@tonic-gate  *	copyright which is contained in the top-level MIT Kerberos
120Sstevel@tonic-gate  *	copyright.
130Sstevel@tonic-gate  *
140Sstevel@tonic-gate  * WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
150Sstevel@tonic-gate  *
160Sstevel@tonic-gate  */
170Sstevel@tonic-gate 
182881Smp153739 #ifndef __KADM_RPC_H__
192881Smp153739 #define __KADM_RPC_H__
200Sstevel@tonic-gate 
210Sstevel@tonic-gate #include <rpc/types.h>
220Sstevel@tonic-gate 
23*7934SMark.Phalan@Sun.COM #include	<kadm5/admin.h>
240Sstevel@tonic-gate #include	<krb5.h>
250Sstevel@tonic-gate 
260Sstevel@tonic-gate struct cprinc_arg {
270Sstevel@tonic-gate 	krb5_ui_4 api_version;
280Sstevel@tonic-gate 	kadm5_principal_ent_rec rec;
290Sstevel@tonic-gate 	long mask;
300Sstevel@tonic-gate 	char *passwd;
310Sstevel@tonic-gate };
320Sstevel@tonic-gate typedef struct cprinc_arg cprinc_arg;
330Sstevel@tonic-gate 
340Sstevel@tonic-gate struct cprinc3_arg {
350Sstevel@tonic-gate 	krb5_ui_4 api_version;
360Sstevel@tonic-gate 	kadm5_principal_ent_rec rec;
370Sstevel@tonic-gate 	long mask;
380Sstevel@tonic-gate 	int n_ks_tuple;
390Sstevel@tonic-gate 	krb5_key_salt_tuple *ks_tuple;
400Sstevel@tonic-gate 	char *passwd;
410Sstevel@tonic-gate };
420Sstevel@tonic-gate typedef struct cprinc3_arg cprinc3_arg;
430Sstevel@tonic-gate 
440Sstevel@tonic-gate struct generic_ret {
450Sstevel@tonic-gate 	krb5_ui_4 api_version;
460Sstevel@tonic-gate 	kadm5_ret_t code;
470Sstevel@tonic-gate };
480Sstevel@tonic-gate typedef struct generic_ret generic_ret;
490Sstevel@tonic-gate 
500Sstevel@tonic-gate struct dprinc_arg {
510Sstevel@tonic-gate 	krb5_ui_4 api_version;
520Sstevel@tonic-gate 	krb5_principal princ;
530Sstevel@tonic-gate };
540Sstevel@tonic-gate typedef struct dprinc_arg dprinc_arg;
550Sstevel@tonic-gate 
560Sstevel@tonic-gate struct mprinc_arg {
570Sstevel@tonic-gate 	krb5_ui_4 api_version;
580Sstevel@tonic-gate 	kadm5_principal_ent_rec rec;
590Sstevel@tonic-gate 	long mask;
600Sstevel@tonic-gate };
610Sstevel@tonic-gate typedef struct mprinc_arg mprinc_arg;
620Sstevel@tonic-gate 
630Sstevel@tonic-gate struct rprinc_arg {
640Sstevel@tonic-gate 	krb5_ui_4 api_version;
650Sstevel@tonic-gate 	krb5_principal src;
660Sstevel@tonic-gate 	krb5_principal dest;
670Sstevel@tonic-gate };
680Sstevel@tonic-gate typedef struct rprinc_arg rprinc_arg;
690Sstevel@tonic-gate 
700Sstevel@tonic-gate struct gprincs_arg {
710Sstevel@tonic-gate         krb5_ui_4 api_version;
720Sstevel@tonic-gate 	char *exp;
730Sstevel@tonic-gate };
740Sstevel@tonic-gate typedef struct gprincs_arg gprincs_arg;
750Sstevel@tonic-gate 
760Sstevel@tonic-gate struct gprincs_ret {
770Sstevel@tonic-gate         krb5_ui_4 api_version;
780Sstevel@tonic-gate 	kadm5_ret_t code;
790Sstevel@tonic-gate 	char **princs;
800Sstevel@tonic-gate 	int count;
810Sstevel@tonic-gate };
820Sstevel@tonic-gate typedef struct gprincs_ret gprincs_ret;
830Sstevel@tonic-gate 
840Sstevel@tonic-gate struct chpass_arg {
850Sstevel@tonic-gate 	krb5_ui_4 api_version;
860Sstevel@tonic-gate 	krb5_principal princ;
870Sstevel@tonic-gate 	char *pass;
880Sstevel@tonic-gate };
890Sstevel@tonic-gate typedef struct chpass_arg chpass_arg;
900Sstevel@tonic-gate 
910Sstevel@tonic-gate struct chpass3_arg {
920Sstevel@tonic-gate 	krb5_ui_4 api_version;
930Sstevel@tonic-gate 	krb5_principal princ;
940Sstevel@tonic-gate 	krb5_boolean keepold;
950Sstevel@tonic-gate 	int n_ks_tuple;
960Sstevel@tonic-gate 	krb5_key_salt_tuple *ks_tuple;
970Sstevel@tonic-gate 	char *pass;
980Sstevel@tonic-gate };
990Sstevel@tonic-gate typedef struct chpass3_arg chpass3_arg;
1000Sstevel@tonic-gate 
1010Sstevel@tonic-gate struct setv4key_arg {
1020Sstevel@tonic-gate 	krb5_ui_4 api_version;
1030Sstevel@tonic-gate 	krb5_principal princ;
1040Sstevel@tonic-gate         krb5_keyblock *keyblock;
1050Sstevel@tonic-gate };
1060Sstevel@tonic-gate typedef struct setv4key_arg setv4key_arg;
1070Sstevel@tonic-gate 
1080Sstevel@tonic-gate struct setkey_arg {
1090Sstevel@tonic-gate 	krb5_ui_4 api_version;
1100Sstevel@tonic-gate 	krb5_principal princ;
1110Sstevel@tonic-gate         krb5_keyblock *keyblocks;
1120Sstevel@tonic-gate         int n_keys;
1130Sstevel@tonic-gate };
1140Sstevel@tonic-gate typedef struct setkey_arg setkey_arg;
1150Sstevel@tonic-gate 
1160Sstevel@tonic-gate struct setkey3_arg {
1170Sstevel@tonic-gate 	krb5_ui_4 api_version;
1180Sstevel@tonic-gate 	krb5_principal princ;
1190Sstevel@tonic-gate 	krb5_boolean keepold;
1200Sstevel@tonic-gate 	int n_ks_tuple;
1210Sstevel@tonic-gate 	krb5_key_salt_tuple *ks_tuple;
1220Sstevel@tonic-gate         krb5_keyblock *keyblocks;
1230Sstevel@tonic-gate         int n_keys;
1240Sstevel@tonic-gate };
1250Sstevel@tonic-gate typedef struct setkey3_arg setkey3_arg;
1260Sstevel@tonic-gate 
1270Sstevel@tonic-gate struct chrand_arg {
1280Sstevel@tonic-gate 	krb5_ui_4 api_version;
1290Sstevel@tonic-gate 	krb5_principal princ;
1300Sstevel@tonic-gate };
1310Sstevel@tonic-gate typedef struct chrand_arg chrand_arg;
1320Sstevel@tonic-gate 
1330Sstevel@tonic-gate struct chrand3_arg {
1340Sstevel@tonic-gate 	krb5_ui_4 api_version;
1350Sstevel@tonic-gate 	krb5_principal princ;
1360Sstevel@tonic-gate 	krb5_boolean keepold;
1370Sstevel@tonic-gate 	int n_ks_tuple;
1380Sstevel@tonic-gate 	krb5_key_salt_tuple *ks_tuple;
1390Sstevel@tonic-gate };
1400Sstevel@tonic-gate typedef struct chrand3_arg chrand3_arg;
1410Sstevel@tonic-gate 
1420Sstevel@tonic-gate struct chrand_ret {
1430Sstevel@tonic-gate 	krb5_ui_4 api_version;
1440Sstevel@tonic-gate 	kadm5_ret_t code;
1450Sstevel@tonic-gate 	krb5_keyblock key;
1460Sstevel@tonic-gate 	krb5_keyblock *keys;
1470Sstevel@tonic-gate 	int n_keys;
1480Sstevel@tonic-gate };
1490Sstevel@tonic-gate typedef struct chrand_ret chrand_ret;
1500Sstevel@tonic-gate 
1510Sstevel@tonic-gate struct gprinc_arg {
1520Sstevel@tonic-gate 	krb5_ui_4 api_version;
1530Sstevel@tonic-gate 	krb5_principal princ;
1540Sstevel@tonic-gate 	long mask;
1550Sstevel@tonic-gate };
1560Sstevel@tonic-gate typedef struct gprinc_arg gprinc_arg;
1570Sstevel@tonic-gate 
1580Sstevel@tonic-gate struct gprinc_ret {
1590Sstevel@tonic-gate 	krb5_ui_4 api_version;
1600Sstevel@tonic-gate 	kadm5_ret_t code;
1610Sstevel@tonic-gate 	kadm5_principal_ent_rec rec;
1620Sstevel@tonic-gate };
1630Sstevel@tonic-gate typedef struct gprinc_ret gprinc_ret;
1640Sstevel@tonic-gate 
1650Sstevel@tonic-gate struct cpol_arg {
1660Sstevel@tonic-gate 	krb5_ui_4 api_version;
1670Sstevel@tonic-gate 	kadm5_policy_ent_rec rec;
1680Sstevel@tonic-gate 	long mask;
1690Sstevel@tonic-gate };
1700Sstevel@tonic-gate typedef struct cpol_arg cpol_arg;
1710Sstevel@tonic-gate 
1720Sstevel@tonic-gate struct dpol_arg {
1730Sstevel@tonic-gate 	krb5_ui_4 api_version;
1740Sstevel@tonic-gate 	char *name;
1750Sstevel@tonic-gate };
1760Sstevel@tonic-gate typedef struct dpol_arg dpol_arg;
1770Sstevel@tonic-gate 
1780Sstevel@tonic-gate struct mpol_arg {
1790Sstevel@tonic-gate 	krb5_ui_4 api_version;
1800Sstevel@tonic-gate 	kadm5_policy_ent_rec rec;
1810Sstevel@tonic-gate 	long mask;
1820Sstevel@tonic-gate };
1830Sstevel@tonic-gate typedef struct mpol_arg mpol_arg;
1840Sstevel@tonic-gate 
1850Sstevel@tonic-gate struct gpol_arg {
1860Sstevel@tonic-gate 	krb5_ui_4 api_version;
1870Sstevel@tonic-gate 	char *name;
1880Sstevel@tonic-gate };
1890Sstevel@tonic-gate typedef struct gpol_arg gpol_arg;
1900Sstevel@tonic-gate 
1910Sstevel@tonic-gate struct gpol_ret {
1920Sstevel@tonic-gate 	krb5_ui_4 api_version;
1930Sstevel@tonic-gate 	kadm5_ret_t code;
1940Sstevel@tonic-gate 	kadm5_policy_ent_rec rec;
1950Sstevel@tonic-gate };
1960Sstevel@tonic-gate typedef struct gpol_ret gpol_ret;
1970Sstevel@tonic-gate 
1980Sstevel@tonic-gate struct gpols_arg {
1990Sstevel@tonic-gate         krb5_ui_4 api_version;
2000Sstevel@tonic-gate 	char *exp;
2010Sstevel@tonic-gate };
2020Sstevel@tonic-gate typedef struct gpols_arg gpols_arg;
2030Sstevel@tonic-gate 
2040Sstevel@tonic-gate struct gpols_ret {
2050Sstevel@tonic-gate         krb5_ui_4 api_version;
2060Sstevel@tonic-gate 	kadm5_ret_t code;
2070Sstevel@tonic-gate 	char **pols;
2080Sstevel@tonic-gate 	int count;
2090Sstevel@tonic-gate };
2100Sstevel@tonic-gate typedef struct gpols_ret gpols_ret;
2110Sstevel@tonic-gate 
2120Sstevel@tonic-gate struct getprivs_ret {
2130Sstevel@tonic-gate 	krb5_ui_4 api_version;
2140Sstevel@tonic-gate 	kadm5_ret_t code;
2150Sstevel@tonic-gate 	long privs;
2160Sstevel@tonic-gate };
2170Sstevel@tonic-gate typedef struct getprivs_ret getprivs_ret;
2182881Smp153739 
219*7934SMark.Phalan@Sun.COM #define KADM 2112
220*7934SMark.Phalan@Sun.COM #define KADMVERS 2
221*7934SMark.Phalan@Sun.COM #define CREATE_PRINCIPAL 1
222*7934SMark.Phalan@Sun.COM extern  generic_ret * create_principal_2(cprinc_arg *, CLIENT *);
223*7934SMark.Phalan@Sun.COM extern  generic_ret * create_principal_2_svc(cprinc_arg *, struct svc_req *);
224*7934SMark.Phalan@Sun.COM #define DELETE_PRINCIPAL 2
225*7934SMark.Phalan@Sun.COM extern  generic_ret * delete_principal_2(dprinc_arg *, CLIENT *);
226*7934SMark.Phalan@Sun.COM extern  generic_ret * delete_principal_2_svc(dprinc_arg *, struct svc_req *);
227*7934SMark.Phalan@Sun.COM #define MODIFY_PRINCIPAL 3
228*7934SMark.Phalan@Sun.COM extern  generic_ret * modify_principal_2(mprinc_arg *, CLIENT *);
229*7934SMark.Phalan@Sun.COM extern  generic_ret * modify_principal_2_svc(mprinc_arg *, struct svc_req *);
230*7934SMark.Phalan@Sun.COM #define RENAME_PRINCIPAL 4
231*7934SMark.Phalan@Sun.COM extern  generic_ret * rename_principal_2(rprinc_arg *, CLIENT *);
232*7934SMark.Phalan@Sun.COM extern  generic_ret * rename_principal_2_svc(rprinc_arg *, struct svc_req *);
233*7934SMark.Phalan@Sun.COM #define GET_PRINCIPAL 5
234*7934SMark.Phalan@Sun.COM extern  gprinc_ret * get_principal_2(gprinc_arg *, CLIENT *);
235*7934SMark.Phalan@Sun.COM extern  gprinc_ret * get_principal_2_svc(gprinc_arg *, struct svc_req *);
236*7934SMark.Phalan@Sun.COM #define CHPASS_PRINCIPAL 6
237*7934SMark.Phalan@Sun.COM extern  generic_ret * chpass_principal_2(chpass_arg *, CLIENT *);
238*7934SMark.Phalan@Sun.COM extern  generic_ret * chpass_principal_2_svc(chpass_arg *, struct svc_req *);
239*7934SMark.Phalan@Sun.COM #define CHRAND_PRINCIPAL 7
240*7934SMark.Phalan@Sun.COM extern  chrand_ret * chrand_principal_2(chrand_arg *, CLIENT *);
241*7934SMark.Phalan@Sun.COM extern  chrand_ret * chrand_principal_2_svc(chrand_arg *, struct svc_req *);
242*7934SMark.Phalan@Sun.COM #define CREATE_POLICY 8
243*7934SMark.Phalan@Sun.COM extern  generic_ret * create_policy_2(cpol_arg *, CLIENT *);
244*7934SMark.Phalan@Sun.COM extern  generic_ret * create_policy_2_svc(cpol_arg *, struct svc_req *);
245*7934SMark.Phalan@Sun.COM #define DELETE_POLICY 9
246*7934SMark.Phalan@Sun.COM extern  generic_ret * delete_policy_2(dpol_arg *, CLIENT *);
247*7934SMark.Phalan@Sun.COM extern  generic_ret * delete_policy_2_svc(dpol_arg *, struct svc_req *);
248*7934SMark.Phalan@Sun.COM #define MODIFY_POLICY 10
249*7934SMark.Phalan@Sun.COM extern  generic_ret * modify_policy_2(mpol_arg *, CLIENT *);
250*7934SMark.Phalan@Sun.COM extern  generic_ret * modify_policy_2_svc(mpol_arg *, struct svc_req *);
251*7934SMark.Phalan@Sun.COM #define GET_POLICY 11
252*7934SMark.Phalan@Sun.COM extern  gpol_ret * get_policy_2(gpol_arg *, CLIENT *);
253*7934SMark.Phalan@Sun.COM extern  gpol_ret * get_policy_2_svc(gpol_arg *, struct svc_req *);
254*7934SMark.Phalan@Sun.COM #define GET_PRIVS 12
255*7934SMark.Phalan@Sun.COM extern  getprivs_ret * get_privs_2(void *, CLIENT *);
256*7934SMark.Phalan@Sun.COM extern  getprivs_ret * get_privs_2_svc(krb5_ui_4 *, struct svc_req *);
257*7934SMark.Phalan@Sun.COM #define INIT 13
258*7934SMark.Phalan@Sun.COM extern  generic_ret * init_2(void *, CLIENT *);
259*7934SMark.Phalan@Sun.COM extern  generic_ret * init_2_svc(krb5_ui_4 *, struct svc_req *);
260*7934SMark.Phalan@Sun.COM #define GET_PRINCS 14
261*7934SMark.Phalan@Sun.COM extern  gprincs_ret * get_princs_2(gprincs_arg *, CLIENT *);
262*7934SMark.Phalan@Sun.COM extern  gprincs_ret * get_princs_2_svc(gprincs_arg *, struct svc_req *);
263*7934SMark.Phalan@Sun.COM #define GET_POLS 15
264*7934SMark.Phalan@Sun.COM extern  gpols_ret * get_pols_2(gpols_arg *, CLIENT *);
265*7934SMark.Phalan@Sun.COM extern  gpols_ret * get_pols_2_svc(gpols_arg *, struct svc_req *);
266*7934SMark.Phalan@Sun.COM #define SETKEY_PRINCIPAL 16
267*7934SMark.Phalan@Sun.COM extern  generic_ret * setkey_principal_2(setkey_arg *, CLIENT *);
268*7934SMark.Phalan@Sun.COM extern  generic_ret * setkey_principal_2_svc(setkey_arg *, struct svc_req *);
269*7934SMark.Phalan@Sun.COM #define SETV4KEY_PRINCIPAL 17
270*7934SMark.Phalan@Sun.COM extern  generic_ret * setv4key_principal_2(setv4key_arg *, CLIENT *);
271*7934SMark.Phalan@Sun.COM extern  generic_ret * setv4key_principal_2_svc(setv4key_arg *, struct svc_req *);
272*7934SMark.Phalan@Sun.COM #define CREATE_PRINCIPAL3 18
273*7934SMark.Phalan@Sun.COM extern  generic_ret * create_principal3_2(cprinc3_arg *, CLIENT *);
274*7934SMark.Phalan@Sun.COM extern  generic_ret * create_principal3_2_svc(cprinc3_arg *, struct svc_req *);
275*7934SMark.Phalan@Sun.COM #define CHPASS_PRINCIPAL3 19
276*7934SMark.Phalan@Sun.COM extern  generic_ret * chpass_principal3_2(chpass3_arg *, CLIENT *);
277*7934SMark.Phalan@Sun.COM extern  generic_ret * chpass_principal3_2_svc(chpass3_arg *, struct svc_req *);
278*7934SMark.Phalan@Sun.COM #define CHRAND_PRINCIPAL3 20
279*7934SMark.Phalan@Sun.COM extern  chrand_ret * chrand_principal3_2(chrand3_arg *, CLIENT *);
280*7934SMark.Phalan@Sun.COM extern  chrand_ret * chrand_principal3_2_svc(chrand3_arg *, struct svc_req *);
281*7934SMark.Phalan@Sun.COM #define SETKEY_PRINCIPAL3 21
282*7934SMark.Phalan@Sun.COM extern  generic_ret * setkey_principal3_2(setkey3_arg *, CLIENT *);
283*7934SMark.Phalan@Sun.COM extern  generic_ret * setkey_principal3_2_svc(setkey3_arg *, struct svc_req *);
2842881Smp153739 
285*7934SMark.Phalan@Sun.COM extern bool_t xdr_cprinc_arg ();
286*7934SMark.Phalan@Sun.COM extern bool_t xdr_cprinc3_arg ();
287*7934SMark.Phalan@Sun.COM extern bool_t xdr_generic_ret ();
288*7934SMark.Phalan@Sun.COM extern bool_t xdr_dprinc_arg ();
289*7934SMark.Phalan@Sun.COM extern bool_t xdr_mprinc_arg ();
290*7934SMark.Phalan@Sun.COM extern bool_t xdr_rprinc_arg ();
291*7934SMark.Phalan@Sun.COM extern bool_t xdr_gprincs_arg ();
292*7934SMark.Phalan@Sun.COM extern bool_t xdr_gprincs_ret ();
293*7934SMark.Phalan@Sun.COM extern bool_t xdr_chpass_arg ();
294*7934SMark.Phalan@Sun.COM extern bool_t xdr_chpass3_arg ();
295*7934SMark.Phalan@Sun.COM extern bool_t xdr_setv4key_arg ();
296*7934SMark.Phalan@Sun.COM extern bool_t xdr_setkey_arg ();
297*7934SMark.Phalan@Sun.COM extern bool_t xdr_setkey3_arg ();
298*7934SMark.Phalan@Sun.COM extern bool_t xdr_chrand_arg ();
299*7934SMark.Phalan@Sun.COM extern bool_t xdr_chrand3_arg ();
300*7934SMark.Phalan@Sun.COM extern bool_t xdr_chrand_ret ();
301*7934SMark.Phalan@Sun.COM extern bool_t xdr_gprinc_arg ();
302*7934SMark.Phalan@Sun.COM extern bool_t xdr_gprinc_ret ();
303*7934SMark.Phalan@Sun.COM extern bool_t xdr_kadm5_ret_t ();
304*7934SMark.Phalan@Sun.COM extern bool_t xdr_kadm5_principal_ent_rec ();
305*7934SMark.Phalan@Sun.COM extern bool_t xdr_kadm5_policy_ent_rec ();
306*7934SMark.Phalan@Sun.COM extern bool_t	xdr_krb5_keyblock ();
307*7934SMark.Phalan@Sun.COM extern bool_t	xdr_krb5_principal ();
308*7934SMark.Phalan@Sun.COM extern bool_t	xdr_krb5_enctype ();
309*7934SMark.Phalan@Sun.COM extern bool_t	xdr_krb5_octet ();
310*7934SMark.Phalan@Sun.COM extern bool_t	xdr_krb5_int32 ();
311*7934SMark.Phalan@Sun.COM extern bool_t	xdr_u_int32 ();
312*7934SMark.Phalan@Sun.COM extern bool_t xdr_cpol_arg ();
313*7934SMark.Phalan@Sun.COM extern bool_t xdr_dpol_arg ();
314*7934SMark.Phalan@Sun.COM extern bool_t xdr_mpol_arg ();
315*7934SMark.Phalan@Sun.COM extern bool_t xdr_gpol_arg ();
316*7934SMark.Phalan@Sun.COM extern bool_t xdr_gpol_ret ();
317*7934SMark.Phalan@Sun.COM extern bool_t xdr_gpols_arg ();
318*7934SMark.Phalan@Sun.COM extern bool_t xdr_gpols_ret ();
319*7934SMark.Phalan@Sun.COM extern bool_t xdr_getprivs_ret ();
3202881Smp153739 
3212881Smp153739 
3222881Smp153739 #endif /* __KADM_RPC_H__ */
323