Path: blob/main/crypto/krb5/src/lib/kadm5/kadm_rpc.h
39537 views
/* -*- mode: c; c-file-style: "bsd"; indent-tabs-mode: t -*- */1#ifndef __KADM_RPC_H__2#define __KADM_RPC_H__34#include <gssrpc/types.h>56#include <krb5.h>7#include <kadm5/admin.h>89struct cprinc_arg {10krb5_ui_4 api_version;11kadm5_principal_ent_rec rec;12long mask;13char *passwd;14};15typedef struct cprinc_arg cprinc_arg;1617struct cprinc3_arg {18krb5_ui_4 api_version;19kadm5_principal_ent_rec rec;20long mask;21int n_ks_tuple;22krb5_key_salt_tuple *ks_tuple;23char *passwd;24};25typedef struct cprinc3_arg cprinc3_arg;2627struct generic_ret {28krb5_ui_4 api_version;29kadm5_ret_t code;30};31typedef struct generic_ret generic_ret;3233struct dprinc_arg {34krb5_ui_4 api_version;35krb5_principal princ;36};37typedef struct dprinc_arg dprinc_arg;3839struct mprinc_arg {40krb5_ui_4 api_version;41kadm5_principal_ent_rec rec;42long mask;43};44typedef struct mprinc_arg mprinc_arg;4546struct rprinc_arg {47krb5_ui_4 api_version;48krb5_principal src;49krb5_principal dest;50};51typedef struct rprinc_arg rprinc_arg;5253struct gprincs_arg {54krb5_ui_4 api_version;55char *exp;56};57typedef struct gprincs_arg gprincs_arg;5859struct gprincs_ret {60krb5_ui_4 api_version;61kadm5_ret_t code;62char **princs;63int count;64};65typedef struct gprincs_ret gprincs_ret;6667struct chpass_arg {68krb5_ui_4 api_version;69krb5_principal princ;70char *pass;71};72typedef struct chpass_arg chpass_arg;7374struct chpass3_arg {75krb5_ui_4 api_version;76krb5_principal princ;77krb5_boolean keepold;78int n_ks_tuple;79krb5_key_salt_tuple *ks_tuple;80char *pass;81};82typedef struct chpass3_arg chpass3_arg;8384struct setkey_arg {85krb5_ui_4 api_version;86krb5_principal princ;87krb5_keyblock *keyblocks;88int n_keys;89};90typedef struct setkey_arg setkey_arg;9192struct setkey3_arg {93krb5_ui_4 api_version;94krb5_principal princ;95krb5_boolean keepold;96int n_ks_tuple;97krb5_key_salt_tuple *ks_tuple;98krb5_keyblock *keyblocks;99int n_keys;100};101typedef struct setkey3_arg setkey3_arg;102103struct setkey4_arg {104krb5_ui_4 api_version;105krb5_principal princ;106krb5_boolean keepold;107kadm5_key_data *key_data;108int n_key_data;109};110typedef struct setkey4_arg setkey4_arg;111112struct chrand_arg {113krb5_ui_4 api_version;114krb5_principal princ;115};116typedef struct chrand_arg chrand_arg;117118struct chrand3_arg {119krb5_ui_4 api_version;120krb5_principal princ;121krb5_boolean keepold;122int n_ks_tuple;123krb5_key_salt_tuple *ks_tuple;124};125typedef struct chrand3_arg chrand3_arg;126127struct chrand_ret {128krb5_ui_4 api_version;129kadm5_ret_t code;130krb5_keyblock key;131krb5_keyblock *keys;132int n_keys;133};134typedef struct chrand_ret chrand_ret;135136struct gprinc_arg {137krb5_ui_4 api_version;138krb5_principal princ;139long mask;140};141typedef struct gprinc_arg gprinc_arg;142143struct gprinc_ret {144krb5_ui_4 api_version;145kadm5_ret_t code;146kadm5_principal_ent_rec rec;147};148typedef struct gprinc_ret gprinc_ret;149150struct cpol_arg {151krb5_ui_4 api_version;152kadm5_policy_ent_rec rec;153long mask;154};155typedef struct cpol_arg cpol_arg;156157struct dpol_arg {158krb5_ui_4 api_version;159char *name;160};161typedef struct dpol_arg dpol_arg;162163struct mpol_arg {164krb5_ui_4 api_version;165kadm5_policy_ent_rec rec;166long mask;167};168typedef struct mpol_arg mpol_arg;169170struct gpol_arg {171krb5_ui_4 api_version;172char *name;173};174typedef struct gpol_arg gpol_arg;175176struct gpol_ret {177krb5_ui_4 api_version;178kadm5_ret_t code;179kadm5_policy_ent_rec rec;180};181typedef struct gpol_ret gpol_ret;182183struct gpols_arg {184krb5_ui_4 api_version;185char *exp;186};187typedef struct gpols_arg gpols_arg;188189struct gpols_ret {190krb5_ui_4 api_version;191kadm5_ret_t code;192char **pols;193int count;194};195typedef struct gpols_ret gpols_ret;196197struct getprivs_ret {198krb5_ui_4 api_version;199kadm5_ret_t code;200long privs;201};202typedef struct getprivs_ret getprivs_ret;203204struct purgekeys_arg {205krb5_ui_4 api_version;206krb5_principal princ;207int keepkvno;208};209typedef struct purgekeys_arg purgekeys_arg;210211struct gstrings_arg {212krb5_ui_4 api_version;213krb5_principal princ;214};215typedef struct gstrings_arg gstrings_arg;216217struct gstrings_ret {218krb5_ui_4 api_version;219kadm5_ret_t code;220krb5_string_attr *strings;221int count;222};223typedef struct gstrings_ret gstrings_ret;224225struct sstring_arg {226krb5_ui_4 api_version;227krb5_principal princ;228char *key;229char *value;230};231typedef struct sstring_arg sstring_arg;232233struct getpkeys_arg {234krb5_ui_4 api_version;235krb5_principal princ;236krb5_kvno kvno;237};238typedef struct getpkeys_arg getpkeys_arg;239240struct getpkeys_ret {241krb5_ui_4 api_version;242kadm5_ret_t code;243kadm5_key_data *key_data;244int n_key_data;245};246typedef struct getpkeys_ret getpkeys_ret;247248struct calias_arg {249krb5_ui_4 api_version;250krb5_principal alias;251krb5_principal target;252};253typedef struct calias_arg calias_arg;254255#define KADM 2112256#define KADMVERS 2257#define CREATE_PRINCIPAL 1258extern enum clnt_stat create_principal_2(cprinc_arg *, generic_ret *,259CLIENT *);260extern bool_t create_principal_2_svc(cprinc_arg *, generic_ret *,261struct svc_req *);262#define DELETE_PRINCIPAL 2263extern enum clnt_stat delete_principal_2(dprinc_arg *, generic_ret *,264CLIENT *);265extern bool_t delete_principal_2_svc(dprinc_arg *, generic_ret *,266struct svc_req *);267#define MODIFY_PRINCIPAL 3268extern enum clnt_stat modify_principal_2(mprinc_arg *, generic_ret *,269CLIENT *);270extern bool_t modify_principal_2_svc(mprinc_arg *, generic_ret *,271struct svc_req *);272#define RENAME_PRINCIPAL 4273extern enum clnt_stat rename_principal_2(rprinc_arg *, generic_ret *,274CLIENT *);275extern bool_t rename_principal_2_svc(rprinc_arg *, generic_ret *,276struct svc_req *);277#define GET_PRINCIPAL 5278extern enum clnt_stat get_principal_2(gprinc_arg *, gprinc_ret *, CLIENT *);279extern bool_t get_principal_2_svc(gprinc_arg *, gprinc_ret *,280struct svc_req *);281#define CHPASS_PRINCIPAL 6282extern enum clnt_stat chpass_principal_2(chpass_arg *, generic_ret *,283CLIENT *);284extern bool_t chpass_principal_2_svc(chpass_arg *, generic_ret *,285struct svc_req *);286#define CHRAND_PRINCIPAL 7287extern enum clnt_stat chrand_principal_2(chrand_arg *, chrand_ret *,288CLIENT *);289extern bool_t chrand_principal_2_svc(chrand_arg *, chrand_ret *,290struct svc_req *);291#define CREATE_POLICY 8292extern enum clnt_stat create_policy_2(cpol_arg *, generic_ret *, CLIENT *);293extern bool_t create_policy_2_svc(cpol_arg *, generic_ret *,294struct svc_req *);295#define DELETE_POLICY 9296extern enum clnt_stat delete_policy_2(dpol_arg *, generic_ret *, CLIENT *);297extern bool_t delete_policy_2_svc(dpol_arg *, generic_ret *,298struct svc_req *);299#define MODIFY_POLICY 10300extern enum clnt_stat modify_policy_2(mpol_arg *, generic_ret *, CLIENT *);301extern bool_t modify_policy_2_svc(mpol_arg *, generic_ret *,302struct svc_req *);303#define GET_POLICY 11304extern enum clnt_stat get_policy_2(gpol_arg *, gpol_ret *, CLIENT *);305extern bool_t get_policy_2_svc(gpol_arg *, gpol_ret *, struct svc_req *);306#define GET_PRIVS 12307extern enum clnt_stat get_privs_2(void *, getprivs_ret *, CLIENT *);308extern bool_t get_privs_2_svc(krb5_ui_4 *, getprivs_ret *, struct svc_req *);309#define INIT 13310extern enum clnt_stat init_2(void *, generic_ret *, CLIENT *);311extern bool_t init_2_svc(krb5_ui_4 *, generic_ret *, struct svc_req *);312#define GET_PRINCS 14313extern enum clnt_stat get_princs_2(gprincs_arg *, gprincs_ret *, CLIENT *);314extern bool_t get_princs_2_svc(gprincs_arg *, gprincs_ret *,315struct svc_req *);316#define GET_POLS 15317extern enum clnt_stat get_pols_2(gpols_arg *, gpols_ret *, CLIENT *);318extern bool_t get_pols_2_svc(gpols_arg *, gpols_ret *, struct svc_req *);319#define SETKEY_PRINCIPAL 16320extern enum clnt_stat setkey_principal_2(setkey_arg *, generic_ret *,321CLIENT *);322extern bool_t setkey_principal_2_svc(setkey_arg *, generic_ret *,323struct svc_req *);324325/* 17 was SETV4KEY_PRINCIPAL (removed in 1.18). */326327#define CREATE_PRINCIPAL3 18328extern enum clnt_stat create_principal3_2(cprinc3_arg *, generic_ret *,329CLIENT *);330extern bool_t create_principal3_2_svc(cprinc3_arg *, generic_ret *,331struct svc_req *);332#define CHPASS_PRINCIPAL3 19333extern enum clnt_stat chpass_principal3_2(chpass3_arg *, generic_ret *,334CLIENT *);335extern bool_t chpass_principal3_2_svc(chpass3_arg *, generic_ret *,336struct svc_req *);337#define CHRAND_PRINCIPAL3 20338extern enum clnt_stat chrand_principal3_2(chrand3_arg *, chrand_ret *,339CLIENT *);340extern bool_t chrand_principal3_2_svc(chrand3_arg *, chrand_ret *,341struct svc_req *);342#define SETKEY_PRINCIPAL3 21343extern enum clnt_stat setkey_principal3_2(setkey3_arg *, generic_ret *,344CLIENT *);345extern bool_t setkey_principal3_2_svc(setkey3_arg *, generic_ret *,346struct svc_req *);347#define PURGEKEYS 22348extern enum clnt_stat purgekeys_2(purgekeys_arg *, generic_ret *, CLIENT *);349extern bool_t purgekeys_2_svc(purgekeys_arg *, generic_ret *,350struct svc_req *);351#define GET_STRINGS 23352extern enum clnt_stat get_strings_2(gstrings_arg *, gstrings_ret *, CLIENT *);353extern bool_t get_strings_2_svc(gstrings_arg *, gstrings_ret *,354struct svc_req *);355#define SET_STRING 24356extern enum clnt_stat set_string_2(sstring_arg *, generic_ret *, CLIENT *);357extern bool_t set_string_2_svc(sstring_arg *, generic_ret *,358struct svc_req *);359#define SETKEY_PRINCIPAL4 25360extern enum clnt_stat setkey_principal4_2(setkey4_arg *, generic_ret *,361CLIENT *);362extern bool_t setkey_principal4_2_svc(setkey4_arg *, generic_ret *,363struct svc_req *);364#define EXTRACT_KEYS 26365extern enum clnt_stat get_principal_keys_2(getpkeys_arg *, getpkeys_ret *,366CLIENT *);367extern bool_t get_principal_keys_2_svc(getpkeys_arg *, getpkeys_ret *,368struct svc_req *);369370#define CREATE_ALIAS 27371extern enum clnt_stat create_alias_2(calias_arg *, generic_ret *, CLIENT *);372extern bool_t create_alias_2_svc(calias_arg *, generic_ret *,373struct svc_req *);374#endif /* __KADM_RPC_H__ */375376377