private.h revision 102644
155682Smarkm/* 272445Sassar * Copyright (c) 1997-2000 Kungliga Tekniska H�gskolan 355682Smarkm * (Royal Institute of Technology, Stockholm, Sweden). 455682Smarkm * All rights reserved. 555682Smarkm * 655682Smarkm * Redistribution and use in source and binary forms, with or without 755682Smarkm * modification, are permitted provided that the following conditions 855682Smarkm * are met: 955682Smarkm * 1055682Smarkm * 1. Redistributions of source code must retain the above copyright 1155682Smarkm * notice, this list of conditions and the following disclaimer. 1255682Smarkm * 1355682Smarkm * 2. Redistributions in binary form must reproduce the above copyright 1455682Smarkm * notice, this list of conditions and the following disclaimer in the 1555682Smarkm * documentation and/or other materials provided with the distribution. 1655682Smarkm * 1755682Smarkm * 3. Neither the name of the Institute nor the names of its contributors 1855682Smarkm * may be used to endorse or promote products derived from this software 1955682Smarkm * without specific prior written permission. 2055682Smarkm * 2155682Smarkm * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND 2255682Smarkm * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 2355682Smarkm * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 2455682Smarkm * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE 2555682Smarkm * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 2655682Smarkm * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 2755682Smarkm * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 2855682Smarkm * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 2955682Smarkm * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 3055682Smarkm * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 3155682Smarkm * SUCH DAMAGE. 3255682Smarkm */ 3355682Smarkm 34102644Snectar/* $Id: private.h,v 1.15 2002/08/16 20:57:44 joda Exp $ */ 3555682Smarkm 36102644Snectar#ifndef __kadm5_privatex_h__ 37102644Snectar#define __kadm5_privatex_h__ 3855682Smarkm 3955682Smarkmstruct kadm_func { 4055682Smarkm kadm5_ret_t (*chpass_principal) (void *, krb5_principal, char*); 4155682Smarkm kadm5_ret_t (*create_principal) (void*, kadm5_principal_ent_t, 4255682Smarkm u_int32_t, char*); 4355682Smarkm kadm5_ret_t (*delete_principal) (void*, krb5_principal); 4455682Smarkm kadm5_ret_t (*destroy) (void*); 4555682Smarkm kadm5_ret_t (*flush) (void*); 4655682Smarkm kadm5_ret_t (*get_principal) (void*, krb5_principal, 4755682Smarkm kadm5_principal_ent_t, u_int32_t); 4855682Smarkm kadm5_ret_t (*get_principals) (void*, const char*, char***, int*); 4955682Smarkm kadm5_ret_t (*get_privs) (void*, u_int32_t*); 5055682Smarkm kadm5_ret_t (*modify_principal) (void*, kadm5_principal_ent_t, u_int32_t); 5155682Smarkm 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; 7655682Smarkm u_int32_t version; 7755682Smarkm struct sockaddr_un socket_name; 7855682Smarkm int socket_fd; 7955682Smarkm} kadm5_log_context; 8055682Smarkm 8155682Smarkmtypedef struct kadm5_server_context { 8255682Smarkm krb5_context context; 8355682Smarkm krb5_boolean my_context; 8455682Smarkm struct kadm_func funcs; 8555682Smarkm /* */ 8655682Smarkm kadm5_config_params config; 8755682Smarkm HDB *db; 8855682Smarkm krb5_principal caller; 8955682Smarkm unsigned acl_flags; 9055682Smarkm kadm5_log_context log_context; 9172445Sassar} kadm5_server_context; 9255682Smarkm 9355682Smarkmtypedef struct kadm5_client_context { 9455682Smarkm krb5_context context; 9555682Smarkm krb5_boolean my_context; 9655682Smarkm struct kadm_func funcs; 9755682Smarkm /* */ 9855682Smarkm krb5_auth_context ac; 9955682Smarkm char *realm; 10055682Smarkm char *admin_server; 10155682Smarkm int kadmind_port; 10255682Smarkm int sock; 10372445Sassar char *client_name; 10472445Sassar char *service_name; 10572445Sassar krb5_prompter_fct prompter; 10672445Sassar const char *keytab; 10772445Sassar krb5_ccache ccache; 10872445Sassar kadm5_config_params *realm_params; 10955682Smarkm}kadm5_client_context; 11055682Smarkm 11155682Smarkmenum kadm_ops { 11255682Smarkm kadm_get, 11355682Smarkm kadm_delete, 11455682Smarkm kadm_create, 11555682Smarkm kadm_rename, 11655682Smarkm kadm_chpass, 11755682Smarkm kadm_modify, 11855682Smarkm kadm_randkey, 11955682Smarkm kadm_get_privs, 12072445Sassar kadm_get_princs, 12172445Sassar kadm_chpass_with_key, 12272445Sassar kadm_nop 12355682Smarkm}; 12455682Smarkm 12555682Smarkm#define KADMIN_APPL_VERSION "KADM0.1" 12655682Smarkm#define KADMIN_OLD_APPL_VERSION "KADM0.0" 12755682Smarkm 12855682Smarkm#define KADM5_LOG_SIGNAL HDB_DB_DIR "/signal" 12955682Smarkm 13072445Sassar#include "kadm5-private.h" 13155682Smarkm 132102644Snectar#endif /* __kadm5_privatex_h__ */ 133