mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-21 19:44:41 +02:00
6722928: Support SSPI as a native GSS-API provider
Reviewed-by: erikj, nwilliams, valeriep
This commit is contained in:
parent
118fd65d44
commit
475996adc2
8 changed files with 1702 additions and 111 deletions
|
@ -1,5 +1,5 @@
|
|||
#
|
||||
# Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2019, Oracle and/or its affiliates. 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
|
||||
|
@ -57,6 +57,17 @@ ifneq ($(BUILD_CRYPTO), false)
|
|||
))
|
||||
|
||||
TARGETS += $(BUILD_LIBW2K_LSA_AUTH)
|
||||
|
||||
$(eval $(call SetupJdkLibrary, BUILD_LIBSSPI_BRIDGE, \
|
||||
NAME := sspi_bridge, \
|
||||
OPTIMIZATION := LOW, \
|
||||
CFLAGS := $(CFLAGS_JDKLIB) \
|
||||
-I$(TOPDIR)/src/java.security.jgss/share/native/libj2gss, \
|
||||
LDFLAGS := $(LDFLAGS_JDKLIB) \
|
||||
$(call SET_SHARED_LIBRARY_ORIGIN) \
|
||||
))
|
||||
|
||||
TARGETS += $(BUILD_LIBSSPI_BRIDGE)
|
||||
endif
|
||||
|
||||
ifeq ($(call isTargetOs, macosx), true)
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2019, Oracle and/or its affiliates. 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
|
||||
|
@ -26,7 +26,6 @@
|
|||
package sun.security.jgss.spnego;
|
||||
|
||||
import java.io.*;
|
||||
import java.util.*;
|
||||
import org.ietf.jgss.*;
|
||||
import sun.security.jgss.*;
|
||||
import sun.security.util.*;
|
||||
|
@ -113,18 +112,6 @@ public class NegTokenTarg extends SpNegoToken {
|
|||
mic.putOctetString(mechListMIC);
|
||||
targToken.write(DerValue.createTag(DerValue.TAG_CONTEXT,
|
||||
true, (byte) 0x03), mic);
|
||||
} else if (GSSUtil.useMSInterop()) {
|
||||
// required for MS-interoperability
|
||||
if (responseToken != null) {
|
||||
if (DEBUG) {
|
||||
System.out.println("SpNegoToken NegTokenTarg: " +
|
||||
"sending additional token for MS Interop");
|
||||
}
|
||||
DerOutputStream rspToken = new DerOutputStream();
|
||||
rspToken.putOctetString(responseToken);
|
||||
targToken.write(DerValue.createTag(DerValue.TAG_CONTEXT,
|
||||
true, (byte) 0x03), rspToken);
|
||||
}
|
||||
}
|
||||
|
||||
// insert in a SEQUENCE
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2019, Oracle and/or its affiliates. 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
|
||||
|
@ -66,7 +66,7 @@ public final class SunNativeProvider extends Provider {
|
|||
static {
|
||||
MECH_MAP =
|
||||
AccessController.doPrivileged(
|
||||
new PrivilegedAction<HashMap<String, String>>() {
|
||||
new PrivilegedAction<>() {
|
||||
public HashMap<String, String> run() {
|
||||
DEBUG = Boolean.parseBoolean(
|
||||
System.getProperty("sun.security.nativegss.debug"));
|
||||
|
@ -77,7 +77,7 @@ public final class SunNativeProvider extends Provider {
|
|||
if (DEBUG) err.printStackTrace();
|
||||
return null;
|
||||
}
|
||||
String[] gssLibs = new String[0];
|
||||
String[] gssLibs;
|
||||
String defaultLib
|
||||
= System.getProperty("sun.security.jgss.lib");
|
||||
if (defaultLib == null || defaultLib.trim().equals("")) {
|
||||
|
@ -95,6 +95,12 @@ public final class SunNativeProvider extends Provider {
|
|||
"libgssapi_krb5.dylib",
|
||||
"/usr/lib/sasl2/libgssapiv2.2.so",
|
||||
};
|
||||
} else if (osname.contains("Windows")) {
|
||||
// Full path needed, DLL is in jre/bin
|
||||
gssLibs = new String[]{ System.getProperty("java.home")
|
||||
+ "\\bin\\sspi_bridge.dll" };
|
||||
} else {
|
||||
gssLibs = new String[0];
|
||||
}
|
||||
} else {
|
||||
gssLibs = new String[]{ defaultLib };
|
||||
|
@ -103,8 +109,7 @@ public final class SunNativeProvider extends Provider {
|
|||
if (GSSLibStub.init(libName, DEBUG)) {
|
||||
debug("Loaded GSS library: " + libName);
|
||||
Oid[] mechs = GSSLibStub.indicateMechs();
|
||||
HashMap<String, String> map =
|
||||
new HashMap<String, String>();
|
||||
HashMap<String,String> map = new HashMap<>();
|
||||
for (int i = 0; i < mechs.length; i++) {
|
||||
debug("Native MF for " + mechs[i]);
|
||||
map.put("GssApiMechanism." + mechs[i],
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2019, Oracle and/or its affiliates. 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
|
||||
|
@ -982,7 +982,7 @@ Java_sun_security_jgss_wrapper_GSSLibStub_acceptContext(JNIEnv *env,
|
|||
OM_uint32 aFlags;
|
||||
OM_uint32 aTime;
|
||||
gss_cred_id_t delCred;
|
||||
jobject jsrcName=GSS_C_NO_NAME;
|
||||
jobject jsrcName = NULL;
|
||||
jobject jdelCred;
|
||||
jobject jMech;
|
||||
jboolean setTarget;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2019, Oracle and/or its affiliates. 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
|
||||
|
@ -57,38 +57,38 @@ typedef OM_uint32 (*RELEASE_NAME_FN_PTR)
|
|||
|
||||
typedef OM_uint32 (*IMPORT_NAME_FN_PTR)
|
||||
(OM_uint32 *minor_status,
|
||||
gss_buffer_t input_name_buffer,
|
||||
gss_OID input_name_type,
|
||||
const gss_buffer_t input_name_buffer,
|
||||
const 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,
|
||||
gss_const_name_t name1,
|
||||
gss_const_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_const_name_t input_name,
|
||||
const 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_const_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_const_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,
|
||||
gss_const_name_t desired_name,
|
||||
OM_uint32 time_req,
|
||||
gss_OID_set desired_mech,
|
||||
const gss_OID_set desired_mech,
|
||||
gss_cred_usage_t cred_usage,
|
||||
gss_cred_id_t *output_cred_handle,
|
||||
gss_OID_set *actual_mechs,
|
||||
|
@ -100,7 +100,7 @@ typedef OM_uint32 (*RELEASE_CRED_FN_PTR)
|
|||
|
||||
typedef OM_uint32 (*INQUIRE_CRED_FN_PTR)
|
||||
(OM_uint32 *minor_status,
|
||||
gss_cred_id_t cred_handle,
|
||||
gss_const_cred_id_t cred_handle,
|
||||
gss_name_t *name,
|
||||
OM_uint32 *lifetime,
|
||||
gss_cred_usage_t *cred_usage,
|
||||
|
@ -108,19 +108,19 @@ typedef OM_uint32 (*INQUIRE_CRED_FN_PTR)
|
|||
|
||||
typedef OM_uint32 (*IMPORT_SEC_CONTEXT_FN_PTR)
|
||||
(OM_uint32 *minor_status,
|
||||
gss_buffer_t interprocess_token,
|
||||
const 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_const_cred_id_t initiator_cred_handle,
|
||||
gss_ctx_id_t *context_handle,
|
||||
gss_name_t *target_name,
|
||||
gss_OID mech_type,
|
||||
gss_const_name_t target_name,
|
||||
const gss_OID mech_type,
|
||||
OM_uint32 req_flags,
|
||||
OM_uint32 time_req,
|
||||
gss_channel_bindings_t input_chan_bindings,
|
||||
gss_buffer_t input_token,
|
||||
const gss_channel_bindings_t input_chan_bindings,
|
||||
const gss_buffer_t input_token,
|
||||
gss_OID *actual_mech_type,
|
||||
gss_buffer_t output_token,
|
||||
OM_uint32 *ret_flags,
|
||||
|
@ -129,9 +129,9 @@ typedef OM_uint32 (*INIT_SEC_CONTEXT_FN_PTR)
|
|||
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_const_cred_id_t acceptor_cred_handle,
|
||||
const gss_buffer_t input_token,
|
||||
const gss_channel_bindings_t input_chan_bindings,
|
||||
gss_name_t *src_name,
|
||||
gss_OID *mech_type,
|
||||
gss_buffer_t output_token,
|
||||
|
@ -141,7 +141,7 @@ typedef OM_uint32 (*ACCEPT_SEC_CONTEXT_FN_PTR)
|
|||
|
||||
typedef OM_uint32 (*INQUIRE_CONTEXT_FN_PTR)
|
||||
(OM_uint32 *minor_status,
|
||||
gss_ctx_id_t context_handle,
|
||||
gss_const_ctx_id_t context_handle,
|
||||
gss_name_t *src_name,
|
||||
gss_name_t *targ_name,
|
||||
OM_uint32 *lifetime_rec,
|
||||
|
@ -157,12 +157,12 @@ typedef OM_uint32 (*DELETE_SEC_CONTEXT_FN_PTR)
|
|||
|
||||
typedef OM_uint32 (*CONTEXT_TIME_FN_PTR)
|
||||
(OM_uint32 *minor_status,
|
||||
gss_ctx_id_t *context_handle,
|
||||
gss_const_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,
|
||||
gss_const_ctx_id_t context_handle,
|
||||
int conf_req_flag,
|
||||
gss_qop_t qop_req,
|
||||
OM_uint32 req_output_size,
|
||||
|
@ -175,31 +175,31 @@ typedef OM_uint32 (*EXPORT_SEC_CONTEXT_FN_PTR)
|
|||
|
||||
typedef OM_uint32 (*GET_MIC_FN_PTR)
|
||||
(OM_uint32 *minor_status,
|
||||
gss_ctx_id_t context_handle,
|
||||
gss_const_ctx_id_t context_handle,
|
||||
gss_qop_t qop_req,
|
||||
gss_buffer_t message_buffer,
|
||||
const 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_const_ctx_id_t context_handle,
|
||||
const gss_buffer_t message_buffer,
|
||||
const 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,
|
||||
gss_const_ctx_id_t context_handle,
|
||||
int conf_req_flag,
|
||||
gss_qop_t qop_req,
|
||||
gss_buffer_t input_message_buffer,
|
||||
const 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_const_ctx_id_t context_handle,
|
||||
const gss_buffer_t input_message_buffer,
|
||||
gss_buffer_t output_message_buffer,
|
||||
int *conf_state,
|
||||
gss_qop_t *qop_state);
|
||||
|
@ -215,14 +215,14 @@ typedef OM_uint32 (*INQUIRE_NAMES_FOR_MECH_FN_PTR)
|
|||
|
||||
typedef OM_uint32 (*ADD_OID_SET_MEMBER_FN_PTR)
|
||||
(OM_uint32 *minor_status,
|
||||
gss_OID member_oid,
|
||||
const 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,
|
||||
const gss_OID mech_type,
|
||||
OM_uint32 *message_context,
|
||||
gss_buffer_t status_string);
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2019, Oracle and/or its affiliates. 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
|
||||
|
@ -83,10 +83,10 @@ extern "C" {
|
|||
extern jfieldID FID_NativeGSSContext_flags;
|
||||
extern jfieldID FID_NativeGSSContext_lifetime;
|
||||
extern jfieldID FID_NativeGSSContext_actualMech;
|
||||
#define TRACE0(s) { if (JGSS_DEBUG) { puts(s); fflush(stdout); }}
|
||||
#define TRACE1(s, p1) { if (JGSS_DEBUG) { printf(s"\n", p1); fflush(stdout); }}
|
||||
#define TRACE2(s, p1, p2) { if (JGSS_DEBUG) { printf(s"\n", p1, p2); fflush(stdout); }}
|
||||
#define TRACE3(s, p1, p2, p3) { if (JGSS_DEBUG) { printf(s"\n", p1, p2, p3); fflush(stdout); }}
|
||||
#define TRACE0(s) { if (JGSS_DEBUG) { printf("[GSSLibStub:%d] %s\n", __LINE__, s); fflush(stdout); }}
|
||||
#define TRACE1(s, p1) { if (JGSS_DEBUG) { printf("[GSSLibStub:%d] "s"\n", __LINE__, p1); fflush(stdout); }}
|
||||
#define TRACE2(s, p1, p2) { if (JGSS_DEBUG) { printf("[GSSLibStub:%d] "s"\n", __LINE__, p1, p2); fflush(stdout); }}
|
||||
#define TRACE3(s, p1, p2, p3) { if (JGSS_DEBUG) { printf("[GSSLibStub:%d] "s"\n", __LINE__, p1, p2, p3); fflush(stdout); }}
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2019, Oracle and/or its affiliates. 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
|
||||
|
@ -57,9 +57,17 @@ extern "C" {
|
|||
*/
|
||||
#include <sys/types.h>
|
||||
|
||||
typedef void * gss_name_t;
|
||||
typedef void * gss_cred_id_t;
|
||||
typedef void * gss_ctx_id_t;
|
||||
struct gss_name_struct;
|
||||
typedef struct gss_name_struct * gss_name_t;
|
||||
typedef const struct gss_name_struct *gss_const_name_t;
|
||||
|
||||
struct gss_cred_id_struct;
|
||||
typedef struct gss_cred_id_struct * gss_cred_id_t;
|
||||
typedef const struct gss_cred_id_struct *gss_const_cred_id_t;
|
||||
|
||||
struct gss_ctx_id_struct;
|
||||
typedef struct gss_ctx_id_struct * gss_ctx_id_t;
|
||||
typedef const struct gss_ctx_id_struct *gss_const_ctx_id_t;
|
||||
|
||||
/*
|
||||
* The following type must be defined as the smallest natural unsigned integer
|
||||
|
@ -82,16 +90,19 @@ typedef struct gss_OID_desc_struct {
|
|||
OM_uint32 length;
|
||||
void *elements;
|
||||
} gss_OID_desc, *gss_OID;
|
||||
typedef const gss_OID_desc * gss_const_OID;
|
||||
|
||||
typedef struct gss_OID_set_desc_struct {
|
||||
size_t count;
|
||||
gss_OID elements;
|
||||
} gss_OID_set_desc, *gss_OID_set;
|
||||
typedef const gss_OID_set_desc * gss_const_OID_set;
|
||||
|
||||
typedef struct gss_buffer_desc_struct {
|
||||
size_t length;
|
||||
void *value;
|
||||
} gss_buffer_desc, *gss_buffer_t;
|
||||
typedef const gss_buffer_desc * gss_const_buffer_t;
|
||||
|
||||
typedef struct gss_channel_bindings_struct {
|
||||
OM_uint32 initiator_addrtype;
|
||||
|
@ -100,6 +111,7 @@ typedef struct gss_channel_bindings_struct {
|
|||
gss_buffer_desc acceptor_address;
|
||||
gss_buffer_desc application_data;
|
||||
} *gss_channel_bindings_t;
|
||||
typedef const struct gss_channel_bindings_struct *gss_const_channel_bindings_t;
|
||||
|
||||
/*
|
||||
* For now, define a QOP-type as an OM_uint32
|
||||
|
@ -119,6 +131,7 @@ typedef int gss_cred_usage_t;
|
|||
#define GSS_C_ANON_FLAG 64
|
||||
#define GSS_C_PROT_READY_FLAG 128
|
||||
#define GSS_C_TRANS_FLAG 256
|
||||
#define GSS_C_DELEG_POLICY_FLAG 32768
|
||||
|
||||
/*
|
||||
* Credential usage options
|
||||
|
@ -389,9 +402,9 @@ GSS_DLLIMP extern gss_OID GSS_C_NT_EXPORT_NAME;
|
|||
|
||||
GSS_DLLIMP OM_uint32 gss_acquire_cred(
|
||||
OM_uint32 *, /* minor_status */
|
||||
gss_name_t, /* desired_name */
|
||||
gss_const_name_t, /* desired_name */
|
||||
OM_uint32, /* time_req */
|
||||
gss_OID_set, /* desired_mechs */
|
||||
const gss_OID_set, /* desired_mechs */
|
||||
gss_cred_usage_t, /* cred_usage */
|
||||
gss_cred_id_t *, /* output_cred_handle */
|
||||
gss_OID_set *, /* actual_mechs */
|
||||
|
@ -405,14 +418,14 @@ GSS_DLLIMP OM_uint32 gss_release_cred(
|
|||
|
||||
GSS_DLLIMP OM_uint32 gss_init_sec_context(
|
||||
OM_uint32 *, /* minor_status */
|
||||
gss_cred_id_t, /* claimant_cred_handle */
|
||||
gss_const_cred_id_t, /* claimant_cred_handle */
|
||||
gss_ctx_id_t *, /* context_handle */
|
||||
gss_name_t, /* target_name */
|
||||
gss_OID, /* mech_type (used to be const) */
|
||||
gss_const_name_t, /* target_name */
|
||||
const gss_OID, /* mech_type */
|
||||
OM_uint32, /* req_flags */
|
||||
OM_uint32, /* time_req */
|
||||
gss_channel_bindings_t, /* input_chan_bindings */
|
||||
gss_buffer_t, /* input_token */
|
||||
const gss_channel_bindings_t, /* input_chan_bindings */
|
||||
const gss_buffer_t, /* input_token */
|
||||
gss_OID *, /* actual_mech_type */
|
||||
gss_buffer_t, /* output_token */
|
||||
OM_uint32 *, /* ret_flags */
|
||||
|
@ -422,9 +435,9 @@ GSS_DLLIMP OM_uint32 gss_init_sec_context(
|
|||
GSS_DLLIMP OM_uint32 gss_accept_sec_context(
|
||||
OM_uint32 *, /* minor_status */
|
||||
gss_ctx_id_t *, /* context_handle */
|
||||
gss_cred_id_t, /* acceptor_cred_handle */
|
||||
gss_buffer_t, /* input_token_buffer */
|
||||
gss_channel_bindings_t, /* input_chan_bindings */
|
||||
gss_const_cred_id_t, /* acceptor_cred_handle */
|
||||
const gss_buffer_t, /* input_token_buffer */
|
||||
const gss_channel_bindings_t, /* input_chan_bindings */
|
||||
gss_name_t *, /* src_name */
|
||||
gss_OID *, /* mech_type */
|
||||
gss_buffer_t, /* output_token */
|
||||
|
@ -435,8 +448,8 @@ GSS_DLLIMP OM_uint32 gss_accept_sec_context(
|
|||
|
||||
GSS_DLLIMP OM_uint32 gss_process_context_token(
|
||||
OM_uint32 *, /* minor_status */
|
||||
gss_ctx_id_t, /* context_handle */
|
||||
gss_buffer_t /* token_buffer */
|
||||
gss_const_ctx_id_t, /* context_handle */
|
||||
const gss_buffer_t /* token_buffer */
|
||||
);
|
||||
|
||||
GSS_DLLIMP OM_uint32 gss_delete_sec_context(
|
||||
|
@ -447,35 +460,35 @@ GSS_DLLIMP OM_uint32 gss_delete_sec_context(
|
|||
|
||||
GSS_DLLIMP OM_uint32 gss_context_time(
|
||||
OM_uint32 *, /* minor_status */
|
||||
gss_ctx_id_t, /* context_handle */
|
||||
gss_const_ctx_id_t, /* context_handle */
|
||||
OM_uint32 * /* time_rec */
|
||||
);
|
||||
|
||||
/* New for V2 */
|
||||
GSS_DLLIMP OM_uint32 gss_get_mic(
|
||||
OM_uint32 *, /* minor_status */
|
||||
gss_ctx_id_t, /* context_handle */
|
||||
gss_const_ctx_id_t, /* context_handle */
|
||||
gss_qop_t, /* qop_req */
|
||||
gss_buffer_t, /* message_buffer */
|
||||
const gss_buffer_t, /* message_buffer */
|
||||
gss_buffer_t /* message_token */
|
||||
);
|
||||
|
||||
/* New for V2 */
|
||||
GSS_DLLIMP OM_uint32 gss_verify_mic(
|
||||
OM_uint32 *, /* minor_status */
|
||||
gss_ctx_id_t, /* context_handle */
|
||||
gss_buffer_t, /* message_buffer */
|
||||
gss_buffer_t, /* message_token */
|
||||
gss_const_ctx_id_t, /* context_handle */
|
||||
const gss_buffer_t, /* message_buffer */
|
||||
const gss_buffer_t, /* message_token */
|
||||
gss_qop_t * /* qop_state */
|
||||
);
|
||||
|
||||
/* New for V2 */
|
||||
GSS_DLLIMP OM_uint32 gss_wrap(
|
||||
OM_uint32 *, /* minor_status */
|
||||
gss_ctx_id_t, /* context_handle */
|
||||
gss_const_ctx_id_t, /* context_handle */
|
||||
int, /* conf_req_flag */
|
||||
gss_qop_t, /* qop_req */
|
||||
gss_buffer_t, /* input_message_buffer */
|
||||
const gss_buffer_t, /* input_message_buffer */
|
||||
int *, /* conf_state */
|
||||
gss_buffer_t /* output_message_buffer */
|
||||
);
|
||||
|
@ -483,8 +496,8 @@ GSS_DLLIMP OM_uint32 gss_wrap(
|
|||
/* New for V2 */
|
||||
GSS_DLLIMP OM_uint32 gss_unwrap(
|
||||
OM_uint32 *, /* minor_status */
|
||||
gss_ctx_id_t, /* context_handle */
|
||||
gss_buffer_t, /* input_message_buffer */
|
||||
gss_const_ctx_id_t, /* context_handle */
|
||||
const gss_buffer_t, /* input_message_buffer */
|
||||
gss_buffer_t, /* output_message_buffer */
|
||||
int *, /* conf_state */
|
||||
gss_qop_t * /* qop_state */
|
||||
|
@ -494,7 +507,7 @@ GSS_DLLIMP OM_uint32 gss_display_status(
|
|||
OM_uint32 *, /* minor_status */
|
||||
OM_uint32, /* status_value */
|
||||
int, /* status_type */
|
||||
gss_OID, /* mech_type (used to be const) */
|
||||
const gss_OID, /* mech_type (used to be const) */
|
||||
OM_uint32 *, /* message_context */
|
||||
gss_buffer_t /* status_string */
|
||||
);
|
||||
|
@ -506,22 +519,22 @@ GSS_DLLIMP OM_uint32 gss_indicate_mechs(
|
|||
|
||||
GSS_DLLIMP OM_uint32 gss_compare_name(
|
||||
OM_uint32 *, /* minor_status */
|
||||
gss_name_t, /* name1 */
|
||||
gss_name_t, /* name2 */
|
||||
gss_const_name_t, /* name1 */
|
||||
gss_const_name_t, /* name2 */
|
||||
int * /* name_equal */
|
||||
);
|
||||
|
||||
GSS_DLLIMP OM_uint32 gss_display_name(
|
||||
OM_uint32 *, /* minor_status */
|
||||
gss_name_t, /* input_name */
|
||||
gss_const_name_t, /* input_name */
|
||||
gss_buffer_t, /* output_name_buffer */
|
||||
gss_OID * /* output_name_type */
|
||||
);
|
||||
|
||||
GSS_DLLIMP OM_uint32 gss_import_name(
|
||||
OM_uint32 *, /* minor_status */
|
||||
gss_buffer_t, /* input_name_buffer */
|
||||
gss_OID, /* input_name_type(used to be const) */
|
||||
const gss_buffer_t, /* input_name_buffer */
|
||||
const gss_OID, /* input_name_type(used to be const) */
|
||||
gss_name_t * /* output_name */
|
||||
);
|
||||
|
||||
|
@ -542,7 +555,7 @@ GSS_DLLIMP OM_uint32 gss_release_oid_set(
|
|||
|
||||
GSS_DLLIMP OM_uint32 gss_inquire_cred(
|
||||
OM_uint32 *, /* minor_status */
|
||||
gss_cred_id_t, /* cred_handle */
|
||||
gss_const_cred_id_t, /* cred_handle */
|
||||
gss_name_t *, /* name */
|
||||
OM_uint32 *, /* lifetime */
|
||||
gss_cred_usage_t *, /* cred_usage */
|
||||
|
@ -552,7 +565,7 @@ GSS_DLLIMP OM_uint32 gss_inquire_cred(
|
|||
/* Last argument new for V2 */
|
||||
GSS_DLLIMP OM_uint32 gss_inquire_context(
|
||||
OM_uint32 *, /* minor_status */
|
||||
gss_ctx_id_t, /* context_handle */
|
||||
gss_const_ctx_id_t, /* context_handle */
|
||||
gss_name_t *, /* src_name */
|
||||
gss_name_t *, /* targ_name */
|
||||
OM_uint32 *, /* lifetime_rec */
|
||||
|
@ -565,7 +578,7 @@ GSS_DLLIMP OM_uint32 gss_inquire_context(
|
|||
/* New for V2 */
|
||||
GSS_DLLIMP OM_uint32 gss_wrap_size_limit(
|
||||
OM_uint32 *, /* minor_status */
|
||||
gss_ctx_id_t, /* context_handle */
|
||||
gss_const_ctx_id_t, /* context_handle */
|
||||
int, /* conf_req_flag */
|
||||
gss_qop_t, /* qop_req */
|
||||
OM_uint32, /* req_output_size */
|
||||
|
@ -575,9 +588,9 @@ GSS_DLLIMP OM_uint32 gss_wrap_size_limit(
|
|||
/* New for V2 */
|
||||
GSS_DLLIMP OM_uint32 gss_add_cred(
|
||||
OM_uint32 *, /* minor_status */
|
||||
gss_cred_id_t, /* input_cred_handle */
|
||||
gss_name_t, /* desired_name */
|
||||
gss_OID, /* desired_mech */
|
||||
gss_const_cred_id_t, /* input_cred_handle */
|
||||
gss_const_name_t, /* desired_name */
|
||||
const gss_OID, /* desired_mech */
|
||||
gss_cred_usage_t, /* cred_usage */
|
||||
OM_uint32, /* initiator_time_req */
|
||||
OM_uint32, /* acceptor_time_req */
|
||||
|
@ -590,8 +603,8 @@ GSS_DLLIMP OM_uint32 gss_add_cred(
|
|||
/* New for V2 */
|
||||
GSS_DLLIMP OM_uint32 gss_inquire_cred_by_mech(
|
||||
OM_uint32 *, /* minor_status */
|
||||
gss_cred_id_t, /* cred_handle */
|
||||
gss_OID, /* mech_type */
|
||||
gss_const_cred_id_t, /* cred_handle */
|
||||
const gss_OID, /* mech_type */
|
||||
gss_name_t *, /* name */
|
||||
OM_uint32 *, /* initiator_lifetime */
|
||||
OM_uint32 *, /* acceptor_lifetime */
|
||||
|
@ -608,7 +621,7 @@ GSS_DLLIMP OM_uint32 gss_export_sec_context(
|
|||
/* New for V2 */
|
||||
GSS_DLLIMP OM_uint32 gss_import_sec_context(
|
||||
OM_uint32 *, /* minor_status */
|
||||
gss_buffer_t, /* interprocess_token */
|
||||
const gss_buffer_t, /* interprocess_token */
|
||||
gss_ctx_id_t * /* context_handle */
|
||||
);
|
||||
|
||||
|
@ -627,22 +640,22 @@ GSS_DLLIMP OM_uint32 gss_create_empty_oid_set(
|
|||
/* New for V2 */
|
||||
GSS_DLLIMP OM_uint32 gss_add_oid_set_member(
|
||||
OM_uint32 *, /* minor_status */
|
||||
gss_OID, /* member_oid */
|
||||
const gss_OID, /* member_oid */
|
||||
gss_OID_set * /* oid_set */
|
||||
);
|
||||
|
||||
/* New for V2 */
|
||||
GSS_DLLIMP OM_uint32 gss_test_oid_set_member(
|
||||
OM_uint32 *, /* minor_status */
|
||||
gss_OID, /* member */
|
||||
gss_OID_set, /* set */
|
||||
const gss_OID, /* member */
|
||||
const gss_OID_set, /* set */
|
||||
int * /* present */
|
||||
);
|
||||
|
||||
/* New for V2 */
|
||||
GSS_DLLIMP OM_uint32 gss_str_to_oid(
|
||||
OM_uint32 *, /* minor_status */
|
||||
gss_buffer_t, /* oid_str */
|
||||
const gss_buffer_t, /* oid_str */
|
||||
gss_OID * /* oid */
|
||||
);
|
||||
|
||||
|
@ -656,28 +669,28 @@ GSS_DLLIMP OM_uint32 gss_oid_to_str(
|
|||
/* New for V2 */
|
||||
GSS_DLLIMP OM_uint32 gss_inquire_names_for_mech(
|
||||
OM_uint32 *, /* minor_status */
|
||||
gss_OID, /* mechanism */
|
||||
const gss_OID, /* mechanism */
|
||||
gss_OID_set * /* name_types */
|
||||
);
|
||||
|
||||
/* New for V2 */
|
||||
GSS_DLLIMP OM_uint32 gss_export_name(
|
||||
OM_uint32 *, /* minor_status */
|
||||
const gss_name_t, /* input_name */
|
||||
gss_const_name_t, /* input_name */
|
||||
gss_buffer_t /* exported_name */
|
||||
);
|
||||
|
||||
/* New for V2 */
|
||||
GSS_DLLIMP OM_uint32 gss_duplicate_name(
|
||||
OM_uint32 *, /* minor_status */
|
||||
const gss_name_t, /* input_name */
|
||||
gss_const_name_t, /* input_name */
|
||||
gss_name_t * /* dest_name */
|
||||
);
|
||||
|
||||
/* New for V2 */
|
||||
GSS_DLLIMP OM_uint32 gss_canonicalize_name(
|
||||
OM_uint32 *, /* minor_status */
|
||||
const gss_name_t, /* input_name */
|
||||
gss_const_name_t, /* input_name */
|
||||
const gss_OID, /* mech_type */
|
||||
gss_name_t * /* output_name */
|
||||
);
|
||||
|
|
1575
src/java.security.jgss/windows/native/libsspi_bridge/sspi.cpp
Normal file
1575
src/java.security.jgss/windows/native/libsspi_bridge/sspi.cpp
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue