- if (oidEqual(oid, GSS_EAP_MECHANISM)) {
- return TRUE;
- } else if (oid->length > gssEapMechPrefix.length &&
- memcmp(oid->elements, gssEapMechPrefix.elements,
- gssEapMechPrefix.length) == 0) {
- return TRUE;
+ return oid == GSS_C_NO_OID ||
+ oidEqual(oid, GSS_EAP_MECHANISM) ||
+ gssEapIsConcreteMechanismOid(oid);
+}
+
+OM_uint32
+gssEapValidateMechs(OM_uint32 *minor,
+ const gss_OID_set mechs)
+{
+ int i;
+
+ *minor = 0;
+
+ if (mechs == GSS_C_NO_OID_SET) {
+ return GSS_S_COMPLETE;
+ }
+
+ for (i = 0; i < mechs->count; i++) {
+ gss_OID oid = &mechs->elements[i];
+
+ if (!gssEapIsMechanismOid(oid))
+ return GSS_S_BAD_MECH;