|
Packit Service |
99d1c0 |
/* -*- mode: c; c-basic-offset: 4; indent-tabs-mode: nil -*- */
|
|
Packit Service |
99d1c0 |
/*
|
|
Packit Service |
99d1c0 |
* Copyright 1993 OpenVision Technologies, Inc., All Rights Reserved
|
|
Packit Service |
99d1c0 |
*
|
|
Packit Service |
99d1c0 |
*/
|
|
Packit Service |
99d1c0 |
|
|
Packit Service |
99d1c0 |
#ifndef __KADM5_ADMIN_INTERNAL_H__
|
|
Packit Service |
99d1c0 |
#define __KADM5_ADMIN_INTERNAL_H__
|
|
Packit Service |
99d1c0 |
|
|
Packit Service |
99d1c0 |
#include <kadm5/admin.h>
|
|
Packit Service |
99d1c0 |
|
|
Packit Service |
99d1c0 |
#define KADM5_SERVER_HANDLE_MAGIC 0x12345800
|
|
Packit Service |
99d1c0 |
|
|
Packit Service |
99d1c0 |
#define GENERIC_CHECK_HANDLE(handle, old_api_version, new_api_version) \
|
|
Packit Service |
99d1c0 |
{ \
|
|
Packit Service |
99d1c0 |
kadm5_server_handle_t srvr = \
|
|
Packit Service |
99d1c0 |
(kadm5_server_handle_t) handle; \
|
|
Packit Service |
99d1c0 |
\
|
|
Packit Service |
99d1c0 |
if (! srvr) \
|
|
Packit Service |
99d1c0 |
return KADM5_BAD_SERVER_HANDLE; \
|
|
Packit Service |
99d1c0 |
if (srvr->magic_number != KADM5_SERVER_HANDLE_MAGIC) \
|
|
Packit Service |
99d1c0 |
return KADM5_BAD_SERVER_HANDLE; \
|
|
Packit Service |
99d1c0 |
if ((srvr->struct_version & KADM5_MASK_BITS) != \
|
|
Packit Service |
99d1c0 |
KADM5_STRUCT_VERSION_MASK) \
|
|
Packit Service |
99d1c0 |
return KADM5_BAD_STRUCT_VERSION; \
|
|
Packit Service |
99d1c0 |
if (srvr->struct_version < KADM5_STRUCT_VERSION_1) \
|
|
Packit Service |
99d1c0 |
return KADM5_OLD_STRUCT_VERSION; \
|
|
Packit Service |
99d1c0 |
if (srvr->struct_version > KADM5_STRUCT_VERSION_1) \
|
|
Packit Service |
99d1c0 |
return KADM5_NEW_STRUCT_VERSION; \
|
|
Packit Service |
99d1c0 |
if ((srvr->api_version & KADM5_MASK_BITS) != \
|
|
Packit Service |
99d1c0 |
KADM5_API_VERSION_MASK) \
|
|
Packit Service |
99d1c0 |
return KADM5_BAD_API_VERSION; \
|
|
Packit Service |
99d1c0 |
if (srvr->api_version < KADM5_API_VERSION_2) \
|
|
Packit Service |
99d1c0 |
return old_api_version; \
|
|
Packit Service |
99d1c0 |
if (srvr->api_version > KADM5_API_VERSION_4) \
|
|
Packit Service |
99d1c0 |
return new_api_version; \
|
|
Packit Service |
99d1c0 |
}
|
|
Packit Service |
99d1c0 |
|
|
Packit Service |
99d1c0 |
/*
|
|
Packit Service |
99d1c0 |
* _KADM5_CHECK_HANDLE calls the function _kadm5_check_handle and
|
|
Packit Service |
99d1c0 |
* returns any non-zero error code that function returns.
|
|
Packit Service |
99d1c0 |
* _kadm5_check_handle, in client_handle.c and server_handle.c, exists
|
|
Packit Service |
99d1c0 |
* in both the server- and client- side libraries. In each library,
|
|
Packit Service |
99d1c0 |
* it calls CHECK_HANDLE, which is defined by the appropriate
|
|
Packit Service |
99d1c0 |
* _internal.h header file to call GENERIC_CHECK_HANDLE as well as
|
|
Packit Service |
99d1c0 |
* CLIENT_CHECK_HANDLE and SERVER_CHECK_HANDLE.
|
|
Packit Service |
99d1c0 |
*
|
|
Packit Service |
99d1c0 |
* _KADM5_CHECK_HANDLE should be used by a function that needs to
|
|
Packit Service |
99d1c0 |
* check the handle but wants to be the same code in both the client
|
|
Packit Service |
99d1c0 |
* and server library; it makes a function call to the right handle
|
|
Packit Service |
99d1c0 |
* checker. Code that only exists in one library can call the
|
|
Packit Service |
99d1c0 |
* CHECK_HANDLE macro, which inlines the test instead of making
|
|
Packit Service |
99d1c0 |
* another function call.
|
|
Packit Service |
99d1c0 |
*
|
|
Packit Service |
99d1c0 |
* Got that?
|
|
Packit Service |
99d1c0 |
*/
|
|
Packit Service |
99d1c0 |
#define _KADM5_CHECK_HANDLE(handle) \
|
|
Packit Service |
99d1c0 |
{ int ecode; if ((ecode = _kadm5_check_handle((void *)handle))) return ecode;}
|
|
Packit Service |
99d1c0 |
|
|
Packit Service |
99d1c0 |
int _kadm5_check_handle(void *handle);
|
|
Packit Service |
99d1c0 |
kadm5_ret_t _kadm5_chpass_principal_util(void *server_handle,
|
|
Packit Service |
99d1c0 |
void *lhandle,
|
|
Packit Service |
99d1c0 |
krb5_principal princ,
|
|
Packit Service |
99d1c0 |
char *new_pw,
|
|
Packit Service |
99d1c0 |
char **ret_pw,
|
|
Packit Service |
99d1c0 |
char *msg_ret,
|
|
Packit Service |
99d1c0 |
unsigned int msg_len);
|
|
Packit Service |
99d1c0 |
|
|
Packit Service |
99d1c0 |
/* this is needed by the alt_prof code I stole. The functions
|
|
Packit Service |
99d1c0 |
maybe shouldn't be named krb5_*, but they are. */
|
|
Packit Service |
99d1c0 |
|
|
Packit Service |
99d1c0 |
krb5_error_code
|
|
Packit Service |
99d1c0 |
krb5_string_to_keysalts(const char *string, const char *tupleseps,
|
|
Packit Service |
99d1c0 |
const char *ksaltseps, krb5_boolean dups,
|
|
Packit Service |
99d1c0 |
krb5_key_salt_tuple **ksaltp, krb5_int32 *nksaltp);
|
|
Packit Service |
99d1c0 |
|
|
Packit Service |
99d1c0 |
#endif /* __KADM5_ADMIN_INTERNAL_H__ */
|