Blame src/lib/kadm5/admin_internal.h

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__ */