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 26struct cprinc_arg { 27 krb5_ui_4 api_version; 28 kadm5_principal_ent_rec rec; 29 long mask; 30 char *passwd; 31}; 32typedef struct cprinc_arg cprinc_arg; 33 34struct 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}; 42typedef struct cprinc3_arg cprinc3_arg; 43 44struct generic_ret { 45 krb5_ui_4 api_version; 46 kadm5_ret_t code; 47}; 48typedef struct generic_ret generic_ret; 49 50struct dprinc_arg { 51 krb5_ui_4 api_version; 52 krb5_principal princ; 53}; 54typedef struct dprinc_arg dprinc_arg; 55 56struct mprinc_arg { 57 krb5_ui_4 api_version; 58 kadm5_principal_ent_rec rec; 59 long mask; 60}; 61typedef struct mprinc_arg mprinc_arg; 62 63struct rprinc_arg { 64 krb5_ui_4 api_version; 65 krb5_principal src; 66 krb5_principal dest; 67}; 68typedef struct rprinc_arg rprinc_arg; 69 70struct gprincs_arg { 71 krb5_ui_4 api_version; 72 char *exp; 73}; 74typedef struct gprincs_arg gprincs_arg; 75 76struct gprincs_ret { 77 krb5_ui_4 api_version; 78 kadm5_ret_t code; 79 char **princs; 80 int count; 81}; 82typedef struct gprincs_ret gprincs_ret; 83 84struct chpass_arg { 85 krb5_ui_4 api_version; 86 krb5_principal princ; 87 char *pass; 88}; 89typedef struct chpass_arg chpass_arg; 90 91struct 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}; 99typedef struct chpass3_arg chpass3_arg; 100 101struct setv4key_arg { 102 krb5_ui_4 api_version; 103 krb5_principal princ; 104 krb5_keyblock *keyblock; 105}; 106typedef struct setv4key_arg setv4key_arg; 107 108struct setkey_arg { 109 krb5_ui_4 api_version; 110 krb5_principal princ; 111 krb5_keyblock *keyblocks; 112 int n_keys; 113}; 114typedef struct setkey_arg setkey_arg; 115 116struct 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}; 125typedef struct setkey3_arg setkey3_arg; 126 127struct chrand_arg { 128 krb5_ui_4 api_version; 129 krb5_principal princ; 130}; 131typedef struct chrand_arg chrand_arg; 132 133struct 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}; 140typedef struct chrand3_arg chrand3_arg; 141 142struct 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}; 149typedef struct chrand_ret chrand_ret; 150 151struct gprinc_arg { 152 krb5_ui_4 api_version; 153 krb5_principal princ; 154 long mask; 155}; 156typedef struct gprinc_arg gprinc_arg; 157 158struct gprinc_ret { 159 krb5_ui_4 api_version; 160 kadm5_ret_t code; 161 kadm5_principal_ent_rec rec; 162}; 163typedef struct gprinc_ret gprinc_ret; 164 165struct cpol_arg { 166 krb5_ui_4 api_version; 167 kadm5_policy_ent_rec rec; 168 long mask; 169}; 170typedef struct cpol_arg cpol_arg; 171 172struct dpol_arg { 173 krb5_ui_4 api_version; 174 char *name; 175}; 176typedef struct dpol_arg dpol_arg; 177 178struct mpol_arg { 179 krb5_ui_4 api_version; 180 kadm5_policy_ent_rec rec; 181 long mask; 182}; 183typedef struct mpol_arg mpol_arg; 184 185struct gpol_arg { 186 krb5_ui_4 api_version; 187 char *name; 188}; 189typedef struct gpol_arg gpol_arg; 190 191struct gpol_ret { 192 krb5_ui_4 api_version; 193 kadm5_ret_t code; 194 kadm5_policy_ent_rec rec; 195}; 196typedef struct gpol_ret gpol_ret; 197 198struct gpols_arg { 199 krb5_ui_4 api_version; 200 char *exp; 201}; 202typedef struct gpols_arg gpols_arg; 203 204struct gpols_ret { 205 krb5_ui_4 api_version; 206 kadm5_ret_t code; 207 char **pols; 208 int count; 209}; 210typedef struct gpols_ret gpols_ret; 211 212struct getprivs_ret { 213 krb5_ui_4 api_version; 214 kadm5_ret_t code; 215 long privs; 216}; 217typedef struct getprivs_ret getprivs_ret; 218 219#define KADM 2112 220#define KADMVERS 2 221#define CREATE_PRINCIPAL 1 222extern generic_ret * create_principal_2(cprinc_arg *, CLIENT *); 223extern generic_ret * create_principal_2_svc(cprinc_arg *, struct svc_req *); 224#define DELETE_PRINCIPAL 2 225extern generic_ret * delete_principal_2(dprinc_arg *, CLIENT *); 226extern generic_ret * delete_principal_2_svc(dprinc_arg *, struct svc_req *); 227#define MODIFY_PRINCIPAL 3 228extern generic_ret * modify_principal_2(mprinc_arg *, CLIENT *); 229extern generic_ret * modify_principal_2_svc(mprinc_arg *, struct svc_req *); 230#define RENAME_PRINCIPAL 4 231extern generic_ret * rename_principal_2(rprinc_arg *, CLIENT *); 232extern generic_ret * rename_principal_2_svc(rprinc_arg *, struct svc_req *); 233#define GET_PRINCIPAL 5 234extern gprinc_ret * get_principal_2(gprinc_arg *, CLIENT *); 235extern gprinc_ret * get_principal_2_svc(gprinc_arg *, struct svc_req *); 236#define CHPASS_PRINCIPAL 6 237extern generic_ret * chpass_principal_2(chpass_arg *, CLIENT *); 238extern generic_ret * chpass_principal_2_svc(chpass_arg *, struct svc_req *); 239#define CHRAND_PRINCIPAL 7 240extern chrand_ret * chrand_principal_2(chrand_arg *, CLIENT *); 241extern chrand_ret * chrand_principal_2_svc(chrand_arg *, struct svc_req *); 242#define CREATE_POLICY 8 243extern generic_ret * create_policy_2(cpol_arg *, CLIENT *); 244extern generic_ret * create_policy_2_svc(cpol_arg *, struct svc_req *); 245#define DELETE_POLICY 9 246extern generic_ret * delete_policy_2(dpol_arg *, CLIENT *); 247extern generic_ret * delete_policy_2_svc(dpol_arg *, struct svc_req *); 248#define MODIFY_POLICY 10 249extern generic_ret * modify_policy_2(mpol_arg *, CLIENT *); 250extern generic_ret * modify_policy_2_svc(mpol_arg *, struct svc_req *); 251#define GET_POLICY 11 252extern gpol_ret * get_policy_2(gpol_arg *, CLIENT *); 253extern gpol_ret * get_policy_2_svc(gpol_arg *, struct svc_req *); 254#define GET_PRIVS 12 255extern getprivs_ret * get_privs_2(void *, CLIENT *); 256extern getprivs_ret * get_privs_2_svc(krb5_ui_4 *, struct svc_req *); 257#define INIT 13 258extern generic_ret * init_2(void *, CLIENT *); 259extern generic_ret * init_2_svc(krb5_ui_4 *, struct svc_req *); 260#define GET_PRINCS 14 261extern gprincs_ret * get_princs_2(gprincs_arg *, CLIENT *); 262extern gprincs_ret * get_princs_2_svc(gprincs_arg *, struct svc_req *); 263#define GET_POLS 15 264extern gpols_ret * get_pols_2(gpols_arg *, CLIENT *); 265extern gpols_ret * get_pols_2_svc(gpols_arg *, struct svc_req *); 266#define SETKEY_PRINCIPAL 16 267extern generic_ret * setkey_principal_2(setkey_arg *, CLIENT *); 268extern generic_ret * setkey_principal_2_svc(setkey_arg *, struct svc_req *); 269#define SETV4KEY_PRINCIPAL 17 270extern generic_ret * setv4key_principal_2(setv4key_arg *, CLIENT *); 271extern generic_ret * setv4key_principal_2_svc(setv4key_arg *, struct svc_req *); 272#define CREATE_PRINCIPAL3 18 273extern generic_ret * create_principal3_2(cprinc3_arg *, CLIENT *); 274extern generic_ret * create_principal3_2_svc(cprinc3_arg *, struct svc_req *); 275#define CHPASS_PRINCIPAL3 19 276extern generic_ret * chpass_principal3_2(chpass3_arg *, CLIENT *); 277extern generic_ret * chpass_principal3_2_svc(chpass3_arg *, struct svc_req *); 278#define CHRAND_PRINCIPAL3 20 279extern chrand_ret * chrand_principal3_2(chrand3_arg *, CLIENT *); 280extern chrand_ret * chrand_principal3_2_svc(chrand3_arg *, struct svc_req *); 281#define SETKEY_PRINCIPAL3 21 282extern generic_ret * setkey_principal3_2(setkey3_arg *, CLIENT *); 283extern generic_ret * setkey_principal3_2_svc(setkey3_arg *, struct svc_req *); 284 285extern bool_t xdr_cprinc_arg (); 286extern bool_t xdr_cprinc3_arg (); 287extern bool_t xdr_generic_ret (); 288extern bool_t xdr_dprinc_arg (); 289extern bool_t xdr_mprinc_arg (); 290extern bool_t xdr_rprinc_arg (); 291extern bool_t xdr_gprincs_arg (); 292extern bool_t xdr_gprincs_ret (); 293extern bool_t xdr_chpass_arg (); 294extern bool_t xdr_chpass3_arg (); 295extern bool_t xdr_setv4key_arg (); 296extern bool_t xdr_setkey_arg (); 297extern bool_t xdr_setkey3_arg (); 298extern bool_t xdr_chrand_arg (); 299extern bool_t xdr_chrand3_arg (); 300extern bool_t xdr_chrand_ret (); 301extern bool_t xdr_gprinc_arg (); 302extern bool_t xdr_gprinc_ret (); 303extern bool_t xdr_kadm5_ret_t (); 304extern bool_t xdr_kadm5_principal_ent_rec (); 305extern bool_t xdr_kadm5_policy_ent_rec (); 306extern bool_t xdr_krb5_keyblock (); 307extern bool_t xdr_krb5_principal (); 308extern bool_t xdr_krb5_enctype (); 309extern bool_t xdr_krb5_octet (); 310extern bool_t xdr_krb5_int32 (); 311extern bool_t xdr_u_int32 (); 312extern bool_t xdr_cpol_arg (); 313extern bool_t xdr_dpol_arg (); 314extern bool_t xdr_mpol_arg (); 315extern bool_t xdr_gpol_arg (); 316extern bool_t xdr_gpol_ret (); 317extern bool_t xdr_gpols_arg (); 318extern bool_t xdr_gpols_ret (); 319extern bool_t xdr_getprivs_ret (); 320 321 322#endif /* __KADM_RPC_H__ */ 323