* server_internal.h: Add prototype for
authorEzra Peisach <epeisach@mit.edu>
Sun, 18 Feb 2001 23:00:08 +0000 (23:00 +0000)
committerEzra Peisach <epeisach@mit.edu>
Sun, 18 Feb 2001 23:00:08 +0000 (23:00 +0000)
        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
src/lib/kadm5/adb.h
src/lib/kadm5/admin.h
src/lib/kadm5/admin_internal.h
src/lib/kadm5/admin_xdr.h
src/lib/kadm5/alt_prof.c
src/lib/kadm5/kadm_rpc.h
src/lib/kadm5/kadm_rpc_xdr.c
src/lib/kadm5/server_internal.h

index a44a5cee99e7724874badccfc6f24749190d8781..29ef6e856fcb8b54c66ada961a2887289e673eac 100644 (file)
@@ -1,3 +1,34 @@
+Sun Feb 18 16:26:33 2001  Ezra Peisach  <epeisach@mit.edu>
+
+       * 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  <raeburn@mit.edu>
 
        * str_conv.c (krb5_keysalt_iterate): Always use the prototype for
index 81ff96cfcf11a9a667c941fe7fa7668e208d1a67..031f075de73de372c948806b6e5006dfb9609e30 100644 (file)
@@ -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);
index c2fd1601fb80a16a88517df7acbba6c77e39e980..f99743e6b03095fff338e6964a9057c5f640328f 100644 (file)
@@ -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);
index 15db18e2a31ac2fd1c9707409538aae1896245ff..15d826992651135cbabf8490bada2fa09f81b695 100644 (file)
@@ -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,
index 3e4f48f7ab96d0685f815651b3359fcef8d6f00d..5a2566ef943a206ae2e53aa6cc8d7c3b5be020c6 100644 (file)
@@ -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
 #include    <kadm5/admin.h>
 #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);
index 3cf58a6f3e2ef4da3122f53d3d432c0c3645556c..8be572cc384bbc80cb8ed8e46d5b5e403d174050 100644 (file)
  */
 #include "k5-int.h"
 #include <kadm5/admin.h>
+#include "adm_proto.h"
 #include <stdio.h>
 #include <ctype.h>
 
-
 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;
index 4387f70a7f085fc35700e0fe7411ec295a47903f..d546c9472b7d72d4de5286836904d0dbd0dd155e 100644 (file)
@@ -1,3 +1,6 @@
+#ifndef __KADM_RPC_H__
+#define __KADM_RPC_H__
+
 #include <gssrpc/types.h>
 
 #include       <krb5.h>
@@ -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__ */
index bf40048369434f94d88d3bd1ed8485c8fe78664d..4424fc0eb9051341a7d7e7596225f9461733f708 100644 (file)
@@ -7,6 +7,7 @@
 #include <k5-int.h>
 #include <kadm5/admin.h>
 #include <kadm5/kadm_rpc.h>
+#include <kadm5/admin_xdr.h>
 #include <stdlib.h>
 #include <string.h>
 
index 598ae45a53b8c41578b51f2d763354c9281c45e0..4a99d267df0d145806ad9f14b426badda75ed5be 100644 (file)
@@ -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