diff options
Diffstat (limited to 'lib/gssapi/spnego/external.c')
| -rw-r--r-- | lib/gssapi/spnego/external.c | 82 | 
1 files changed, 68 insertions, 14 deletions
| diff --git a/lib/gssapi/spnego/external.c b/lib/gssapi/spnego/external.c index fbc231f3aebb..ca06d46e8211 100644 --- a/lib/gssapi/spnego/external.c +++ b/lib/gssapi/spnego/external.c @@ -30,22 +30,55 @@   * SUCH DAMAGE.   */ -#include "spnego/spnego_locl.h" +#include "spnego_locl.h"  #include <gssapi_mech.h> -RCSID("$Id: external.c 18336 2006-10-07 22:27:13Z lha $"); -  /*   * RFC2478, SPNEGO:   *  The security mechanism of the initial   *  negotiation token is identified by the Object Identifier   *  iso.org.dod.internet.security.mechanism.snego (1.3.6.1.5.5.2).   */ +static gss_mo_desc spnego_mo[] = { +    { +	GSS_C_MA_SASL_MECH_NAME, +	GSS_MO_MA, +	"SASL mech name", +	rk_UNCONST("SPNEGO"), +	_gss_mo_get_ctx_as_string, +	NULL +    }, +    { +	GSS_C_MA_MECH_NAME, +	GSS_MO_MA, +	"Mechanism name", +	rk_UNCONST("SPNEGO"), +	_gss_mo_get_ctx_as_string, +	NULL +    }, +    { +	GSS_C_MA_MECH_DESCRIPTION, +	GSS_MO_MA, +	"Mechanism description", +	rk_UNCONST("Heimdal SPNEGO Mechanism"), +	_gss_mo_get_ctx_as_string, +	NULL +    }, +    { +	GSS_C_MA_MECH_NEGO, +	GSS_MO_MA +    }, +    { +	GSS_C_MA_MECH_PSEUDO, +	GSS_MO_MA +    } +};  static gssapi_mech_interface_desc spnego_mech = {      GMI_VERSION,      "spnego", -    {6, (void *)"\x2b\x06\x01\x05\x05\x02"}, +    {6, rk_UNCONST("\x2b\x06\x01\x05\x05\x02") }, +    0,      _gss_spnego_acquire_cred,      _gss_spnego_release_cred,      _gss_spnego_init_sec_context, @@ -57,8 +90,8 @@ static gssapi_mech_interface_desc spnego_mech = {      _gss_spnego_verify_mic,      _gss_spnego_wrap,      _gss_spnego_unwrap, -    _gss_spnego_display_status, -    NULL, +    NULL, /* gm_display_status */ +    NULL, /* gm_indicate_mechs */      _gss_spnego_compare_name,      _gss_spnego_display_name,      _gss_spnego_import_name, @@ -67,14 +100,40 @@ static gssapi_mech_interface_desc spnego_mech = {      _gss_spnego_inquire_cred,      _gss_spnego_inquire_context,      _gss_spnego_wrap_size_limit, -    _gss_spnego_add_cred, +    gss_add_cred,      _gss_spnego_inquire_cred_by_mech,      _gss_spnego_export_sec_context,      _gss_spnego_import_sec_context, -    _gss_spnego_inquire_names_for_mech, +    NULL /* _gss_spnego_inquire_names_for_mech */,      _gss_spnego_inquire_mechs_for_name,      _gss_spnego_canonicalize_name, -    _gss_spnego_duplicate_name +    _gss_spnego_duplicate_name, +    _gss_spnego_inquire_sec_context_by_oid, +    _gss_spnego_inquire_cred_by_oid, +    _gss_spnego_set_sec_context_option, +    _gss_spnego_set_cred_option, +    _gss_spnego_pseudo_random, +    _gss_spnego_wrap_iov, +    _gss_spnego_unwrap_iov, +    _gss_spnego_wrap_iov_length, +    NULL, +    _gss_spnego_export_cred, +    _gss_spnego_import_cred, +    NULL, +    NULL, +    NULL, +    NULL, +    NULL, +    NULL, +    NULL, +    spnego_mo, +    sizeof(spnego_mo) / sizeof(spnego_mo[0]), +    NULL, +    NULL, +    NULL, +    NULL, +    NULL, +    NULL,  };  gssapi_mech_interface @@ -82,8 +141,3 @@ __gss_spnego_initialize(void)  {  	return &spnego_mech;  } - -static gss_OID_desc _gss_spnego_mechanism_desc =  -    {6, (void *)"\x2b\x06\x01\x05\x05\x02"}; - -gss_OID GSS_SPNEGO_MECHANISM = &_gss_spnego_mechanism_desc; | 
