jdk/src/solaris/native/sun/security/jgss/wrapper/NativeFunc.h
changeset 2 90ce3da70b43
child 5506 202f599c92aa
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/solaris/native/sun/security/jgss/wrapper/NativeFunc.h	Sat Dec 01 00:00:00 2007 +0000
@@ -0,0 +1,270 @@
+/*
+ * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+#ifndef NATIVE_FUNC_H
+#define NATIVE_FUNC_H
+
+#include "gssapi.h"
+
+#ifndef TRUE
+#define TRUE    1
+#endif
+
+#ifndef FALSE
+#define FALSE   0
+#endif
+
+char* loadNative(const char *libName);
+
+/* function pointer definitions */
+typedef OM_uint32 (*RELEASE_NAME_FN_PTR)
+                                (OM_uint32 *minor_status,
+                                gss_name_t *name);
+
+typedef OM_uint32 (*IMPORT_NAME_FN_PTR)
+                                (OM_uint32 *minor_status,
+                                gss_buffer_t input_name_buffer,
+                                gss_OID input_name_type,
+                                gss_name_t *output_name);
+
+typedef OM_uint32 (*COMPARE_NAME_FN_PTR)
+                                (OM_uint32 *minor_status,
+                                gss_name_t name1,
+                                gss_name_t name2,
+                                int *name_equal);
+
+typedef OM_uint32 (*CANONICALIZE_NAME_FN_PTR)
+                                (OM_uint32 *minor_status,
+                                gss_name_t input_name,
+                                gss_OID mech_type,
+                                gss_name_t *output_name);
+
+typedef OM_uint32 (*EXPORT_NAME_FN_PTR)
+                                (OM_uint32 *minor_status,
+                                gss_name_t input_name,
+                                gss_buffer_t exported_name);
+
+typedef OM_uint32 (*DISPLAY_NAME_FN_PTR)
+                                (OM_uint32 *minor_status,
+                                gss_name_t input_name,
+                                gss_buffer_t output_name_buffer,
+                                gss_OID *output_name_type);
+
+typedef OM_uint32 (*ACQUIRE_CRED_FN_PTR)
+                                (OM_uint32 *minor_status,
+                                gss_name_t desired_name,
+                                OM_uint32 time_req,
+                                gss_OID_set desired_mech,
+                                gss_cred_usage_t cred_usage,
+                                gss_cred_id_t *output_cred_handle,
+                                gss_OID_set *actual_mechs,
+                                OM_uint32 *time_rec);
+
+typedef OM_uint32 (*RELEASE_CRED_FN_PTR)
+                                (OM_uint32 *minor_status,
+                                gss_cred_id_t *cred_handle);
+
+typedef OM_uint32 (*INQUIRE_CRED_FN_PTR)
+                                (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);
+
+typedef OM_uint32 (*IMPORT_SEC_CONTEXT_FN_PTR)
+                                (OM_uint32 *minor_status,
+                                gss_buffer_t interprocess_token,
+                                gss_ctx_id_t *context_handle);
+
+typedef OM_uint32 (*INIT_SEC_CONTEXT_FN_PTR)
+                                (OM_uint32 *minor_status,
+                                gss_cred_id_t initiator_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);
+
+typedef OM_uint32 (*ACCEPT_SEC_CONTEXT_FN_PTR)
+                                (OM_uint32 *minor_status,
+                                gss_ctx_id_t *context_handle,
+                                gss_cred_id_t acceptor_cred_handle,
+                                gss_buffer_t input_token,
+                                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);
+
+typedef OM_uint32 (*INQUIRE_CONTEXT_FN_PTR)
+                                (OM_uint32 *minor_status,
+                                gss_ctx_id_t context_handle,
+                                gss_name_t *src_name,
+                                gss_name_t *targ_name,
+                                OM_uint32 *lifetime_rec,
+                                gss_OID *mech_type,
+                                OM_uint32 *ctx_flags,
+                                int *locally_initiated,
+                                int *open);
+
+typedef OM_uint32 (*DELETE_SEC_CONTEXT_FN_PTR)
+                                (OM_uint32 *minor_status,
+                                gss_ctx_id_t *context_handle,
+                                gss_buffer_t output_token);
+
+typedef OM_uint32 (*CONTEXT_TIME_FN_PTR)
+                                (OM_uint32 *minor_status,
+                                gss_ctx_id_t *context_handle,
+                                OM_uint32 *time_rec);
+
+typedef OM_uint32 (*WRAP_SIZE_LIMIT_FN_PTR)
+                                (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);
+
+typedef OM_uint32 (*EXPORT_SEC_CONTEXT_FN_PTR)
+                                (OM_uint32 *minor_status,
+                                gss_ctx_id_t *context_handle,
+                                gss_buffer_t interprocess_token);
+
+typedef OM_uint32 (*GET_MIC_FN_PTR)
+                                (OM_uint32 *minor_status,
+                                gss_ctx_id_t context_handle,
+                                gss_qop_t qop_req,
+                                gss_buffer_t message_buffer,
+                                gss_buffer_t msg_token);
+
+typedef OM_uint32 (*VERIFY_MIC_FN_PTR)
+                                (OM_uint32 *minor_status,
+                                gss_ctx_id_t context_handle,
+                                gss_buffer_t message_buffer,
+                                gss_buffer_t token_buffer,
+                                gss_qop_t *qop_state);
+
+typedef OM_uint32 (*WRAP_FN_PTR)
+                                (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);
+
+typedef OM_uint32 (*UNWRAP_FN_PTR)
+                                (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);
+
+typedef OM_uint32 (*INDICATE_MECHS_FN_PTR)
+                                (OM_uint32 *minor_status,
+                                gss_OID_set *mech_set);
+
+typedef OM_uint32 (*INQUIRE_NAMES_FOR_MECH_FN_PTR)
+                                (OM_uint32 *minor_status,
+                                const gss_OID mechanism,
+                                gss_OID_set *name_types);
+
+typedef OM_uint32 (*ADD_OID_SET_MEMBER_FN_PTR)
+                                (OM_uint32 *minor_status,
+                                gss_OID member_oid,
+                                gss_OID_set *oid_set);
+
+typedef OM_uint32 (*DISPLAY_STATUS_FN_PTR)
+                                (OM_uint32 *minor_status,
+                                OM_uint32 status_value,
+                                int status_type,
+                                gss_OID mech_type,
+                                OM_uint32 *message_context,
+                                gss_buffer_t status_string);
+
+typedef OM_uint32 (*CREATE_EMPTY_OID_SET_FN_PTR)
+                                (OM_uint32 *minor_status,
+                                gss_OID_set *oid_set);
+
+typedef OM_uint32 (*RELEASE_OID_SET_FN_PTR)
+                                (OM_uint32 *minor_status,
+                                gss_OID_set *set);
+
+typedef OM_uint32 (*RELEASE_BUFFER_FN_PTR)
+                                (OM_uint32 *minor_status,
+                                gss_buffer_t buffer);
+
+
+/* dynamically resolved functions from gss library */
+
+typedef struct GSS_FUNCTION_TABLE {
+    gss_OID_set                         mechs;
+    RELEASE_NAME_FN_PTR                 releaseName;
+    IMPORT_NAME_FN_PTR                  importName;
+    COMPARE_NAME_FN_PTR                 compareName;
+    CANONICALIZE_NAME_FN_PTR            canonicalizeName;
+    EXPORT_NAME_FN_PTR                  exportName;
+    DISPLAY_NAME_FN_PTR                 displayName;
+    ACQUIRE_CRED_FN_PTR                 acquireCred;
+    RELEASE_CRED_FN_PTR                 releaseCred;
+    INQUIRE_CRED_FN_PTR                 inquireCred;
+    IMPORT_SEC_CONTEXT_FN_PTR           importSecContext;
+    INIT_SEC_CONTEXT_FN_PTR             initSecContext;
+    ACCEPT_SEC_CONTEXT_FN_PTR           acceptSecContext;
+    INQUIRE_CONTEXT_FN_PTR              inquireContext;
+    DELETE_SEC_CONTEXT_FN_PTR           deleteSecContext;
+    CONTEXT_TIME_FN_PTR                 contextTime;
+    WRAP_SIZE_LIMIT_FN_PTR              wrapSizeLimit;
+    EXPORT_SEC_CONTEXT_FN_PTR           exportSecContext;
+    GET_MIC_FN_PTR                      getMic;
+    VERIFY_MIC_FN_PTR                   verifyMic;
+    WRAP_FN_PTR                         wrap;
+    UNWRAP_FN_PTR                       unwrap;
+    INDICATE_MECHS_FN_PTR               indicateMechs;
+    INQUIRE_NAMES_FOR_MECH_FN_PTR       inquireNamesForMech;
+    ADD_OID_SET_MEMBER_FN_PTR           addOidSetMember;
+    DISPLAY_STATUS_FN_PTR               displayStatus;
+    CREATE_EMPTY_OID_SET_FN_PTR         createEmptyOidSet;
+    RELEASE_OID_SET_FN_PTR              releaseOidSet;
+    RELEASE_BUFFER_FN_PTR               releaseBuffer;
+
+} GSS_FUNCTION_TABLE;
+
+typedef GSS_FUNCTION_TABLE *GSS_FUNCTION_TABLE_PTR;
+
+/* global GSS function table */
+GSS_FUNCTION_TABLE_PTR ftab;
+
+#endif