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