Blame src/lib/kadm5/admin.h

Packit fd8b60
/* -*- mode: c; c-basic-offset: 4; indent-tabs-mode: nil -*- */
Packit fd8b60
/* lib/kadm5/admin.h */
Packit fd8b60
/*
Packit fd8b60
 * Copyright 2001, 2008 by the Massachusetts Institute of Technology.
Packit fd8b60
 * All Rights Reserved.
Packit fd8b60
 *
Packit fd8b60
 * Export of this software from the United States of America may
Packit fd8b60
 *   require a specific license from the United States Government.
Packit fd8b60
 *   It is the responsibility of any person or organization contemplating
Packit fd8b60
 *   export to obtain such a license before exporting.
Packit fd8b60
 *
Packit fd8b60
 * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
Packit fd8b60
 * distribute this software and its documentation for any purpose and
Packit fd8b60
 * without fee is hereby granted, provided that the above copyright
Packit fd8b60
 * notice appear in all copies and that both that copyright notice and
Packit fd8b60
 * this permission notice appear in supporting documentation, and that
Packit fd8b60
 * the name of M.I.T. not be used in advertising or publicity pertaining
Packit fd8b60
 * to distribution of the software without specific, written prior
Packit fd8b60
 * permission.  Furthermore if you modify this software you must label
Packit fd8b60
 * your software as modified software and not distribute it in such a
Packit fd8b60
 * fashion that it might be confused with the original M.I.T. software.
Packit fd8b60
 * M.I.T. makes no representations about the suitability of
Packit fd8b60
 * this software for any purpose.  It is provided "as is" without express
Packit fd8b60
 * or implied warranty.
Packit fd8b60
 */
Packit fd8b60
/*
Packit fd8b60
 * Copyright 1993 OpenVision Technologies, Inc., All Rights Reserved
Packit fd8b60
 *
Packit fd8b60
 * $Header$
Packit fd8b60
 */
Packit fd8b60
Packit fd8b60
/*
Packit fd8b60
 * This API is not considered as stable as the main krb5 API.
Packit fd8b60
 *
Packit fd8b60
 * - We may make arbitrary incompatible changes between feature
Packit fd8b60
 *   releases (e.g. from 1.7 to 1.8).
Packit fd8b60
 * - We will make some effort to avoid making incompatible changes for
Packit fd8b60
 *   bugfix releases, but will make them if necessary.
Packit fd8b60
 */
Packit fd8b60
Packit fd8b60
#ifndef __KADM5_ADMIN_H__
Packit fd8b60
#define __KADM5_ADMIN_H__
Packit fd8b60
Packit fd8b60
#include        <sys/types.h>
Packit fd8b60
#include        <gssrpc/rpc.h>
Packit fd8b60
#include        <krb5.h>
Packit fd8b60
#include        <kdb.h>
Packit fd8b60
#include        <com_err.h>
Packit fd8b60
#include        <kadm5/kadm_err.h>
Packit fd8b60
#include        <kadm5/chpass_util_strings.h>
Packit fd8b60
Packit fd8b60
#ifndef KADM5INT_BEGIN_DECLS
Packit fd8b60
#if defined(__cplusplus)
Packit fd8b60
#define KADM5INT_BEGIN_DECLS    extern "C" {
Packit fd8b60
#define KADM5INT_END_DECLS      }
Packit fd8b60
#else
Packit fd8b60
#define KADM5INT_BEGIN_DECLS
Packit fd8b60
#define KADM5INT_END_DECLS
Packit fd8b60
#endif
Packit fd8b60
#endif
Packit fd8b60
Packit fd8b60
KADM5INT_BEGIN_DECLS
Packit fd8b60
Packit fd8b60
#define KADM5_ADMIN_SERVICE     "kadmin/admin"
Packit fd8b60
#define KADM5_CHANGEPW_SERVICE  "kadmin/changepw"
Packit fd8b60
#define KADM5_HIST_PRINCIPAL    "kadmin/history"
Packit fd8b60
#define KADM5_KIPROP_HOST_SERVICE "kiprop"
Packit fd8b60
Packit fd8b60
typedef krb5_principal  kadm5_princ_t;
Packit fd8b60
typedef char            *kadm5_policy_t;
Packit fd8b60
typedef long            kadm5_ret_t;
Packit fd8b60
Packit fd8b60
#define KADM5_PW_FIRST_PROMPT                           \
Packit fd8b60
    (error_message(CHPASS_UTIL_NEW_PASSWORD_PROMPT))
Packit fd8b60
#define KADM5_PW_SECOND_PROMPT                                  \
Packit fd8b60
    (error_message(CHPASS_UTIL_NEW_PASSWORD_AGAIN_PROMPT))
Packit fd8b60
Packit fd8b60
/*
Packit fd8b60
 * Successful return code
Packit fd8b60
 */
Packit fd8b60
#define KADM5_OK        0
Packit fd8b60
Packit fd8b60
/*
Packit fd8b60
 * Field masks
Packit fd8b60
 */
Packit fd8b60
Packit fd8b60
/* kadm5_principal_ent_t */
Packit fd8b60
#define KADM5_PRINCIPAL         0x000001
Packit fd8b60
#define KADM5_PRINC_EXPIRE_TIME 0x000002
Packit fd8b60
#define KADM5_PW_EXPIRATION     0x000004
Packit fd8b60
#define KADM5_LAST_PWD_CHANGE   0x000008
Packit fd8b60
#define KADM5_ATTRIBUTES        0x000010
Packit fd8b60
#define KADM5_MAX_LIFE          0x000020
Packit fd8b60
#define KADM5_MOD_TIME          0x000040
Packit fd8b60
#define KADM5_MOD_NAME          0x000080
Packit fd8b60
#define KADM5_KVNO              0x000100
Packit fd8b60
#define KADM5_MKVNO             0x000200
Packit fd8b60
#define KADM5_AUX_ATTRIBUTES    0x000400
Packit fd8b60
#define KADM5_POLICY            0x000800
Packit fd8b60
#define KADM5_POLICY_CLR        0x001000
Packit fd8b60
/* version 2 masks */
Packit fd8b60
#define KADM5_MAX_RLIFE         0x002000
Packit fd8b60
#define KADM5_LAST_SUCCESS      0x004000
Packit fd8b60
#define KADM5_LAST_FAILED       0x008000
Packit fd8b60
#define KADM5_FAIL_AUTH_COUNT   0x010000
Packit fd8b60
#define KADM5_KEY_DATA          0x020000
Packit fd8b60
#define KADM5_TL_DATA           0x040000
Packit fd8b60
#ifdef notyet /* Novell */
Packit fd8b60
#define KADM5_CPW_FUNCTION      0x080000
Packit fd8b60
#define KADM5_RANDKEY_USED      0x100000
Packit fd8b60
#endif
Packit fd8b60
#define KADM5_LOAD              0x200000
Packit fd8b60
#define KADM5_KEY_HIST          0x400000
Packit fd8b60
Packit fd8b60
/* all but KEY_DATA, TL_DATA, LOAD */
Packit fd8b60
#define KADM5_PRINCIPAL_NORMAL_MASK 0x41ffff
Packit fd8b60
Packit fd8b60
Packit fd8b60
/* kadm5_policy_ent_t */
Packit fd8b60
#define KADM5_PW_MAX_LIFE               0x00004000
Packit fd8b60
#define KADM5_PW_MIN_LIFE               0x00008000
Packit fd8b60
#define KADM5_PW_MIN_LENGTH             0x00010000
Packit fd8b60
#define KADM5_PW_MIN_CLASSES            0x00020000
Packit fd8b60
#define KADM5_PW_HISTORY_NUM            0x00040000
Packit fd8b60
#define KADM5_REF_COUNT                 0x00080000
Packit fd8b60
#define KADM5_PW_MAX_FAILURE            0x00100000
Packit fd8b60
#define KADM5_PW_FAILURE_COUNT_INTERVAL 0x00200000
Packit fd8b60
#define KADM5_PW_LOCKOUT_DURATION       0x00400000
Packit fd8b60
#define KADM5_POLICY_ATTRIBUTES         0x00800000
Packit fd8b60
#define KADM5_POLICY_MAX_LIFE           0x01000000
Packit fd8b60
#define KADM5_POLICY_MAX_RLIFE          0x02000000
Packit fd8b60
#define KADM5_POLICY_ALLOWED_KEYSALTS   0x04000000
Packit fd8b60
#define KADM5_POLICY_TL_DATA            0x08000000
Packit fd8b60
Packit fd8b60
/* kadm5_config_params */
Packit fd8b60
#define KADM5_CONFIG_REALM              0x00000001
Packit fd8b60
#define KADM5_CONFIG_DBNAME             0x00000002
Packit fd8b60
#define KADM5_CONFIG_MKEY_NAME          0x00000004
Packit fd8b60
#define KADM5_CONFIG_MAX_LIFE           0x00000008
Packit fd8b60
#define KADM5_CONFIG_MAX_RLIFE          0x00000010
Packit fd8b60
#define KADM5_CONFIG_EXPIRATION         0x00000020
Packit fd8b60
#define KADM5_CONFIG_FLAGS              0x00000040
Packit fd8b60
/*#define KADM5_CONFIG_ADMIN_KEYTAB       0x00000080*/
Packit fd8b60
#define KADM5_CONFIG_STASH_FILE         0x00000100
Packit fd8b60
#define KADM5_CONFIG_ENCTYPE            0x00000200
Packit fd8b60
#define KADM5_CONFIG_ADBNAME            0x00000400
Packit fd8b60
#define KADM5_CONFIG_ADB_LOCKFILE       0x00000800
Packit fd8b60
#define KADM5_CONFIG_KADMIND_LISTEN     0x00001000
Packit fd8b60
#define KADM5_CONFIG_ACL_FILE           0x00002000
Packit fd8b60
#define KADM5_CONFIG_KADMIND_PORT       0x00004000
Packit fd8b60
#define KADM5_CONFIG_ENCTYPES           0x00008000
Packit fd8b60
#define KADM5_CONFIG_ADMIN_SERVER       0x00010000
Packit fd8b60
#define KADM5_CONFIG_DICT_FILE          0x00020000
Packit fd8b60
#define KADM5_CONFIG_MKEY_FROM_KBD      0x00040000
Packit fd8b60
#define KADM5_CONFIG_KPASSWD_PORT       0x00080000
Packit fd8b60
#define KADM5_CONFIG_OLD_AUTH_GSSAPI    0x00100000
Packit fd8b60
#define KADM5_CONFIG_NO_AUTH            0x00200000
Packit fd8b60
#define KADM5_CONFIG_AUTH_NOFALLBACK    0x00400000
Packit fd8b60
#define KADM5_CONFIG_KPASSWD_LISTEN     0x00800000
Packit fd8b60
#define KADM5_CONFIG_IPROP_ENABLED      0x01000000
Packit fd8b60
#define KADM5_CONFIG_ULOG_SIZE          0x02000000
Packit fd8b60
#define KADM5_CONFIG_POLL_TIME          0x04000000
Packit fd8b60
#define KADM5_CONFIG_IPROP_LOGFILE      0x08000000
Packit fd8b60
#define KADM5_CONFIG_IPROP_PORT         0x10000000
Packit fd8b60
#define KADM5_CONFIG_KVNO               0x20000000
Packit fd8b60
#define KADM5_CONFIG_IPROP_RESYNC_TIMEOUT   0x40000000
Packit fd8b60
#define KADM5_CONFIG_IPROP_LISTEN       0x80000000
Packit fd8b60
/*
Packit fd8b60
 * permission bits
Packit fd8b60
 */
Packit fd8b60
#define KADM5_PRIV_GET          0x01
Packit fd8b60
#define KADM5_PRIV_ADD          0x02
Packit fd8b60
#define KADM5_PRIV_MODIFY       0x04
Packit fd8b60
#define KADM5_PRIV_DELETE       0x08
Packit fd8b60
Packit fd8b60
/*
Packit fd8b60
 * API versioning constants
Packit fd8b60
 */
Packit fd8b60
#define KADM5_MASK_BITS         0xffffff00
Packit fd8b60
Packit fd8b60
#define KADM5_STRUCT_VERSION_MASK       0x12345600
Packit fd8b60
#define KADM5_STRUCT_VERSION_1  (KADM5_STRUCT_VERSION_MASK|0x01)
Packit fd8b60
#define KADM5_STRUCT_VERSION    KADM5_STRUCT_VERSION_1
Packit fd8b60
Packit fd8b60
#define KADM5_API_VERSION_MASK  0x12345700
Packit fd8b60
#define KADM5_API_VERSION_2     (KADM5_API_VERSION_MASK|0x02)
Packit fd8b60
#define KADM5_API_VERSION_3     (KADM5_API_VERSION_MASK|0x03)
Packit fd8b60
#define KADM5_API_VERSION_4     (KADM5_API_VERSION_MASK|0x04)
Packit fd8b60
Packit fd8b60
typedef struct _kadm5_principal_ent_t {
Packit fd8b60
    krb5_principal  principal;
Packit fd8b60
    krb5_timestamp  princ_expire_time;
Packit fd8b60
    krb5_timestamp  last_pwd_change;
Packit fd8b60
    krb5_timestamp  pw_expiration;
Packit fd8b60
    krb5_deltat     max_life;
Packit fd8b60
    krb5_principal  mod_name;
Packit fd8b60
    krb5_timestamp  mod_date;
Packit fd8b60
    krb5_flags      attributes;
Packit fd8b60
    krb5_kvno       kvno;
Packit fd8b60
    krb5_kvno       mkvno;
Packit fd8b60
    char            *policy;
Packit fd8b60
    long            aux_attributes;
Packit fd8b60
Packit fd8b60
    /* version 2 fields */
Packit fd8b60
    krb5_deltat max_renewable_life;
Packit fd8b60
    krb5_timestamp last_success;
Packit fd8b60
    krb5_timestamp last_failed;
Packit fd8b60
    krb5_kvno fail_auth_count;
Packit fd8b60
    krb5_int16 n_key_data;
Packit fd8b60
    krb5_int16 n_tl_data;
Packit fd8b60
    krb5_tl_data *tl_data;
Packit fd8b60
    krb5_key_data *key_data;
Packit fd8b60
} kadm5_principal_ent_rec, *kadm5_principal_ent_t;
Packit fd8b60
Packit fd8b60
typedef struct _kadm5_policy_ent_t {
Packit fd8b60
    char            *policy;
Packit fd8b60
    long            pw_min_life;
Packit fd8b60
    long            pw_max_life;
Packit fd8b60
    long            pw_min_length;
Packit fd8b60
    long            pw_min_classes;
Packit fd8b60
    long            pw_history_num;
Packit fd8b60
    long            policy_refcnt;  /* no longer used */
Packit fd8b60
Packit fd8b60
    /* version 3 fields */
Packit fd8b60
    krb5_kvno       pw_max_fail;
Packit fd8b60
    krb5_deltat     pw_failcnt_interval;
Packit fd8b60
    krb5_deltat     pw_lockout_duration;
Packit fd8b60
Packit fd8b60
    /* version 4 fields */
Packit fd8b60
    krb5_flags      attributes;
Packit fd8b60
    krb5_deltat     max_life;
Packit fd8b60
    krb5_deltat     max_renewable_life;
Packit fd8b60
    char            *allowed_keysalts;
Packit fd8b60
    krb5_int16      n_tl_data;
Packit fd8b60
    krb5_tl_data    *tl_data;
Packit fd8b60
} kadm5_policy_ent_rec, *kadm5_policy_ent_t;
Packit fd8b60
Packit fd8b60
/*
Packit fd8b60
 * Data structure returned by kadm5_get_config_params()
Packit fd8b60
 */
Packit fd8b60
typedef struct _kadm5_config_params {
Packit fd8b60
    long               mask;
Packit fd8b60
    char *             realm;
Packit fd8b60
    int                kadmind_port;
Packit fd8b60
    int                kpasswd_port;
Packit fd8b60
Packit fd8b60
    char *             admin_server;
Packit fd8b60
#ifdef notyet /* Novell */ /* ABI change? */
Packit fd8b60
    char *             kpasswd_server;
Packit fd8b60
#endif
Packit fd8b60
Packit fd8b60
    /* Deprecated except for db2 backwards compatibility.  Don't add
Packit fd8b60
       new uses except as fallbacks for parameters that should be
Packit fd8b60
       specified in the database module section of the config
Packit fd8b60
       file.  */
Packit fd8b60
    char *             dbname;
Packit fd8b60
Packit fd8b60
    char *             acl_file;
Packit fd8b60
    char *             dict_file;
Packit fd8b60
Packit fd8b60
    int                mkey_from_kbd;
Packit fd8b60
    char *             stash_file;
Packit fd8b60
    char *             mkey_name;
Packit fd8b60
    krb5_enctype       enctype;
Packit fd8b60
    krb5_deltat        max_life;
Packit fd8b60
    krb5_deltat        max_rlife;
Packit fd8b60
    krb5_timestamp     expiration;
Packit fd8b60
    krb5_flags         flags;
Packit fd8b60
    krb5_key_salt_tuple *keysalts;
Packit fd8b60
    krb5_int32         num_keysalts;
Packit fd8b60
    krb5_kvno          kvno;
Packit fd8b60
    bool_t              iprop_enabled;
Packit fd8b60
    uint32_t            iprop_ulogsize;
Packit fd8b60
    krb5_deltat         iprop_poll_time;
Packit fd8b60
    char *              iprop_logfile;
Packit fd8b60
/*    char *            iprop_server;*/
Packit fd8b60
    int                 iprop_port;
Packit fd8b60
    int                 iprop_resync_timeout;
Packit fd8b60
    char *              kadmind_listen;
Packit fd8b60
    char *              kpasswd_listen;
Packit fd8b60
    char *              iprop_listen;
Packit fd8b60
} kadm5_config_params;
Packit fd8b60
Packit fd8b60
typedef struct _kadm5_key_data {
Packit fd8b60
    krb5_kvno       kvno;
Packit fd8b60
    krb5_keyblock   key;
Packit fd8b60
    krb5_keysalt    salt;
Packit fd8b60
} kadm5_key_data;
Packit fd8b60
Packit fd8b60
/*
Packit fd8b60
 * functions
Packit fd8b60
 */
Packit fd8b60
Packit fd8b60
krb5_error_code kadm5_get_config_params(krb5_context context,
Packit fd8b60
                                        int use_kdc_config,
Packit fd8b60
                                        kadm5_config_params *params_in,
Packit fd8b60
                                        kadm5_config_params *params_out);
Packit fd8b60
Packit fd8b60
krb5_error_code kadm5_free_config_params(krb5_context context,
Packit fd8b60
                                         kadm5_config_params *params);
Packit fd8b60
Packit fd8b60
krb5_error_code kadm5_get_admin_service_name(krb5_context, char *,
Packit fd8b60
                                             char *, size_t);
Packit fd8b60
Packit fd8b60
/*
Packit fd8b60
 * For all initialization functions, the caller must first initialize
Packit fd8b60
 * a context with kadm5_init_krb5_context which will survive as long
Packit fd8b60
 * as the resulting handle.  The caller should free the context with
Packit fd8b60
 * krb5_free_context.
Packit fd8b60
 */
Packit fd8b60
Packit fd8b60
kadm5_ret_t    kadm5_init(krb5_context context, char *client_name,
Packit fd8b60
                          char *pass, char *service_name,
Packit fd8b60
                          kadm5_config_params *params,
Packit fd8b60
                          krb5_ui_4 struct_version,
Packit fd8b60
                          krb5_ui_4 api_version,
Packit fd8b60
                          char **db_args,
Packit fd8b60
                          void **server_handle);
Packit fd8b60
kadm5_ret_t kadm5_init_anonymous(krb5_context context, char *client_name,
Packit fd8b60
                                 char *service_name,
Packit fd8b60
                                 kadm5_config_params *params,
Packit fd8b60
                                 krb5_ui_4 struct_version,
Packit fd8b60
                                 krb5_ui_4 api_version,
Packit fd8b60
                                 char **db_args,
Packit fd8b60
                                 void **server_handle);
Packit fd8b60
kadm5_ret_t    kadm5_init_with_password(krb5_context context,
Packit fd8b60
                                        char *client_name,
Packit fd8b60
                                        char *pass,
Packit fd8b60
                                        char *service_name,
Packit fd8b60
                                        kadm5_config_params *params,
Packit fd8b60
                                        krb5_ui_4 struct_version,
Packit fd8b60
                                        krb5_ui_4 api_version,
Packit fd8b60
                                        char **db_args,
Packit fd8b60
                                        void **server_handle);
Packit fd8b60
kadm5_ret_t    kadm5_init_with_skey(krb5_context context,
Packit fd8b60
                                    char *client_name,
Packit fd8b60
                                    char *keytab,
Packit fd8b60
                                    char *service_name,
Packit fd8b60
                                    kadm5_config_params *params,
Packit fd8b60
                                    krb5_ui_4 struct_version,
Packit fd8b60
                                    krb5_ui_4 api_version,
Packit fd8b60
                                    char **db_args,
Packit fd8b60
                                    void **server_handle);
Packit fd8b60
kadm5_ret_t    kadm5_init_with_creds(krb5_context context,
Packit fd8b60
                                     char *client_name,
Packit fd8b60
                                     krb5_ccache cc,
Packit fd8b60
                                     char *service_name,
Packit fd8b60
                                     kadm5_config_params *params,
Packit fd8b60
                                     krb5_ui_4 struct_version,
Packit fd8b60
                                     krb5_ui_4 api_version,
Packit fd8b60
                                     char **db_args,
Packit fd8b60
                                     void **server_handle);
Packit fd8b60
kadm5_ret_t    kadm5_lock(void *server_handle);
Packit fd8b60
kadm5_ret_t    kadm5_unlock(void *server_handle);
Packit fd8b60
kadm5_ret_t    kadm5_flush(void *server_handle);
Packit fd8b60
kadm5_ret_t    kadm5_destroy(void *server_handle);
Packit fd8b60
kadm5_ret_t    kadm5_create_principal(void *server_handle,
Packit fd8b60
                                      kadm5_principal_ent_t ent,
Packit fd8b60
                                      long mask, char *pass);
Packit fd8b60
kadm5_ret_t    kadm5_create_principal_3(void *server_handle,
Packit fd8b60
                                        kadm5_principal_ent_t ent,
Packit fd8b60
                                        long mask,
Packit fd8b60
                                        int n_ks_tuple,
Packit fd8b60
                                        krb5_key_salt_tuple *ks_tuple,
Packit fd8b60
                                        char *pass);
Packit fd8b60
kadm5_ret_t    kadm5_delete_principal(void *server_handle,
Packit fd8b60
                                      krb5_principal principal);
Packit fd8b60
kadm5_ret_t    kadm5_modify_principal(void *server_handle,
Packit fd8b60
                                      kadm5_principal_ent_t ent,
Packit fd8b60
                                      long mask);
Packit fd8b60
kadm5_ret_t    kadm5_rename_principal(void *server_handle,
Packit fd8b60
                                      krb5_principal,krb5_principal);
Packit fd8b60
kadm5_ret_t    kadm5_get_principal(void *server_handle,
Packit fd8b60
                                   krb5_principal principal,
Packit fd8b60
                                   kadm5_principal_ent_t ent,
Packit fd8b60
                                   long mask);
Packit fd8b60
kadm5_ret_t    kadm5_chpass_principal(void *server_handle,
Packit fd8b60
                                      krb5_principal principal,
Packit fd8b60
                                      char *pass);
Packit fd8b60
kadm5_ret_t    kadm5_chpass_principal_3(void *server_handle,
Packit fd8b60
                                        krb5_principal principal,
Packit fd8b60
                                        krb5_boolean keepold,
Packit fd8b60
                                        int n_ks_tuple,
Packit fd8b60
                                        krb5_key_salt_tuple *ks_tuple,
Packit fd8b60
                                        char *pass);
Packit fd8b60
kadm5_ret_t    kadm5_randkey_principal(void *server_handle,
Packit fd8b60
                                       krb5_principal principal,
Packit fd8b60
                                       krb5_keyblock **keyblocks,
Packit fd8b60
                                       int *n_keys);
Packit fd8b60
kadm5_ret_t    kadm5_randkey_principal_3(void *server_handle,
Packit fd8b60
                                         krb5_principal principal,
Packit fd8b60
                                         krb5_boolean keepold,
Packit fd8b60
                                         int n_ks_tuple,
Packit fd8b60
                                         krb5_key_salt_tuple *ks_tuple,
Packit fd8b60
                                         krb5_keyblock **keyblocks,
Packit fd8b60
                                         int *n_keys);
Packit fd8b60
Packit fd8b60
kadm5_ret_t    kadm5_setkey_principal(void *server_handle,
Packit fd8b60
                                      krb5_principal principal,
Packit fd8b60
                                      krb5_keyblock *keyblocks,
Packit fd8b60
                                      int n_keys);
Packit fd8b60
Packit fd8b60
kadm5_ret_t    kadm5_setkey_principal_3(void *server_handle,
Packit fd8b60
                                        krb5_principal principal,
Packit fd8b60
                                        krb5_boolean keepold,
Packit fd8b60
                                        int n_ks_tuple,
Packit fd8b60
                                        krb5_key_salt_tuple *ks_tuple,
Packit fd8b60
                                        krb5_keyblock *keyblocks,
Packit fd8b60
                                        int n_keys);
Packit fd8b60
Packit fd8b60
kadm5_ret_t    kadm5_setkey_principal_4(void *server_handle,
Packit fd8b60
                                        krb5_principal principal,
Packit fd8b60
                                        krb5_boolean keepold,
Packit fd8b60
                                        kadm5_key_data *key_data,
Packit fd8b60
                                        int n_key_data);
Packit fd8b60
Packit fd8b60
kadm5_ret_t    kadm5_decrypt_key(void *server_handle,
Packit fd8b60
                                 kadm5_principal_ent_t entry, krb5_int32
Packit fd8b60
                                 ktype, krb5_int32 stype, krb5_int32
Packit fd8b60
                                 kvno, krb5_keyblock *keyblock,
Packit fd8b60
                                 krb5_keysalt *keysalt, int *kvnop);
Packit fd8b60
Packit fd8b60
kadm5_ret_t    kadm5_create_policy(void *server_handle,
Packit fd8b60
                                   kadm5_policy_ent_t ent,
Packit fd8b60
                                   long mask);
Packit fd8b60
kadm5_ret_t    kadm5_delete_policy(void *server_handle,
Packit fd8b60
                                   kadm5_policy_t policy);
Packit fd8b60
kadm5_ret_t    kadm5_modify_policy(void *server_handle,
Packit fd8b60
                                   kadm5_policy_ent_t ent,
Packit fd8b60
                                   long mask);
Packit fd8b60
kadm5_ret_t    kadm5_get_policy(void *server_handle,
Packit fd8b60
                                kadm5_policy_t policy,
Packit fd8b60
                                kadm5_policy_ent_t ent);
Packit fd8b60
kadm5_ret_t    kadm5_get_privs(void *server_handle,
Packit fd8b60
                               long *privs);
Packit fd8b60
Packit fd8b60
kadm5_ret_t    kadm5_chpass_principal_util(void *server_handle,
Packit fd8b60
                                           krb5_principal princ,
Packit fd8b60
                                           char *new_pw,
Packit fd8b60
                                           char **ret_pw,
Packit fd8b60
                                           char *msg_ret,
Packit fd8b60
                                           unsigned int msg_len);
Packit fd8b60
Packit fd8b60
kadm5_ret_t    kadm5_free_principal_ent(void *server_handle,
Packit fd8b60
                                        kadm5_principal_ent_t
Packit fd8b60
                                        ent);
Packit fd8b60
kadm5_ret_t    kadm5_free_policy_ent(void *server_handle,
Packit fd8b60
                                     kadm5_policy_ent_t ent);
Packit fd8b60
Packit fd8b60
kadm5_ret_t    kadm5_get_principals(void *server_handle,
Packit fd8b60
                                    char *exp, char ***princs,
Packit fd8b60
                                    int *count);
Packit fd8b60
Packit fd8b60
kadm5_ret_t    kadm5_get_policies(void *server_handle,
Packit fd8b60
                                  char *exp, char ***pols,
Packit fd8b60
                                  int *count);
Packit fd8b60
Packit fd8b60
kadm5_ret_t    kadm5_free_key_data(void *server_handle,
Packit fd8b60
                                   krb5_int16 *n_key_data,
Packit fd8b60
                                   krb5_key_data *key_data);
Packit fd8b60
Packit fd8b60
kadm5_ret_t    kadm5_free_name_list(void *server_handle, char **names,
Packit fd8b60
                                    int count);
Packit fd8b60
Packit fd8b60
krb5_error_code kadm5_init_krb5_context (krb5_context *);
Packit fd8b60
Packit fd8b60
krb5_error_code kadm5_init_iprop(void *server_handle, char **db_args);
Packit fd8b60
Packit fd8b60
kadm5_ret_t    kadm5_get_principal_keys(void *server_handle,
Packit fd8b60
                                        krb5_principal principal,
Packit fd8b60
                                        krb5_kvno kvno,
Packit fd8b60
                                        kadm5_key_data **key_data,
Packit fd8b60
                                        int *n_key_data);
Packit fd8b60
Packit fd8b60
kadm5_ret_t    kadm5_purgekeys(void *server_handle,
Packit fd8b60
                               krb5_principal principal,
Packit fd8b60
                               int keepkvno);
Packit fd8b60
Packit fd8b60
kadm5_ret_t    kadm5_get_strings(void *server_handle,
Packit fd8b60
                                 krb5_principal principal,
Packit fd8b60
                                 krb5_string_attr **strings_out,
Packit fd8b60
                                 int *count_out);
Packit fd8b60
Packit fd8b60
kadm5_ret_t    kadm5_set_string(void *server_handle,
Packit fd8b60
                                krb5_principal principal,
Packit fd8b60
                                const char *key,
Packit fd8b60
                                const char *value);
Packit fd8b60
Packit fd8b60
kadm5_ret_t    kadm5_free_strings(void *server_handle,
Packit fd8b60
                                  krb5_string_attr *strings,
Packit fd8b60
                                  int count);
Packit fd8b60
Packit fd8b60
kadm5_ret_t    kadm5_free_kadm5_key_data(krb5_context context, int n_key_data,
Packit fd8b60
                                         kadm5_key_data *key_data);
Packit fd8b60
Packit fd8b60
KADM5INT_END_DECLS
Packit fd8b60
Packit fd8b60
#endif /* __KADM5_ADMIN_H__ */