X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=inquire_mech_for_saslname.c;h=6de0399f7247cc92d340bb3fccb550c00d2cd784;hb=163856b1a70d7773c46d4ea5495b85c4dce0f089;hp=9b7c5d96391c6f9fb8994d74e9fb0d7f57b2d5c8;hpb=a15319b0cfd582f3abe0c9ec21b8595dc9b1ae11;p=mech_eap.orig diff --git a/inquire_mech_for_saslname.c b/inquire_mech_for_saslname.c index 9b7c5d9..6de0399 100644 --- a/inquire_mech_for_saslname.c +++ b/inquire_mech_for_saslname.c @@ -30,6 +30,10 @@ * SUCH DAMAGE. */ +/* + * Map mechanism OID to a SASL mechanism name. + */ + #include "gssapiP_eap.h" OM_uint32 @@ -42,18 +46,20 @@ gss_inquire_saslname_for_mech(OM_uint32 *minor, OM_uint32 major; gss_buffer_t name; krb5_enctype etype = ENCTYPE_NULL; - char krbBuf[128] = "eap-"; /* Dynamically construct mechanism name from Kerberos string enctype */ major = gssEapOidToEnctype(minor, mech, &etype); if (GSS_ERROR(major)) return major; - if (mech_name != GSS_C_NO_BUFFER && - krb5_enctype_to_name(etype, 0, &krbBuf[4], sizeof(krbBuf) - 4) == 0) { - major = makeStringBuffer(minor, krbBuf, mech_name); - if (GSS_ERROR(major)) - return major; + if (mech_name != GSS_C_NO_BUFFER) { + krb5_context krbContext; + + GSSEAP_KRB_INIT(&krbContext); + + *minor = krbEnctypeToString(krbContext, etype, "eap-", mech_name); + if (*minor != 0) + return GSS_S_FAILURE; } if (mech_description != GSS_C_NO_BUFFER) {