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 struct calias_arg { 250 krb5_ui_4 api_version; 251 krb5_principal alias; 252 krb5_principal target; 253 }; 254 typedef struct calias_arg calias_arg; 255 256 #define KADM 2112 257 #define KADMVERS 2 258 #define CREATE_PRINCIPAL 1 259 extern enum clnt_stat create_principal_2(cprinc_arg *, generic_ret *, 260 CLIENT *); 261 extern bool_t create_principal_2_svc(cprinc_arg *, generic_ret *, 262 struct svc_req *); 263 #define DELETE_PRINCIPAL 2 264 extern enum clnt_stat delete_principal_2(dprinc_arg *, generic_ret *, 265 CLIENT *); 266 extern bool_t delete_principal_2_svc(dprinc_arg *, generic_ret *, 267 struct svc_req *); 268 #define MODIFY_PRINCIPAL 3 269 extern enum clnt_stat modify_principal_2(mprinc_arg *, generic_ret *, 270 CLIENT *); 271 extern bool_t modify_principal_2_svc(mprinc_arg *, generic_ret *, 272 struct svc_req *); 273 #define RENAME_PRINCIPAL 4 274 extern enum clnt_stat rename_principal_2(rprinc_arg *, generic_ret *, 275 CLIENT *); 276 extern bool_t rename_principal_2_svc(rprinc_arg *, generic_ret *, 277 struct svc_req *); 278 #define GET_PRINCIPAL 5 279 extern enum clnt_stat get_principal_2(gprinc_arg *, gprinc_ret *, CLIENT *); 280 extern bool_t get_principal_2_svc(gprinc_arg *, gprinc_ret *, 281 struct svc_req *); 282 #define CHPASS_PRINCIPAL 6 283 extern enum clnt_stat chpass_principal_2(chpass_arg *, generic_ret *, 284 CLIENT *); 285 extern bool_t chpass_principal_2_svc(chpass_arg *, generic_ret *, 286 struct svc_req *); 287 #define CHRAND_PRINCIPAL 7 288 extern enum clnt_stat chrand_principal_2(chrand_arg *, chrand_ret *, 289 CLIENT *); 290 extern bool_t chrand_principal_2_svc(chrand_arg *, chrand_ret *, 291 struct svc_req *); 292 #define CREATE_POLICY 8 293 extern enum clnt_stat create_policy_2(cpol_arg *, generic_ret *, CLIENT *); 294 extern bool_t create_policy_2_svc(cpol_arg *, generic_ret *, 295 struct svc_req *); 296 #define DELETE_POLICY 9 297 extern enum clnt_stat delete_policy_2(dpol_arg *, generic_ret *, CLIENT *); 298 extern bool_t delete_policy_2_svc(dpol_arg *, generic_ret *, 299 struct svc_req *); 300 #define MODIFY_POLICY 10 301 extern enum clnt_stat modify_policy_2(mpol_arg *, generic_ret *, CLIENT *); 302 extern bool_t modify_policy_2_svc(mpol_arg *, generic_ret *, 303 struct svc_req *); 304 #define GET_POLICY 11 305 extern enum clnt_stat get_policy_2(gpol_arg *, gpol_ret *, CLIENT *); 306 extern bool_t get_policy_2_svc(gpol_arg *, gpol_ret *, struct svc_req *); 307 #define GET_PRIVS 12 308 extern enum clnt_stat get_privs_2(void *, getprivs_ret *, CLIENT *); 309 extern bool_t get_privs_2_svc(krb5_ui_4 *, getprivs_ret *, struct svc_req *); 310 #define INIT 13 311 extern enum clnt_stat init_2(void *, generic_ret *, CLIENT *); 312 extern bool_t init_2_svc(krb5_ui_4 *, generic_ret *, struct svc_req *); 313 #define GET_PRINCS 14 314 extern enum clnt_stat get_princs_2(gprincs_arg *, gprincs_ret *, CLIENT *); 315 extern bool_t get_princs_2_svc(gprincs_arg *, gprincs_ret *, 316 struct svc_req *); 317 #define GET_POLS 15 318 extern enum clnt_stat get_pols_2(gpols_arg *, gpols_ret *, CLIENT *); 319 extern bool_t get_pols_2_svc(gpols_arg *, gpols_ret *, struct svc_req *); 320 #define SETKEY_PRINCIPAL 16 321 extern enum clnt_stat setkey_principal_2(setkey_arg *, generic_ret *, 322 CLIENT *); 323 extern bool_t setkey_principal_2_svc(setkey_arg *, generic_ret *, 324 struct svc_req *); 325 326 /* 17 was SETV4KEY_PRINCIPAL (removed in 1.18). */ 327 328 #define CREATE_PRINCIPAL3 18 329 extern enum clnt_stat create_principal3_2(cprinc3_arg *, generic_ret *, 330 CLIENT *); 331 extern bool_t create_principal3_2_svc(cprinc3_arg *, generic_ret *, 332 struct svc_req *); 333 #define CHPASS_PRINCIPAL3 19 334 extern enum clnt_stat chpass_principal3_2(chpass3_arg *, generic_ret *, 335 CLIENT *); 336 extern bool_t chpass_principal3_2_svc(chpass3_arg *, generic_ret *, 337 struct svc_req *); 338 #define CHRAND_PRINCIPAL3 20 339 extern enum clnt_stat chrand_principal3_2(chrand3_arg *, chrand_ret *, 340 CLIENT *); 341 extern bool_t chrand_principal3_2_svc(chrand3_arg *, chrand_ret *, 342 struct svc_req *); 343 #define SETKEY_PRINCIPAL3 21 344 extern enum clnt_stat setkey_principal3_2(setkey3_arg *, generic_ret *, 345 CLIENT *); 346 extern bool_t setkey_principal3_2_svc(setkey3_arg *, generic_ret *, 347 struct svc_req *); 348 #define PURGEKEYS 22 349 extern enum clnt_stat purgekeys_2(purgekeys_arg *, generic_ret *, CLIENT *); 350 extern bool_t purgekeys_2_svc(purgekeys_arg *, generic_ret *, 351 struct svc_req *); 352 #define GET_STRINGS 23 353 extern enum clnt_stat get_strings_2(gstrings_arg *, gstrings_ret *, CLIENT *); 354 extern bool_t get_strings_2_svc(gstrings_arg *, gstrings_ret *, 355 struct svc_req *); 356 #define SET_STRING 24 357 extern enum clnt_stat set_string_2(sstring_arg *, generic_ret *, CLIENT *); 358 extern bool_t set_string_2_svc(sstring_arg *, generic_ret *, 359 struct svc_req *); 360 #define SETKEY_PRINCIPAL4 25 361 extern enum clnt_stat setkey_principal4_2(setkey4_arg *, generic_ret *, 362 CLIENT *); 363 extern bool_t setkey_principal4_2_svc(setkey4_arg *, generic_ret *, 364 struct svc_req *); 365 #define EXTRACT_KEYS 26 366 extern enum clnt_stat get_principal_keys_2(getpkeys_arg *, getpkeys_ret *, 367 CLIENT *); 368 extern bool_t get_principal_keys_2_svc(getpkeys_arg *, getpkeys_ret *, 369 struct svc_req *); 370 371 #define CREATE_ALIAS 27 372 extern enum clnt_stat create_alias_2(calias_arg *, generic_ret *, CLIENT *); 373 extern bool_t create_alias_2_svc(calias_arg *, generic_ret *, 374 struct svc_req *); 375 #endif /* __KADM_RPC_H__ */ 376