1 /* -*- mode: c; c-file-style: "bsd"; indent-tabs-mode: t -*- */ 2 #ifndef __KADM_RPC_H__ 3 #define __KADM_RPC_H__ 4 5 #include <gssrpc/types.h> 6 7 #include <krb5.h> 8 #include <kadm5/admin.h> 9 10 struct cprinc_arg { 11 krb5_ui_4 api_version; 12 kadm5_principal_ent_rec rec; 13 long mask; 14 char *passwd; 15 }; 16 typedef struct cprinc_arg cprinc_arg; 17 18 struct cprinc3_arg { 19 krb5_ui_4 api_version; 20 kadm5_principal_ent_rec rec; 21 long mask; 22 int n_ks_tuple; 23 krb5_key_salt_tuple *ks_tuple; 24 char *passwd; 25 }; 26 typedef struct cprinc3_arg cprinc3_arg; 27 28 struct generic_ret { 29 krb5_ui_4 api_version; 30 kadm5_ret_t code; 31 }; 32 typedef struct generic_ret generic_ret; 33 34 struct dprinc_arg { 35 krb5_ui_4 api_version; 36 krb5_principal princ; 37 }; 38 typedef struct dprinc_arg dprinc_arg; 39 40 struct mprinc_arg { 41 krb5_ui_4 api_version; 42 kadm5_principal_ent_rec rec; 43 long mask; 44 }; 45 typedef struct mprinc_arg mprinc_arg; 46 47 struct rprinc_arg { 48 krb5_ui_4 api_version; 49 krb5_principal src; 50 krb5_principal dest; 51 }; 52 typedef struct rprinc_arg rprinc_arg; 53 54 struct gprincs_arg { 55 krb5_ui_4 api_version; 56 char *exp; 57 }; 58 typedef struct gprincs_arg gprincs_arg; 59 60 struct gprincs_ret { 61 krb5_ui_4 api_version; 62 kadm5_ret_t code; 63 char **princs; 64 int count; 65 }; 66 typedef struct gprincs_ret gprincs_ret; 67 68 struct chpass_arg { 69 krb5_ui_4 api_version; 70 krb5_principal princ; 71 char *pass; 72 }; 73 typedef struct chpass_arg chpass_arg; 74 75 struct chpass3_arg { 76 krb5_ui_4 api_version; 77 krb5_principal princ; 78 krb5_boolean keepold; 79 int n_ks_tuple; 80 krb5_key_salt_tuple *ks_tuple; 81 char *pass; 82 }; 83 typedef struct chpass3_arg chpass3_arg; 84 85 struct setkey_arg { 86 krb5_ui_4 api_version; 87 krb5_principal princ; 88 krb5_keyblock *keyblocks; 89 int n_keys; 90 }; 91 typedef struct setkey_arg setkey_arg; 92 93 struct setkey3_arg { 94 krb5_ui_4 api_version; 95 krb5_principal princ; 96 krb5_boolean keepold; 97 int n_ks_tuple; 98 krb5_key_salt_tuple *ks_tuple; 99 krb5_keyblock *keyblocks; 100 int n_keys; 101 }; 102 typedef struct setkey3_arg setkey3_arg; 103 104 struct setkey4_arg { 105 krb5_ui_4 api_version; 106 krb5_principal princ; 107 krb5_boolean keepold; 108 kadm5_key_data *key_data; 109 int n_key_data; 110 }; 111 typedef struct setkey4_arg setkey4_arg; 112 113 struct chrand_arg { 114 krb5_ui_4 api_version; 115 krb5_principal princ; 116 }; 117 typedef struct chrand_arg chrand_arg; 118 119 struct chrand3_arg { 120 krb5_ui_4 api_version; 121 krb5_principal princ; 122 krb5_boolean keepold; 123 int n_ks_tuple; 124 krb5_key_salt_tuple *ks_tuple; 125 }; 126 typedef struct chrand3_arg chrand3_arg; 127 128 struct chrand_ret { 129 krb5_ui_4 api_version; 130 kadm5_ret_t code; 131 krb5_keyblock key; 132 krb5_keyblock *keys; 133 int n_keys; 134 }; 135 typedef struct chrand_ret chrand_ret; 136 137 struct gprinc_arg { 138 krb5_ui_4 api_version; 139 krb5_principal princ; 140 long mask; 141 }; 142 typedef struct gprinc_arg gprinc_arg; 143 144 struct gprinc_ret { 145 krb5_ui_4 api_version; 146 kadm5_ret_t code; 147 kadm5_principal_ent_rec rec; 148 }; 149 typedef struct gprinc_ret gprinc_ret; 150 151 struct cpol_arg { 152 krb5_ui_4 api_version; 153 kadm5_policy_ent_rec rec; 154 long mask; 155 }; 156 typedef struct cpol_arg cpol_arg; 157 158 struct dpol_arg { 159 krb5_ui_4 api_version; 160 char *name; 161 }; 162 typedef struct dpol_arg dpol_arg; 163 164 struct mpol_arg { 165 krb5_ui_4 api_version; 166 kadm5_policy_ent_rec rec; 167 long mask; 168 }; 169 typedef struct mpol_arg mpol_arg; 170 171 struct gpol_arg { 172 krb5_ui_4 api_version; 173 char *name; 174 }; 175 typedef struct gpol_arg gpol_arg; 176 177 struct gpol_ret { 178 krb5_ui_4 api_version; 179 kadm5_ret_t code; 180 kadm5_policy_ent_rec rec; 181 }; 182 typedef struct gpol_ret gpol_ret; 183 184 struct gpols_arg { 185 krb5_ui_4 api_version; 186 char *exp; 187 }; 188 typedef struct gpols_arg gpols_arg; 189 190 struct gpols_ret { 191 krb5_ui_4 api_version; 192 kadm5_ret_t code; 193 char **pols; 194 int count; 195 }; 196 typedef struct gpols_ret gpols_ret; 197 198 struct getprivs_ret { 199 krb5_ui_4 api_version; 200 kadm5_ret_t code; 201 long privs; 202 }; 203 typedef struct getprivs_ret getprivs_ret; 204 205 struct purgekeys_arg { 206 krb5_ui_4 api_version; 207 krb5_principal princ; 208 int keepkvno; 209 }; 210 typedef struct purgekeys_arg purgekeys_arg; 211 212 struct gstrings_arg { 213 krb5_ui_4 api_version; 214 krb5_principal princ; 215 }; 216 typedef struct gstrings_arg gstrings_arg; 217 218 struct gstrings_ret { 219 krb5_ui_4 api_version; 220 kadm5_ret_t code; 221 krb5_string_attr *strings; 222 int count; 223 }; 224 typedef struct gstrings_ret gstrings_ret; 225 226 struct sstring_arg { 227 krb5_ui_4 api_version; 228 krb5_principal princ; 229 char *key; 230 char *value; 231 }; 232 typedef struct sstring_arg sstring_arg; 233 234 struct getpkeys_arg { 235 krb5_ui_4 api_version; 236 krb5_principal princ; 237 krb5_kvno kvno; 238 }; 239 typedef struct getpkeys_arg getpkeys_arg; 240 241 struct getpkeys_ret { 242 krb5_ui_4 api_version; 243 kadm5_ret_t code; 244 kadm5_key_data *key_data; 245 int n_key_data; 246 }; 247 typedef struct getpkeys_ret getpkeys_ret; 248 249 #define KADM 2112 250 #define KADMVERS 2 251 #define CREATE_PRINCIPAL 1 252 extern enum clnt_stat create_principal_2(cprinc_arg *, generic_ret *, 253 CLIENT *); 254 extern bool_t create_principal_2_svc(cprinc_arg *, generic_ret *, 255 struct svc_req *); 256 #define DELETE_PRINCIPAL 2 257 extern enum clnt_stat delete_principal_2(dprinc_arg *, generic_ret *, 258 CLIENT *); 259 extern bool_t delete_principal_2_svc(dprinc_arg *, generic_ret *, 260 struct svc_req *); 261 #define MODIFY_PRINCIPAL 3 262 extern enum clnt_stat modify_principal_2(mprinc_arg *, generic_ret *, 263 CLIENT *); 264 extern bool_t modify_principal_2_svc(mprinc_arg *, generic_ret *, 265 struct svc_req *); 266 #define RENAME_PRINCIPAL 4 267 extern enum clnt_stat rename_principal_2(rprinc_arg *, generic_ret *, 268 CLIENT *); 269 extern bool_t rename_principal_2_svc(rprinc_arg *, generic_ret *, 270 struct svc_req *); 271 #define GET_PRINCIPAL 5 272 extern enum clnt_stat get_principal_2(gprinc_arg *, gprinc_ret *, CLIENT *); 273 extern bool_t get_principal_2_svc(gprinc_arg *, gprinc_ret *, 274 struct svc_req *); 275 #define CHPASS_PRINCIPAL 6 276 extern enum clnt_stat chpass_principal_2(chpass_arg *, generic_ret *, 277 CLIENT *); 278 extern bool_t chpass_principal_2_svc(chpass_arg *, generic_ret *, 279 struct svc_req *); 280 #define CHRAND_PRINCIPAL 7 281 extern enum clnt_stat chrand_principal_2(chrand_arg *, chrand_ret *, 282 CLIENT *); 283 extern bool_t chrand_principal_2_svc(chrand_arg *, chrand_ret *, 284 struct svc_req *); 285 #define CREATE_POLICY 8 286 extern enum clnt_stat create_policy_2(cpol_arg *, generic_ret *, CLIENT *); 287 extern bool_t create_policy_2_svc(cpol_arg *, generic_ret *, 288 struct svc_req *); 289 #define DELETE_POLICY 9 290 extern enum clnt_stat delete_policy_2(dpol_arg *, generic_ret *, CLIENT *); 291 extern bool_t delete_policy_2_svc(dpol_arg *, generic_ret *, 292 struct svc_req *); 293 #define MODIFY_POLICY 10 294 extern enum clnt_stat modify_policy_2(mpol_arg *, generic_ret *, CLIENT *); 295 extern bool_t modify_policy_2_svc(mpol_arg *, generic_ret *, 296 struct svc_req *); 297 #define GET_POLICY 11 298 extern enum clnt_stat get_policy_2(gpol_arg *, gpol_ret *, CLIENT *); 299 extern bool_t get_policy_2_svc(gpol_arg *, gpol_ret *, struct svc_req *); 300 #define GET_PRIVS 12 301 extern enum clnt_stat get_privs_2(void *, getprivs_ret *, CLIENT *); 302 extern bool_t get_privs_2_svc(krb5_ui_4 *, getprivs_ret *, struct svc_req *); 303 #define INIT 13 304 extern enum clnt_stat init_2(void *, generic_ret *, CLIENT *); 305 extern bool_t init_2_svc(krb5_ui_4 *, generic_ret *, struct svc_req *); 306 #define GET_PRINCS 14 307 extern enum clnt_stat get_princs_2(gprincs_arg *, gprincs_ret *, CLIENT *); 308 extern bool_t get_princs_2_svc(gprincs_arg *, gprincs_ret *, 309 struct svc_req *); 310 #define GET_POLS 15 311 extern enum clnt_stat get_pols_2(gpols_arg *, gpols_ret *, CLIENT *); 312 extern bool_t get_pols_2_svc(gpols_arg *, gpols_ret *, struct svc_req *); 313 #define SETKEY_PRINCIPAL 16 314 extern enum clnt_stat setkey_principal_2(setkey_arg *, generic_ret *, 315 CLIENT *); 316 extern bool_t setkey_principal_2_svc(setkey_arg *, generic_ret *, 317 struct svc_req *); 318 319 /* 17 was SETV4KEY_PRINCIPAL (removed in 1.18). */ 320 321 #define CREATE_PRINCIPAL3 18 322 extern enum clnt_stat create_principal3_2(cprinc3_arg *, generic_ret *, 323 CLIENT *); 324 extern bool_t create_principal3_2_svc(cprinc3_arg *, generic_ret *, 325 struct svc_req *); 326 #define CHPASS_PRINCIPAL3 19 327 extern enum clnt_stat chpass_principal3_2(chpass3_arg *, generic_ret *, 328 CLIENT *); 329 extern bool_t chpass_principal3_2_svc(chpass3_arg *, generic_ret *, 330 struct svc_req *); 331 #define CHRAND_PRINCIPAL3 20 332 extern enum clnt_stat chrand_principal3_2(chrand3_arg *, chrand_ret *, 333 CLIENT *); 334 extern bool_t chrand_principal3_2_svc(chrand3_arg *, chrand_ret *, 335 struct svc_req *); 336 #define SETKEY_PRINCIPAL3 21 337 extern enum clnt_stat setkey_principal3_2(setkey3_arg *, generic_ret *, 338 CLIENT *); 339 extern bool_t setkey_principal3_2_svc(setkey3_arg *, generic_ret *, 340 struct svc_req *); 341 #define PURGEKEYS 22 342 extern enum clnt_stat purgekeys_2(purgekeys_arg *, generic_ret *, CLIENT *); 343 extern bool_t purgekeys_2_svc(purgekeys_arg *, generic_ret *, 344 struct svc_req *); 345 #define GET_STRINGS 23 346 extern enum clnt_stat get_strings_2(gstrings_arg *, gstrings_ret *, CLIENT *); 347 extern bool_t get_strings_2_svc(gstrings_arg *, gstrings_ret *, 348 struct svc_req *); 349 #define SET_STRING 24 350 extern enum clnt_stat set_string_2(sstring_arg *, generic_ret *, CLIENT *); 351 extern bool_t set_string_2_svc(sstring_arg *, generic_ret *, 352 struct svc_req *); 353 #define SETKEY_PRINCIPAL4 25 354 extern enum clnt_stat setkey_principal4_2(setkey4_arg *, generic_ret *, 355 CLIENT *); 356 extern bool_t setkey_principal4_2_svc(setkey4_arg *, generic_ret *, 357 struct svc_req *); 358 #define EXTRACT_KEYS 26 359 extern enum clnt_stat get_principal_keys_2(getpkeys_arg *, getpkeys_ret *, 360 CLIENT *); 361 extern bool_t get_principal_keys_2_svc(getpkeys_arg *, getpkeys_ret *, 362 struct svc_req *); 363 364 extern bool_t xdr_cprinc_arg (); 365 extern bool_t xdr_cprinc3_arg (); 366 extern bool_t xdr_generic_ret (); 367 extern bool_t xdr_dprinc_arg (); 368 extern bool_t xdr_mprinc_arg (); 369 extern bool_t xdr_rprinc_arg (); 370 extern bool_t xdr_gprincs_arg (); 371 extern bool_t xdr_gprincs_ret (); 372 extern bool_t xdr_chpass_arg (); 373 extern bool_t xdr_chpass3_arg (); 374 extern bool_t xdr_setkey_arg (); 375 extern bool_t xdr_setkey3_arg (); 376 extern bool_t xdr_setkey4_arg (); 377 extern bool_t xdr_chrand_arg (); 378 extern bool_t xdr_chrand3_arg (); 379 extern bool_t xdr_chrand_ret (); 380 extern bool_t xdr_gprinc_arg (); 381 extern bool_t xdr_gprinc_ret (); 382 extern bool_t xdr_kadm5_ret_t (); 383 extern bool_t xdr_kadm5_principal_ent_rec (); 384 extern bool_t xdr_kadm5_policy_ent_rec (); 385 extern bool_t xdr_krb5_keyblock (); 386 extern bool_t xdr_krb5_principal (); 387 extern bool_t xdr_krb5_enctype (); 388 extern bool_t xdr_krb5_octet (); 389 extern bool_t xdr_krb5_int32 (); 390 extern bool_t xdr_u_int32 (); 391 extern bool_t xdr_cpol_arg (); 392 extern bool_t xdr_dpol_arg (); 393 extern bool_t xdr_mpol_arg (); 394 extern bool_t xdr_gpol_arg (); 395 extern bool_t xdr_gpol_ret (); 396 extern bool_t xdr_gpols_arg (); 397 extern bool_t xdr_gpols_ret (); 398 extern bool_t xdr_getprivs_ret (); 399 extern bool_t xdr_purgekeys_arg (); 400 extern bool_t xdr_gstrings_arg (); 401 extern bool_t xdr_gstrings_ret (); 402 extern bool_t xdr_sstring_arg (); 403 extern bool_t xdr_krb5_string_attr (); 404 extern bool_t xdr_kadm5_key_data (); 405 extern bool_t xdr_getpkeys_arg (); 406 extern bool_t xdr_getpkeys_ret (); 407 408 #endif /* __KADM_RPC_H__ */ 409