gss_name_t name2,
int *name_equal)
{
- GSSEAP_NOT_IMPLEMENTED;
+ OM_uint32 major;
+ krb5_context krbContext;
+
+ GSSEAP_KRB_INIT(&krbContext);
+
+ if (name1 == GSS_C_NO_NAME || name2 == GSS_C_NO_NAME) {
+ *minor = EINVAL;
+ return GSS_S_CALL_INACCESSIBLE_READ | GSS_S_BAD_NAME;
+ }
+
+ *name_equal = krb5_principal_compare(krbContext,
+ name1->krbPrincipal,
+ name2->krbPrincipal);
+
+ return major;
}