1 /* $NetBSD: private.h,v 1.1.1.2 2011/04/14 14:09:17 elric Exp $ */ 2 3 /* 4 * Copyright (c) 1997-2000 Kungliga Tekniska Högskolan 5 * (Royal Institute of Technology, Stockholm, Sweden). 6 * All rights reserved. 7 * 8 * Redistribution and use in source and binary forms, with or without 9 * modification, are permitted provided that the following conditions 10 * are met: 11 * 12 * 1. Redistributions of source code must retain the above copyright 13 * notice, this list of conditions and the following disclaimer. 14 * 15 * 2. Redistributions in binary form must reproduce the above copyright 16 * notice, this list of conditions and the following disclaimer in the 17 * documentation and/or other materials provided with the distribution. 18 * 19 * 3. Neither the name of the Institute nor the names of its contributors 20 * may be used to endorse or promote products derived from this software 21 * without specific prior written permission. 22 * 23 * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND 24 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 25 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 26 * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE 27 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 28 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 29 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 30 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 31 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 32 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 33 * SUCH DAMAGE. 34 */ 35 36 /* Id */ 37 38 #ifndef __kadm5_privatex_h__ 39 #define __kadm5_privatex_h__ 40 41 struct kadm_func { 42 kadm5_ret_t (*chpass_principal) (void *, krb5_principal, const char*); 43 kadm5_ret_t (*create_principal) (void*, kadm5_principal_ent_t, 44 uint32_t, const char*); 45 kadm5_ret_t (*delete_principal) (void*, krb5_principal); 46 kadm5_ret_t (*destroy) (void*); 47 kadm5_ret_t (*flush) (void*); 48 kadm5_ret_t (*get_principal) (void*, krb5_principal, 49 kadm5_principal_ent_t, uint32_t); 50 kadm5_ret_t (*get_principals) (void*, const char*, char***, int*); 51 kadm5_ret_t (*get_privs) (void*, uint32_t*); 52 kadm5_ret_t (*modify_principal) (void*, kadm5_principal_ent_t, uint32_t); 53 kadm5_ret_t (*randkey_principal) (void*, krb5_principal, 54 krb5_keyblock**, int*); 55 kadm5_ret_t (*rename_principal) (void*, krb5_principal, krb5_principal); 56 kadm5_ret_t (*chpass_principal_with_key) (void *, krb5_principal, 57 int, krb5_key_data *); 58 }; 59 60 /* XXX should be integrated */ 61 typedef struct kadm5_common_context { 62 krb5_context context; 63 krb5_boolean my_context; 64 struct kadm_func funcs; 65 void *data; 66 }kadm5_common_context; 67 68 typedef struct kadm5_log_peer { 69 int fd; 70 char *name; 71 krb5_auth_context ac; 72 struct kadm5_log_peer *next; 73 } kadm5_log_peer; 74 75 typedef struct kadm5_log_context { 76 char *log_file; 77 int log_fd; 78 uint32_t version; 79 #ifndef NO_UNIX_SOCKETS 80 struct sockaddr_un socket_name; 81 #else 82 struct addrinfo *socket_info; 83 #endif 84 krb5_socket_t socket_fd; 85 } kadm5_log_context; 86 87 typedef struct kadm5_server_context { 88 krb5_context context; 89 krb5_boolean my_context; 90 struct kadm_func funcs; 91 /* */ 92 kadm5_config_params config; 93 HDB *db; 94 krb5_principal caller; 95 unsigned acl_flags; 96 kadm5_log_context log_context; 97 } kadm5_server_context; 98 99 typedef struct kadm5_client_context { 100 krb5_context context; 101 krb5_boolean my_context; 102 struct kadm_func funcs; 103 /* */ 104 krb5_auth_context ac; 105 char *realm; 106 char *admin_server; 107 int kadmind_port; 108 int sock; 109 char *client_name; 110 char *service_name; 111 krb5_prompter_fct prompter; 112 const char *keytab; 113 krb5_ccache ccache; 114 kadm5_config_params *realm_params; 115 }kadm5_client_context; 116 117 typedef struct kadm5_ad_context { 118 krb5_context context; 119 krb5_boolean my_context; 120 struct kadm_func funcs; 121 /* */ 122 kadm5_config_params config; 123 krb5_principal caller; 124 krb5_ccache ccache; 125 char *client_name; 126 char *realm; 127 void *ldap_conn; 128 char *base_dn; 129 } kadm5_ad_context; 130 131 enum kadm_ops { 132 kadm_get, 133 kadm_delete, 134 kadm_create, 135 kadm_rename, 136 kadm_chpass, 137 kadm_modify, 138 kadm_randkey, 139 kadm_get_privs, 140 kadm_get_princs, 141 kadm_chpass_with_key, 142 kadm_nop 143 }; 144 145 #define KADMIN_APPL_VERSION "KADM0.1" 146 #define KADMIN_OLD_APPL_VERSION "KADM0.0" 147 148 #include "kadm5-private.h" 149 150 #endif /* __kadm5_privatex_h__ */ 151