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