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