From f911c6cd21855adc68c087fbc617f4b9f89b6f30 Mon Sep 17 00:00:00 2001 From: Ezra Peisach Date: Sun, 18 Feb 2001 23:00:08 +0000 Subject: * server_internal.h: Add prototype for krb5_free_key_data_contents() which really should be in libkdb. * kadm_rpc_xdr.c: Include krb5/admin_xdr.h for prototypes. * kadm_rpc.h: Add prototypes for client and server stub functions. Server functions renamed to have _svc appended. * alt_prof.c: Clean up warnings. Do not shadow index() with local variable. * admin_xdr.h: Add prototypes for xdr_nulltype(), xdr_krb5_ui_4(), xdr_krb5_int16(), xdr_krb5_key_data_nocontents(), xdr_krb5_key_salt_tuple(), xdr_krb5_tl_data(), xdr_kadm5_principal_ent_rec_v1(), xdr_cprinc3_arg(), xdr_generic_ret(0, xdr_chpass3_arg(), xdr_setv4key_arg(), xdr_setkey_arg(), xdr_setkey3_arg(), xdr_chrand3_arg(), xdr_gprincs_arg(), xdr_grpincs_ret(), xdr_gpols_arg(), xdr_gpols_ret(), xdr_getprivs_ret(), xdr_krb5_salttype(). * admin_internal.h: Add prototype for _kadm5_check_handle(). * admin.h: Add prototypes for kadm5_free_config_params(), kadm5_decrypt_key(), ovsec_kadm_free_name_list(). * adb.h: Add prototypes for xdr_osa_pw_hist_ent(), xdr_krb5_key_data(), osa_adb_rename_db(), osa_adb_rename_policy_db(). git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@13013 dc483132-0cff-0310-8789-dd5450dbe970 --- src/lib/kadm5/ChangeLog | 31 +++++++++++++ src/lib/kadm5/adb.h | 6 +++ src/lib/kadm5/admin.h | 13 ++++++ src/lib/kadm5/admin_internal.h | 1 + src/lib/kadm5/admin_xdr.h | 53 ++++++++++++++++++++- src/lib/kadm5/alt_prof.c | 50 ++++++++++---------- src/lib/kadm5/kadm_rpc.h | 100 +++++++++++++++++++++++++++++++--------- src/lib/kadm5/kadm_rpc_xdr.c | 1 + src/lib/kadm5/server_internal.h | 4 ++ 9 files changed, 212 insertions(+), 47 deletions(-) diff --git a/src/lib/kadm5/ChangeLog b/src/lib/kadm5/ChangeLog index a44a5cee9..29ef6e856 100644 --- a/src/lib/kadm5/ChangeLog +++ b/src/lib/kadm5/ChangeLog @@ -1,3 +1,34 @@ +Sun Feb 18 16:26:33 2001 Ezra Peisach + + * server_internal.h: Add prototype for + krb5_free_key_data_contents() which really should be in libkdb. + + * kadm_rpc_xdr.c: Include krb5/admin_xdr.h for prototypes. + + * kadm_rpc.h: Add prototypes for client and server stub + functions. Server functions renamed to have _svc appended. + + * alt_prof.c: Clean up warnings. Do not shadow index() with local + variable. + + * admin_xdr.h: Add prototypes for xdr_nulltype(), xdr_krb5_ui_4(), + xdr_krb5_int16(), xdr_krb5_key_data_nocontents(), + xdr_krb5_key_salt_tuple(), xdr_krb5_tl_data(), + xdr_kadm5_principal_ent_rec_v1(), xdr_cprinc3_arg(), + xdr_generic_ret(0, xdr_chpass3_arg(), xdr_setv4key_arg(), + xdr_setkey_arg(), xdr_setkey3_arg(), xdr_chrand3_arg(), + xdr_gprincs_arg(), xdr_grpincs_ret(), xdr_gpols_arg(), + xdr_gpols_ret(), xdr_getprivs_ret(), xdr_krb5_salttype(). + + * admin_internal.h: Add prototype for _kadm5_check_handle(). + + * admin.h: Add prototypes for kadm5_free_config_params(), + kadm5_decrypt_key(), ovsec_kadm_free_name_list(). + + * adb.h: Add prototypes for xdr_osa_pw_hist_ent(), + xdr_krb5_key_data(), osa_adb_rename_db(), + osa_adb_rename_policy_db(). + 2001-01-16 Ken Raeburn * str_conv.c (krb5_keysalt_iterate): Always use the prototype for diff --git a/src/lib/kadm5/adb.h b/src/lib/kadm5/adb.h index 81ff96cfc..031f075de 100644 --- a/src/lib/kadm5/adb.h +++ b/src/lib/kadm5/adb.h @@ -91,6 +91,8 @@ typedef void (*osa_adb_iter_policy_func) (void *, osa_policy_ent_t); */ bool_t xdr_osa_princ_ent_rec(XDR *xdrs, osa_princ_ent_t objp); bool_t xdr_osa_policy_ent_rec(XDR *xdrs, osa_policy_ent_t objp); +bool_t xdr_osa_pw_hist_ent(XDR *xdrs, osa_pw_hist_ent *objp); +bool_t xdr_krb5_key_data(XDR *xdrs, krb5_key_data *objp); /* * Functions @@ -98,6 +100,10 @@ bool_t xdr_osa_policy_ent_rec(XDR *xdrs, osa_policy_ent_t objp); osa_adb_ret_t osa_adb_create_db(char *filename, char *lockfile, int magic); osa_adb_ret_t osa_adb_destroy_db(char *filename, char *lockfile, int magic); +osa_adb_ret_t osa_adb_rename_db(char *filefrom, char *lockfrom, + char *fileto, char *lockto, int magic); +osa_adb_ret_t osa_adb_rename_policy_db(kadm5_config_params *fromparams, + kadm5_config_params *toparams); osa_adb_ret_t osa_adb_init_db(osa_adb_db_t *dbp, char *filename, char *lockfile, int magic); osa_adb_ret_t osa_adb_fini_db(osa_adb_db_t db, int magic); diff --git a/src/lib/kadm5/admin.h b/src/lib/kadm5/admin.h index c2fd1601f..f99743e6b 100644 --- a/src/lib/kadm5/admin.h +++ b/src/lib/kadm5/admin.h @@ -253,6 +253,10 @@ krb5_error_code kadm5_get_config_params(krb5_context context, char *kdcprofile, char *kdcenv, kadm5_config_params *params_in, kadm5_config_params *params_out); + +krb5_error_code kadm5_free_config_params(krb5_context context, + kadm5_config_params *params); + krb5_error_code kadm5_free_realm_params(krb5_context kcontext, kadm5_config_params *params); #endif @@ -369,6 +373,12 @@ kadm5_ret_t kadm5_setkey_principal_3(void *server_handle, krb5_keyblock *keyblocks, int n_keys); +kadm5_ret_t kadm5_decrypt_key(void *server_handle, + kadm5_principal_ent_t entry, krb5_int32 + ktype, krb5_int32 stype, krb5_int32 + kvno, krb5_keyblock *keyblock, + krb5_keysalt *keysalt, int *kvnop); + kadm5_ret_t kadm5_create_policy(void *server_handle, kadm5_policy_ent_t ent, long mask); @@ -628,6 +638,9 @@ ovsec_kadm_ret_t ovsec_kadm_free_principal_ent(void *server_handle, ovsec_kadm_ret_t ovsec_kadm_free_policy_ent(void *server_handle, ovsec_kadm_policy_ent_t ent); +ovsec_kadm_ret_t ovsec_kadm_free_name_list(void *server_handle, + char **names, int count); + ovsec_kadm_ret_t ovsec_kadm_get_principals(void *server_handle, char *exp, char ***princs, int *count); diff --git a/src/lib/kadm5/admin_internal.h b/src/lib/kadm5/admin_internal.h index 15db18e2a..15d826992 100644 --- a/src/lib/kadm5/admin_internal.h +++ b/src/lib/kadm5/admin_internal.h @@ -57,6 +57,7 @@ #define _KADM5_CHECK_HANDLE(handle) \ { int code; if ((code = _kadm5_check_handle((void *)handle))) return code; } +int _kadm5_check_handle(void *handle); kadm5_ret_t _kadm5_chpass_principal_util(void *server_handle, void *lhandle, krb5_principal princ, diff --git a/src/lib/kadm5/admin_xdr.h b/src/lib/kadm5/admin_xdr.h index 3e4f48f7a..5a2566ef9 100644 --- a/src/lib/kadm5/admin_xdr.h +++ b/src/lib/kadm5/admin_xdr.h @@ -4,6 +4,36 @@ * $Header$ * * $Log$ + * Revision 1.6 2001/02/18 23:00:08 epeisach + * * server_internal.h: Add prototype for + * krb5_free_key_data_contents() which really should be in libkdb. + * + * * kadm_rpc_xdr.c: Include krb5/admin_xdr.h for prototypes. + * + * * kadm_rpc.h: Add prototypes for client and server stub + * functions. Server functions renamed to have _svc appended. + * + * * alt_prof.c: Clean up warnings. Do not shadow index() with local + * variable. + * + * * admin_xdr.h: Add prototypes for xdr_nulltype(), xdr_krb5_ui_4(), + * xdr_krb5_int16(), xdr_krb5_key_data_nocontents(), + * xdr_krb5_key_salt_tuple(), xdr_krb5_tl_data(), + * xdr_kadm5_principal_ent_rec_v1(), xdr_cprinc3_arg(), + * xdr_generic_ret(0, xdr_chpass3_arg(), xdr_setv4key_arg(), + * xdr_setkey_arg(), xdr_setkey3_arg(), xdr_chrand3_arg(), + * xdr_gprincs_arg(), xdr_grpincs_ret(), xdr_gpols_arg(), + * xdr_gpols_ret(), xdr_getprivs_ret(), xdr_krb5_salttype(). + * + * * admin_internal.h: Add prototype for _kadm5_check_handle(). + * + * * admin.h: Add prototypes for kadm5_free_config_params(), + * kadm5_decrypt_key(), ovsec_kadm_free_name_list(). + * + * * adb.h: Add prototypes for xdr_osa_pw_hist_ent(), + * xdr_krb5_key_data(), osa_adb_rename_db(), + * osa_adb_rename_policy_db(). + * * Revision 1.5 1996/07/22 20:35:33 marc * this commit includes all the changes on the OV_9510_INTEGRATION and * OV_MERGE branches. This includes, but is not limited to, the new openvision @@ -34,32 +64,53 @@ #include #include "kadm_rpc.h" +bool_t xdr_ui_4(XDR *xdrs, krb5_ui_4 *objp); bool_t xdr_nullstring(XDR *xdrs, char **objp); +bool_t xdr_nulltype(XDR *xdrs, void **objp, xdrproc_t proc); bool_t xdr_krb5_timestamp(XDR *xdrs, krb5_timestamp *objp); bool_t xdr_krb5_kvno(XDR *xdrs, krb5_kvno *objp); bool_t xdr_krb5_deltat(XDR *xdrs, krb5_deltat *objp); bool_t xdr_krb5_flags(XDR *xdrs, krb5_flags *objp); +bool_t xdr_krb5_ui_4(XDR *xdrs, krb5_ui_4 *objp); +bool_t xdr_krb5_int16(XDR *xdrs, krb5_int16 *objp); +bool_t xdr_krb5_key_data_nocontents(XDR *xdrs, krb5_key_data *objp); +bool_t xdr_krb5_key_salt_tuple(XDR *xdrs, krb5_key_salt_tuple *objp); +bool_t xdr_krb5_tl_data(XDR *xdrs, krb5_tl_data **tl_data_head); bool_t xdr_kadm5_ret_t(XDR *xdrs, kadm5_ret_t *objp); +bool_t xdr_kadm5_principal_ent_rec_v1(XDR *xdrs, kadm5_principal_ent_rec *objp); bool_t xdr_kadm5_principal_ent_rec(XDR *xdrs, kadm5_principal_ent_rec *objp); bool_t xdr_kadm5_policy_ent_rec(XDR *xdrs, kadm5_policy_ent_rec *objp); bool_t xdr_kadm5_policy_ent_t(XDR *xdrs, kadm5_policy_ent_t *objp); bool_t xdr_kadm5_principal_ent_t(XDR *xdrs, kadm5_principal_ent_t *objp); bool_t xdr_cprinc_arg(XDR *xdrs, cprinc_arg *objp); +bool_t xdr_cprinc3_arg(XDR *xdrs, cprinc3_arg *objp); +bool_t xdr_generic_ret(XDR *xdrs, generic_ret *objp); bool_t xdr_dprinc_arg(XDR *xdrs, dprinc_arg *objp); bool_t xdr_mprinc_arg(XDR *xdrs, mprinc_arg *objp); bool_t xdr_rprinc_arg(XDR *xdrs, rprinc_arg *objp); bool_t xdr_chpass_arg(XDR *xdrs, chpass_arg *objp); +bool_t xdr_chpass3_arg(XDR *xdrs, chpass3_arg *objp); +bool_t xdr_setv4key_arg(XDR *xdrs, setv4key_arg *objp); +bool_t xdr_setkey_arg(XDR *xdrs, setkey_arg *objp); +bool_t xdr_setkey3_arg(XDR *xdrs, setkey3_arg *objp); bool_t xdr_chrand_arg(XDR *xdrs, chrand_arg *objp); +bool_t xdr_chrand3_arg(XDR *xdrs, chrand3_arg *objp); bool_t xdr_chrand_ret(XDR *xdrs, chrand_ret *objp); bool_t xdr_gprinc_arg(XDR *xdrs, gprinc_arg *objp); -bool_t xdr_gprinc_arg(XDR *xdrs, gprinc_arg *objp); +bool_t xdr_gprinc_ret(XDR *xdrs, gprinc_ret *objp); +bool_t xdr_gprincs_arg(XDR *xdrs, gprincs_arg *objp); +bool_t xdr_gprincs_ret(XDR *xdrs, gprincs_ret *objp); bool_t xdr_cpol_arg(XDR *xdrs, cpol_arg *objp); bool_t xdr_dpol_arg(XDR *xdrs, dpol_arg *objp); bool_t xdr_mpol_arg(XDR *xdrs, mpol_arg *objp); bool_t xdr_gpol_arg(XDR *xdrs, gpol_arg *objp); bool_t xdr_gpol_ret(XDR *xdrs, gpol_ret *objp); +bool_t xdr_gpols_arg(XDR *xdrs, gpols_arg *objp); +bool_t xdr_gpols_ret(XDR *xdrs, gpols_ret *objp); +bool_t xdr_getprivs_ret(XDR *xdrs, getprivs_ret *objp); bool_t xdr_krb5_principal(XDR *xdrs, krb5_principal *objp); bool_t xdr_krb5_octet(XDR *xdrs, krb5_octet *objp); bool_t xdr_krb5_int32(XDR *xdrs, krb5_int32 *objp); bool_t xdr_krb5_enctype(XDR *xdrs, krb5_enctype *objp); +bool_t xdr_krb5_salttype(XDR *xdrs, krb5_int32 *objp); bool_t xdr_krb5_keyblock(XDR *xdrs, krb5_keyblock *objp); diff --git a/src/lib/kadm5/alt_prof.c b/src/lib/kadm5/alt_prof.c index 3cf58a6f3..8be572cc3 100644 --- a/src/lib/kadm5/alt_prof.c +++ b/src/lib/kadm5/alt_prof.c @@ -30,15 +30,14 @@ */ #include "k5-int.h" #include +#include "adm_proto.h" #include #include - static krb5_key_salt_tuple *copy_key_salt_tuple(ksalt, len) krb5_key_salt_tuple *ksalt; krb5_int32 len; { - int i; krb5_key_salt_tuple *knew; if((knew = (krb5_key_salt_tuple *) @@ -67,7 +66,7 @@ krb5_aprof_init(fname, envname, acontextp) krb5_pointer *acontextp; { krb5_error_code kret; - profile_filespec_t namelist[2]; + const_profile_filespec_t namelist[2]; profile_t profile; namelist[1] = (profile_filespec_t) NULL; @@ -141,20 +140,20 @@ krb5_aprof_get_deltat(acontext, hierarchy, uselast, deltatp) krb5_error_code kret; char **values; char *valp; - int index; + int idx; if (!(kret = krb5_aprof_getvals(acontext, hierarchy, &values))) { - index = 0; + idx = 0; if (uselast) { - for (index=0; values[index]; index++); - index--; + for (idx=0; values[idx]; idx++); + idx--; } - valp = values[index]; + valp = values[idx]; kret = krb5_string_to_deltat(valp, deltatp); /* Free the string storage */ - for (index=0; values[index]; index++) - krb5_xfree(values[index]); + for (idx=0; values[idx]; idx++) + krb5_xfree(values[idx]); krb5_xfree(values); } return(kret); @@ -183,20 +182,20 @@ krb5_aprof_get_string(acontext, hierarchy, uselast, stringp) { krb5_error_code kret; char **values; - int index, i; + int idx, i; if (!(kret = krb5_aprof_getvals(acontext, hierarchy, &values))) { - index = 0; + idx = 0; if (uselast) { - for (index=0; values[index]; index++); - index--; + for (idx=0; values[idx]; idx++); + idx--; } - *stringp = values[index]; + *stringp = values[idx]; /* Free the string storage */ for (i=0; values[i]; i++) - if (i != index) + if (i != idx) krb5_xfree(values[i]); krb5_xfree(values); } @@ -227,21 +226,21 @@ krb5_aprof_get_int32(acontext, hierarchy, uselast, intp) { krb5_error_code kret; char **values; - int index; + int idx; if (!(kret = krb5_aprof_getvals(acontext, hierarchy, &values))) { - index = 0; + idx = 0; if (uselast) { - for (index=0; values[index]; index++); - index--; + for (idx=0; values[idx]; idx++); + idx--; } - if (sscanf(values[index], "%d", intp) != 1) + if (sscanf(values[idx], "%d", intp) != 1) kret = EINVAL; /* Free the string storage */ - for (index=0; values[index]; index++) - krb5_xfree(values[index]); + for (idx=0; values[idx]; idx++) + krb5_xfree(values[idx]); krb5_xfree(values); } return(kret); @@ -366,7 +365,8 @@ krb5_error_code kadm5_get_config_params(context, kdcprofile, kdcenv, } if (params.mask & KADM5_CONFIG_ADMIN_SERVER) { char *p; - if (p = strchr(params.admin_server, ':')) { + p = strchr(params.admin_server, ':'); + if (p) { params.kadmind_port = atoi(p+1); params.mask |= KADM5_CONFIG_KADMIND_PORT; *p = '\0'; @@ -419,7 +419,7 @@ krb5_error_code kadm5_get_config_params(context, kdcprofile, kdcenv, !krb5_aprof_get_string(aprofile, hierarchy, TRUE, &svalue)) { params.mask |= KADM5_CONFIG_ADMIN_KEYTAB; params.admin_keytab = svalue; - } else if (params.admin_keytab = (char *) getenv("KRB5_KTNAME")) { + } else if ((params.admin_keytab = (char *) getenv("KRB5_KTNAME"))) { params.admin_keytab = strdup(params.admin_keytab); if (params.admin_keytab) params.mask |= KADM5_CONFIG_ADMIN_KEYTAB; diff --git a/src/lib/kadm5/kadm_rpc.h b/src/lib/kadm5/kadm_rpc.h index 4387f70a7..d546c9472 100644 --- a/src/lib/kadm5/kadm_rpc.h +++ b/src/lib/kadm5/kadm_rpc.h @@ -1,3 +1,6 @@ +#ifndef __KADM_RPC_H__ +#define __KADM_RPC_H__ + #include #include @@ -234,44 +237,99 @@ bool_t xdr_getprivs_ret(); #define KADM ((krb5_ui_4)2112) #define KADMVERS ((krb5_ui_4)2) #define CREATE_PRINCIPAL ((krb5_ui_4)1) -extern generic_ret *create_principal_1(); +extern generic_ret *create_principal_1_svc(cprinc_arg *arg, + struct svc_req *rqstp); +extern generic_ret *create_principal_1(cprinc_arg *argp, CLIENT *clnt); + #define DELETE_PRINCIPAL ((krb5_ui_4)2) -extern generic_ret *delete_principal_1(); +extern generic_ret *delete_principal_1_svc(dprinc_arg *arg, + struct svc_req *rqstp); +extern generic_ret *delete_principal_1(dprinc_arg *argp, CLIENT *clnt); + #define MODIFY_PRINCIPAL ((krb5_ui_4)3) -extern generic_ret *modify_principal_1(); +extern generic_ret *modify_principal_1_svc(mprinc_arg *arg, + struct svc_req *rqstp); +extern generic_ret *modify_principal_1(mprinc_arg *argp, CLIENT *clnt); + #define RENAME_PRINCIPAL ((krb5_ui_4)4) -extern generic_ret *rename_principal_1(); +extern generic_ret *rename_principal_1_svc(rprinc_arg *arg, + struct svc_req *rqstp); +extern generic_ret *rename_principal_1(rprinc_arg *argp, CLIENT *clnt); + #define GET_PRINCIPAL ((krb5_ui_4)5) -extern gprinc_ret *get_principal_1(); +extern gprinc_ret *get_principal_1_svc(gprinc_arg *arg, struct svc_req *rqstp); +extern gprinc_ret *get_principal_1(gprinc_arg *argp, CLIENT *clnt); + #define CHPASS_PRINCIPAL ((krb5_ui_4)6) -extern generic_ret *chpass_principal_1(); +extern generic_ret *chpass_principal_1_svc(chpass_arg *arg, + struct svc_req *rqstp); +extern generic_ret *chpass_principal_1(chpass_arg *argp, CLIENT *clnt); + #define CHRAND_PRINCIPAL ((krb5_ui_4)7) -extern chrand_ret *chrand_principal_1(); +extern chrand_ret *chrand_principal_1_svc(chrand_arg *arg, + struct svc_req *rqstp); +extern chrand_ret *chrand_principal_1(chrand_arg *argp, CLIENT *clnt); + #define CREATE_POLICY ((krb5_ui_4)8) -extern generic_ret *create_policy_1(); +extern generic_ret *create_policy_1_svc(cpol_arg *arg, struct svc_req *rqstp); +extern generic_ret *create_policy_1(cpol_arg *argp, CLIENT *clnt); + #define DELETE_POLICY ((krb5_ui_4)9) -extern generic_ret *delete_policy_1(); +extern generic_ret *delete_policy_1_svc(dpol_arg *arg, struct svc_req *rqstp); +extern generic_ret *delete_policy_1(dpol_arg *argp, CLIENT *clnt); + #define MODIFY_POLICY ((krb5_ui_4)10) -extern generic_ret *modify_policy_1(); +extern generic_ret *modify_policy_1_svc(mpol_arg *arg, struct svc_req *rqstp); +extern generic_ret *modify_policy_1(mpol_arg *argp, CLIENT *clnt); + #define GET_POLICY ((krb5_ui_4)11) -extern gpol_ret *get_policy_1(); +extern gpol_ret *get_policy_1_svc(gpol_arg *arg, struct svc_req *rqstp); +extern gpol_ret *get_policy_1(gpol_arg *argp, CLIENT *clnt); + #define GET_PRIVS ((krb5_ui_4)12) -extern getprivs_ret *get_privs_1(); +extern getprivs_ret *get_privs_1_svc(krb5_ui_4 *arg, struct svc_req *rqstp); +extern getprivs_ret *get_privs_1(void *argp, CLIENT *clnt); + #define INIT ((krb5_ui_4)13) -extern generic_ret *init_1(); +extern generic_ret *init_1_svc(krb5_ui_4 *arg, struct svc_req *rqstp); +extern generic_ret *init_1(void *argp, CLIENT *clnt); + #define GET_PRINCS ((krb5_ui_4) 14) -extern gprincs_ret *get_princs_1(); +extern gprincs_ret *get_princs_1_svc(gprincs_arg *arg, struct svc_req *rqstp); +extern gprincs_ret *get_princs_1(gprincs_arg *argp, CLIENT *clnt); + #define GET_POLS ((krb5_ui_4) 15) -extern gpols_ret *get_pols_1(); +extern gpols_ret *get_pols_1_svc(gpols_arg *arg, struct svc_req *rqstp); +extern gpols_ret *get_pols_1(gpols_arg *argp, CLIENT *clnt); + #define SETKEY_PRINCIPAL ((krb5_ui_4) 16) -extern generic_ret *setkey_principal_1(); +extern generic_ret *setkey_principal_1_svc(setkey_arg *arg, + struct svc_req *rqstp); +extern generic_ret *setkey_principal_1(setkey_arg *argp, CLIENT *clnt); + #define SETV4KEY_PRINCIPAL ((krb5_ui_4) 17) -extern generic_ret *setv4key_principal_1(); +extern generic_ret *setv4key_principal_1_svc(setv4key_arg *arg, + struct svc_req *rqstp); +extern generic_ret *setv4key_principal_1(setv4key_arg *argp, CLIENT *clnt); + #define CREATE_PRINCIPAL3 ((krb5_ui_4) 18) -extern generic_ret *create_principal3_1(); +extern generic_ret *create_principal3_1_svc(cprinc3_arg *arg, + struct svc_req *rqstp); +extern generic_ret *create_principal3_1(cprinc3_arg *argp, CLIENT *clnt); + #define CHPASS_PRINCIPAL3 ((krb5_ui_4) 19) -extern generic_ret *chpass_principal3_1(); +extern generic_ret *chpass_principal3_1_svc(chpass3_arg *arg, + struct svc_req *rqstp); +extern generic_ret *chpass_principal3_1(chpass3_arg *argp, CLIENT *clnt); + #define CHRAND_PRINCIPAL3 ((krb5_ui_4) 20) -extern chrand_ret *chrand_principal3_1(); +extern chrand_ret *chrand_principal3_1_svc(chrand3_arg *arg, + struct svc_req *rqstp); +extern chrand_ret *chrand_principal3_1(chrand3_arg *argp, CLIENT *clnt); + #define SETKEY_PRINCIPAL3 ((krb5_ui_4) 21) -extern generic_ret *setkey_principal3_1(); +extern generic_ret *setkey_principal3_1_svc(setkey3_arg *arg, + struct svc_req *rqstp); +extern generic_ret *setkey_principal3_1(setkey3_arg *argp, CLIENT *clnt); + +#endif /* __KADM_RPC_H__ */ diff --git a/src/lib/kadm5/kadm_rpc_xdr.c b/src/lib/kadm5/kadm_rpc_xdr.c index bf4004836..4424fc0eb 100644 --- a/src/lib/kadm5/kadm_rpc_xdr.c +++ b/src/lib/kadm5/kadm_rpc_xdr.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include diff --git a/src/lib/kadm5/server_internal.h b/src/lib/kadm5/server_internal.h index 598ae45a5..4a99d267d 100644 --- a/src/lib/kadm5/server_internal.h +++ b/src/lib/kadm5/server_internal.h @@ -59,6 +59,10 @@ int init_dict(kadm5_config_params *); int find_word(const char *word); void destroy_dict(void); +/* XXX this ought to be in libkrb5.a, but isn't */ +kadm5_ret_t krb5_free_key_data_contents(krb5_context context, + krb5_key_data *key); + /* * *Warning* * *Warning* This is going to break if we -- cgit