155682Smarkm/* 2233294Sstas * Copyright (c) 1997-2000 Kungliga Tekniska H��gskolan 3233294Sstas * (Royal Institute of Technology, Stockholm, Sweden). 4233294Sstas * All rights reserved. 555682Smarkm * 6233294Sstas * Redistribution and use in source and binary forms, with or without 7233294Sstas * modification, are permitted provided that the following conditions 8233294Sstas * are met: 955682Smarkm * 10233294Sstas * 1. Redistributions of source code must retain the above copyright 11233294Sstas * notice, this list of conditions and the following disclaimer. 1255682Smarkm * 13233294Sstas * 2. Redistributions in binary form must reproduce the above copyright 14233294Sstas * notice, this list of conditions and the following disclaimer in the 15233294Sstas * documentation and/or other materials provided with the distribution. 1655682Smarkm * 17233294Sstas * 3. Neither the name of the Institute nor the names of its contributors 18233294Sstas * may be used to endorse or promote products derived from this software 19233294Sstas * without specific prior written permission. 2055682Smarkm * 21233294Sstas * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND 22233294Sstas * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23233294Sstas * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 24233294Sstas * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE 25233294Sstas * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26233294Sstas * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 27233294Sstas * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 28233294Sstas * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 29233294Sstas * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 30233294Sstas * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 31233294Sstas * SUCH DAMAGE. 3255682Smarkm */ 3355682Smarkm 34233294Sstas/* $Id$ */ 3555682Smarkm 36102644Snectar#ifndef __kadm5_privatex_h__ 37102644Snectar#define __kadm5_privatex_h__ 3855682Smarkm 3955682Smarkmstruct kadm_func { 40178825Sdfr kadm5_ret_t (*chpass_principal) (void *, krb5_principal, const char*); 41233294Sstas kadm5_ret_t (*create_principal) (void*, kadm5_principal_ent_t, 42178825Sdfr uint32_t, const char*); 4355682Smarkm kadm5_ret_t (*delete_principal) (void*, krb5_principal); 4455682Smarkm kadm5_ret_t (*destroy) (void*); 4555682Smarkm kadm5_ret_t (*flush) (void*); 46233294Sstas kadm5_ret_t (*get_principal) (void*, krb5_principal, 47178825Sdfr kadm5_principal_ent_t, uint32_t); 4855682Smarkm kadm5_ret_t (*get_principals) (void*, const char*, char***, int*); 49178825Sdfr kadm5_ret_t (*get_privs) (void*, uint32_t*); 50178825Sdfr kadm5_ret_t (*modify_principal) (void*, kadm5_principal_ent_t, uint32_t); 51233294Sstas kadm5_ret_t (*randkey_principal) (void*, krb5_principal, 5255682Smarkm krb5_keyblock**, int*); 5355682Smarkm kadm5_ret_t (*rename_principal) (void*, krb5_principal, krb5_principal); 5472445Sassar kadm5_ret_t (*chpass_principal_with_key) (void *, krb5_principal, 5572445Sassar int, krb5_key_data *); 5655682Smarkm}; 5755682Smarkm 5855682Smarkm/* XXX should be integrated */ 5955682Smarkmtypedef struct kadm5_common_context { 6055682Smarkm krb5_context context; 6155682Smarkm krb5_boolean my_context; 6255682Smarkm struct kadm_func funcs; 6355682Smarkm void *data; 6455682Smarkm}kadm5_common_context; 6555682Smarkm 6655682Smarkmtypedef struct kadm5_log_peer { 6755682Smarkm int fd; 6855682Smarkm char *name; 6955682Smarkm krb5_auth_context ac; 7055682Smarkm struct kadm5_log_peer *next; 7155682Smarkm} kadm5_log_peer; 7255682Smarkm 7355682Smarkmtypedef struct kadm5_log_context { 7455682Smarkm char *log_file; 7555682Smarkm int log_fd; 76178825Sdfr uint32_t version; 77233294Sstas#ifndef NO_UNIX_SOCKETS 7855682Smarkm struct sockaddr_un socket_name; 79233294Sstas#else 80233294Sstas struct addrinfo *socket_info; 81233294Sstas#endif 82233294Sstas krb5_socket_t socket_fd; 8355682Smarkm} kadm5_log_context; 8455682Smarkm 8555682Smarkmtypedef struct kadm5_server_context { 8655682Smarkm krb5_context context; 8755682Smarkm krb5_boolean my_context; 8855682Smarkm struct kadm_func funcs; 8955682Smarkm /* */ 9055682Smarkm kadm5_config_params config; 9155682Smarkm HDB *db; 9255682Smarkm krb5_principal caller; 9355682Smarkm unsigned acl_flags; 9455682Smarkm kadm5_log_context log_context; 9572445Sassar} kadm5_server_context; 9655682Smarkm 9755682Smarkmtypedef struct kadm5_client_context { 9855682Smarkm krb5_context context; 9955682Smarkm krb5_boolean my_context; 10055682Smarkm struct kadm_func funcs; 10155682Smarkm /* */ 10255682Smarkm krb5_auth_context ac; 10355682Smarkm char *realm; 10455682Smarkm char *admin_server; 10555682Smarkm int kadmind_port; 10655682Smarkm int sock; 10772445Sassar char *client_name; 10872445Sassar char *service_name; 10972445Sassar krb5_prompter_fct prompter; 11072445Sassar const char *keytab; 11172445Sassar krb5_ccache ccache; 11272445Sassar kadm5_config_params *realm_params; 11355682Smarkm}kadm5_client_context; 11455682Smarkm 115178825Sdfrtypedef struct kadm5_ad_context { 116178825Sdfr krb5_context context; 117178825Sdfr krb5_boolean my_context; 118178825Sdfr struct kadm_func funcs; 119178825Sdfr /* */ 120178825Sdfr kadm5_config_params config; 121178825Sdfr krb5_principal caller; 122178825Sdfr krb5_ccache ccache; 123178825Sdfr char *client_name; 124178825Sdfr char *realm; 125178825Sdfr void *ldap_conn; 126178825Sdfr char *base_dn; 127178825Sdfr} kadm5_ad_context; 128178825Sdfr 12955682Smarkmenum kadm_ops { 13055682Smarkm kadm_get, 13155682Smarkm kadm_delete, 13255682Smarkm kadm_create, 13355682Smarkm kadm_rename, 13455682Smarkm kadm_chpass, 13555682Smarkm kadm_modify, 13655682Smarkm kadm_randkey, 13755682Smarkm kadm_get_privs, 13872445Sassar kadm_get_princs, 13972445Sassar kadm_chpass_with_key, 14072445Sassar kadm_nop 14155682Smarkm}; 14255682Smarkm 14355682Smarkm#define KADMIN_APPL_VERSION "KADM0.1" 14455682Smarkm#define KADMIN_OLD_APPL_VERSION "KADM0.0" 14555682Smarkm 14672445Sassar#include "kadm5-private.h" 14755682Smarkm 148102644Snectar#endif /* __kadm5_privatex_h__ */ 149