root/usr/src/uts/common/gssapi/include/gssapiP_dummy.h
/*
 * CDDL HEADER START
 *
 * The contents of this file are subject to the terms of the
 * Common Development and Distribution License, Version 1.0 only
 * (the "License").  You may not use this file except in compliance
 * with the License.
 *
 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
 * or http://www.opensolaris.org/os/licensing.
 * See the License for the specific language governing permissions
 * and limitations under the License.
 *
 * When distributing Covered Code, include this CDDL HEADER in each
 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
 * If applicable, add the following below this CDDL HEADER, with the
 * fields enclosed by brackets "[]" replaced with your own identifying
 * information: Portions Copyright [yyyy] [name of copyright owner]
 *
 * CDDL HEADER END
 */
/*
 * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
 * Use is subject to license terms.
 */

#ifndef _GSSAPIP_DUMMY_H
#define _GSSAPIP_DUMMY_H

#ifdef  __cplusplus
extern "C" {
#endif

#include <gssapi/gssapi.h>

#define SEC_CONTEXT_TOKEN 1
#define DUMMY_SIZE_OF_INT 4

typedef void * dummy_token_t;

/* dummy name structure for internal representation. */
typedef struct {
        gss_OID type;
        gss_buffer_t buffer;
} dummy_name_desc, *dummy_name_t;

/* Structure for context handle */
typedef struct {
        OM_uint32 last_stat;
        int token_number;
        int established;
} dummy_gss_ctx_id_rec, *dummy_gss_ctx_id_t;

/* Dummy oid structure */
static const gss_OID_desc dummy_oids[] = {
        {10, "\053\006\001\004\001\052\002\032\001\002"},
};
const gss_OID_desc * const gss_mech_dummy = dummy_oids+0;
static const gss_OID_set_desc dummy_oidsets[] = {
        {1, (gss_OID) dummy_oids+0},
};
const gss_OID_set_desc * const gss_mech_set_dummy = dummy_oidsets+0;

#define TWRITE_STR(ptr, str, len) \
        (void) memcpy((ptr), (char *) (str), (len)); \
        (ptr) += (len);
#ifndef _KERNEL

#ifdef DEBUG_ON

#define dprintf(a) printf(a)
#define dprintf1(a, b) printf(a, b)

#else

#define dprintf(a)
#define dprintf1(a, b)
#define DUMMY_STATIC

#endif  /* DEBUG_ON */

#else   /* _KERNEL */

#if defined(DEBUG) && !defined(DUMMY_MECH_DEBUG)
#define DUMMY_MECH_DEBUG
#endif

#ifdef DUMMY_MECH_DEBUG
#define DUMMY_MECH_LOG(A, B, C) \
        ((void)((dummy_mech_log & (A)) && (printf((B), (C)), TRUE)))
#define DUMMY_MECH_LOG0(A, B)   \
        ((void)((dummy_mech_log & (A)) && (printf(B), TRUE)))
#else
#define DUMMY_MECH_LOG(A, B, C)
#define DUMMY_MECH_LOG0(A, B)

#endif

#define dprintf(a)      DUMMY_MECH_LOG0(8, a)
#define dprintf1(a, b)  DUMMY_MECH_LOG(8, a, b)
#define DUMMY_STATIC    static

#endif  /* _KERNEL */

/*
 * declarations of internal name mechanism functions
 */

OM_uint32 dummy_gss_acquire_cred
        (
                void *,                 /* dummy context */
                OM_uint32 *,            /* minor_status */
                gss_name_t,             /* desired_name */
                OM_uint32,              /* time_req */
                gss_OID_set,            /* desired_mechs */
                gss_cred_usage_t,       /* cred_usage */
                gss_cred_id_t *,        /* output_cred_handle */
                gss_OID_set *,          /* actual_mechs */
                OM_uint32 *             /* time_rec */
        /* */);

OM_uint32 dummy_gss_release_cred
        (
                void *,                 /* dummy context */
                OM_uint32 *,            /* minor_status */
                gss_cred_id_t *         /* cred_handle */
        /* */);

OM_uint32 dummy_gss_init_sec_context
        (
                void *,                 /* dummy context */
                OM_uint32 *,            /* minor_status */
                gss_cred_id_t,          /* claimant_cred_handle */
                gss_ctx_id_t *,         /* context_handle */
                gss_name_t,             /* target_name */
                gss_OID,                /* mech_type */
                OM_uint32,              /* req_flags */
                OM_uint32,              /* time_req */
                gss_channel_bindings_t, /* input_chan_bindings */
                gss_buffer_t,           /* input_token */
                gss_OID *,              /* actual_mech_type */
                gss_buffer_t,           /* output_token */
                OM_uint32 *,            /* ret_flags */
                OM_uint32 *             /* time_rec */
        /* */);

OM_uint32 dummy_gss_accept_sec_context
        (
                void *,                 /* dummy context */
                OM_uint32 *,            /* minor_status */
                gss_ctx_id_t *,         /* context_handle */
                gss_cred_id_t,          /* verifier_cred_handle */
                gss_buffer_t,           /* input_token_buffer */
                gss_channel_bindings_t, /* input_chan_bindings */
                gss_name_t *,           /* src_name */
                gss_OID *,              /* mech_type */
                gss_buffer_t,           /* output_token */
                OM_uint32 *,            /* ret_flags */
                OM_uint32 *,            /* time_rec */
                gss_cred_id_t *         /* delegated_cred_handle */
        /* */);

OM_uint32 dummy_gss_process_context_token
        (
                void *,                 /* dummy context */
                OM_uint32 *,            /* minor_status */
                gss_ctx_id_t,           /* context_handle */
                gss_buffer_t            /* token_buffer */
        /* */);

DUMMY_STATIC OM_uint32 dummy_gss_delete_sec_context
        (
                void *,                 /* dummy context */
                OM_uint32 *,            /* minor_status */
                gss_ctx_id_t *,         /* context_handle */
                gss_buffer_t            /* output_token */
#ifdef  _KERNEL
        /* */, OM_uint32
#endif
        /* */);

OM_uint32 dummy_gss_context_time
        (
                void *,                 /* dummy context */
                OM_uint32 *,            /* minor_status */
                gss_ctx_id_t,           /* context_handle */
                OM_uint32 *             /* time_rec */
        /* */);

DUMMY_STATIC OM_uint32 dummy_gss_sign
        (
                void *,                 /* dummy context */
                OM_uint32 *,            /* minor_status */
                gss_ctx_id_t,           /* context_handle */
                int,                    /* qop_req */
                gss_buffer_t,           /* message_buffer */
                gss_buffer_t            /* message_token */
#ifdef  _KERNEL
        /* */, OM_uint32
#endif
        /* */);

DUMMY_STATIC OM_uint32 dummy_gss_verify
        (
                void *,                 /* dummy context */
                OM_uint32 *,            /* minor_status */
                gss_ctx_id_t,           /* context_handle */
                gss_buffer_t,           /* message_buffer */
                gss_buffer_t,           /* token_buffer */
                int *                   /* qop_state */
#ifdef  _KERNEL
        /* */, OM_uint32

#endif
        /* */);

DUMMY_STATIC OM_uint32 dummy_gss_seal
        (
                void *,                 /* dummy context */
                OM_uint32 *,            /* minor_status */
                gss_ctx_id_t,           /* context_handle */
                int,                    /* conf_req_flag */
                int,                    /* qop_req */
                gss_buffer_t,           /* input_message_buffer */
                int *,                  /* conf_state */
                gss_buffer_t            /* output_message_buffer */
#ifdef  _KERNEL
        /* */, OM_uint32
#endif
        /* */);

DUMMY_STATIC OM_uint32 dummy_gss_unseal
        (
                void *,                 /* dummy context */
                OM_uint32 *,            /* minor_status */
                gss_ctx_id_t,           /* context_handle */
                gss_buffer_t,           /* input_message_buffer */
                gss_buffer_t,           /* output_message_buffer */
                int *,                  /* conf_state */
                int *                   /* qop_state */
#ifdef  _KERNEL
        /* */, OM_uint32
#endif
        /* */);

OM_uint32 dummy_gss_display_status
        (
                void *,                 /* dummy context */
                OM_uint32 *,            /* minor_status */
                OM_uint32,              /* status_value */
                int,                    /* status_type */
                gss_OID,                /* mech_type */
                OM_uint32 *,            /* message_context */
                gss_buffer_t            /* status_string */
        /* */);

OM_uint32 dummy_gss_indicate_mechs
        (
                void *,                 /* dummy context */
                OM_uint32 *,            /* minor_status */
                gss_OID_set *           /* mech_set */
        /* */);

OM_uint32 dummy_gss_compare_name
        (
                void *,                 /* dummy context */
                OM_uint32 *,            /* minor_status */
                gss_name_t,             /* name1 */
                gss_name_t,             /* name2 */
                int *                   /* name_equal */
        /* */);

OM_uint32 dummy_gss_display_name
        (
                void *,                 /* dummy context */
                OM_uint32 *,            /* minor_status */
                gss_name_t,             /* input_name */
                gss_buffer_t,           /* output_name_buffer */
                gss_OID *               /* output_name_type */
        /* */);

OM_uint32 dummy_gss_import_name
        (
                void *,                 /* dummy context */
                OM_uint32 *,            /* minor_status */
                gss_buffer_t,           /* input_name_buffer */
                gss_OID,                /* input_name_type */
                gss_name_t *            /* output_name */
        /* */);

OM_uint32 dummy_gss_release_name
        (
                void *,                 /* dummy context */
                OM_uint32 *,            /* minor_status */
                gss_name_t *            /* input_name */
        /* */);

OM_uint32 dummy_gss_inquire_cred
        (
                void *,                 /* dummy context */
                OM_uint32 *,            /* minor_status */
                gss_cred_id_t,          /* cred_handle */
                gss_name_t *,           /* name */
                OM_uint32 *,            /* lifetime */
                gss_cred_usage_t *,     /* cred_usage */
                gss_OID_set *           /* mechanisms */
        /* */);

OM_uint32 dummy_gss_inquire_context
        (
                void *,                 /* dummy context */
                OM_uint32 *,            /* minor_status */
                gss_ctx_id_t,           /* context_handle */
                gss_name_t *,           /* initiator_name */
                gss_name_t *,           /* acceptor_name */
                OM_uint32 *,            /* lifetime_rec */
                gss_OID *,              /* mech_type */
                OM_uint32 *,            /* ret_flags */
                int *,                  /* locally_initiated */
                int *                   /* open */
        /* */);

/* New V2 entry points */
OM_uint32 dummy_gss_get_mic
        (
                void *,                 /* dummy context */
                OM_uint32 *,            /* minor_status */
                gss_ctx_id_t,           /* context_handle */
                gss_qop_t,              /* qop_req */
                gss_buffer_t,           /* message_buffer */
                gss_buffer_t            /* message_token */
        /* */);

OM_uint32 dummy_gss_verify_mic
        (
                void *,                 /* dummy context */
                OM_uint32 *,            /* minor_status */
                gss_ctx_id_t,           /* context_handle */
                gss_buffer_t,           /* message_buffer */
                gss_buffer_t,           /* message_token */
                gss_qop_t *             /* qop_state */
        /* */);

OM_uint32 dummy_gss_wrap
        (
                void *,                 /* dummy context */
                OM_uint32 *,            /* minor_status */
                gss_ctx_id_t,           /* context_handle */
                int,                    /* conf_req_flag */
                gss_qop_t,              /* qop_req */
                gss_buffer_t,           /* input_message_buffer */
                int *,                  /* conf_state */
                gss_buffer_t            /* output_message_buffer */
        /* */);

OM_uint32 dummy_gss_unwrap
        (
                void *,                 /* dummy context */
                OM_uint32 *,            /* minor_status */
                gss_ctx_id_t,           /* context_handle */
                gss_buffer_t,           /* input_message_buffer */
                gss_buffer_t,           /* output_message_buffer */
                int *,                  /* conf_state */
                gss_qop_t *             /* qop_state */
        /* */);

OM_uint32 dummy_gss_wrap_size_limit
        (
                void *,                 /* dummy context */
                OM_uint32 *,            /* minor_status */
                gss_ctx_id_t,           /* context_handle */
                int,                    /* conf_req_flag */
                gss_qop_t,              /* qop_req */
                OM_uint32,              /* req_output_size */
                OM_uint32 *             /* max_input_size */
        /* */);

OM_uint32 dummy_gss_add_cred
        (
                void *,                 /* dummy context */
                OM_uint32 *,            /* minor_status */
                gss_cred_id_t,          /* input_cred_handle */
                gss_name_t,             /* desired_name */
                gss_OID,                /* desired_mech */
                gss_cred_usage_t,       /* cred_usage */
                OM_uint32,              /* initiator_time_req */
                OM_uint32,              /* acceptor_time_req */
                gss_cred_id_t *,        /* output_cred_handle */
                gss_OID_set *,          /* actual_mechs */
                OM_uint32 *,            /* initiator_time_rec */
                OM_uint32 *             /* acceptor_time_rec */
        /* */);

OM_uint32 dummy_gss_inquire_cred_by_mech
        (
                void *,                 /* dummy context */
                OM_uint32  *,           /* minor_status */
                gss_cred_id_t,          /* cred_handle */
                gss_OID,                /* mech_type */
                gss_name_t *,           /* name */
                OM_uint32 *,            /* initiator_lifetime */
                OM_uint32 *,            /* acceptor_lifetime */
                gss_cred_usage_t *      /* cred_usage */
        /* */);

OM_uint32 dummy_gss_export_sec_context
        (
                void *,                 /* dummy context */
                OM_uint32 *,            /* minor_status */
                gss_ctx_id_t *,         /* context_handle */
                gss_buffer_t            /* interprocess_token */
        /* */);

OM_uint32 dummy_gss_import_sec_context
        (
                void *,                 /* dummy context */
                OM_uint32 *,            /* minor_status */
                gss_buffer_t,           /* interprocess_token */
                gss_ctx_id_t *          /* context_handle */
        /* */);

#if 0
OM_uint32 dummy_gss_release_oid
        (
                OM_uint32 *,            /* minor_status */
                gss_OID *               /* oid */
        /* */);
#endif

OM_uint32 dummy_gss_internal_release_oid
        (
                void *,                 /* dummy context  */
                OM_uint32 *,            /* minor_status */
                gss_OID *               /* oid */
        /* */);

OM_uint32 dummy_gss_inquire_names_for_mech
        (
                void *,         /* dummy context */
                OM_uint32 *,            /* minor_status */
                gss_OID,                /* mechanism */
                gss_OID_set *           /* name_types */
        /* */);

OM_uint32 dummy_pname_to_uid
        (
                void *,                 /* dummy context */
                OM_uint32 *,            /* minor status */
                const gss_name_t,       /* pname */
                uid_t *                 /* uidOut */
        /* */);


#ifdef  __cplusplus
}
#endif

#endif /* _GSSAPIP_DUMMY_H */