{ 12, "\x06\x0A\x2B\x06\x01\x04\x01\xA9\x4A\x15\x01\x12" }
};
-const gss_OID_desc *const GSS_EAP_MECHANISM =
- &gssEapConcreteMechs[0];
-const gss_OID_desc *const GSS_EAP_AES128_CTS_HMAC_SHA1_96_MECHANISM =
- &gssEapConcreteMechs[1];
-const gss_OID_desc *const GSS_EAP_AES256_CTS_HMAC_SHA1_96_MECHANISM =
- &gssEapConcreteMechs[2];
+gss_OID GSS_EAP_MECHANISM = &gssEapConcreteMechs[0];
+gss_OID GSS_EAP_AES128_CTS_HMAC_SHA1_96_MECHANISM = &gssEapConcreteMechs[1];
+gss_OID GSS_EAP_AES256_CTS_HMAC_SHA1_96_MECHANISM = &gssEapConcreteMechs[2];
int
gssEapIsMechanismOid(const gss_OID oid)
{
- if (oidEqual(oid, GSS_EAP_MECHANISM)) {
+ if (oid == GSS_C_NO_OID) {
+ return TRUE;
+ } else if (oidEqual(oid, GSS_EAP_MECHANISM)) {
return TRUE;
} else if (oid->length > gssEapMechPrefix.length &&
memcmp(oid->elements, gssEapMechPrefix.elements,
gssEapIndicateMechs(OM_uint32 *minor,
gss_OID_set *mechs)
{
- krb5_context context;
+ krb5_context krbContext;
OM_uint32 major, tmpMinor;
krb5_enctype *etypes;
int i;
- *minor = krb5_init_context(&context);
- if (*minor != 0) {
- return GSS_S_FAILURE;
- }
+ GSSEAP_KRB_INIT(&krbContext);
- *minor = krb5_get_permitted_enctypes(context, &etypes);
+ *minor = krb5_get_permitted_enctypes(krbContext, &etypes);
if (*minor != 0) {
- krb5_free_context(context);
return GSS_S_FAILURE;
}
major = gss_create_empty_oid_set(minor, mechs);
if (GSS_ERROR(major)) {
- krb5_free_context(context);
GSSEAP_FREE(etypes); /* XXX */
return major;
}
}
GSSEAP_FREE(etypes); /* XXX */
- krb5_free_context(context);
return major;
}