summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--proxy/src/mechglue/gss_plugin.c14
-rw-r--r--proxy/src/mechglue/gss_plugin.h1
2 files changed, 15 insertions, 0 deletions
diff --git a/proxy/src/mechglue/gss_plugin.c b/proxy/src/mechglue/gss_plugin.c
index 744965e..5713320 100644
--- a/proxy/src/mechglue/gss_plugin.c
+++ b/proxy/src/mechglue/gss_plugin.c
@@ -560,3 +560,17 @@ uint32_t gpp_copy_oid(uint32_t *minor, gss_OID in, gss_OID *out)
*minor = 0;
return GSS_S_COMPLETE;
}
+
+bool gpp_is_krb5_oid(const gss_OID mech)
+{
+ if (gss_oid_equal(&gpoid_krb5, mech)) {
+ return true;
+ } else if (gss_oid_equal(&gpoid_krb5_old, mech)) {
+ return true;
+ } else if (gss_oid_equal(&gpoid_krb5_wrong, mech)) {
+ return true;
+ } else if (gss_oid_equal(&gpoid_iakerb, mech)) {
+ return true;
+ }
+ return false;
+}
diff --git a/proxy/src/mechglue/gss_plugin.h b/proxy/src/mechglue/gss_plugin.h
index de8e7be..26e04c5 100644
--- a/proxy/src/mechglue/gss_plugin.h
+++ b/proxy/src/mechglue/gss_plugin.h
@@ -86,6 +86,7 @@ uint32_t gpp_wrap_sec_ctx_token(uint32_t *minor, gss_OID mech_type,
uint32_t gpp_remote_to_local_ctx(uint32_t *minor, gssx_ctx **remote_ctx,
gss_ctx_id_t *local_ctx);
uint32_t gpp_copy_oid(uint32_t *minor, gss_OID in, gss_OID *out);
+bool gpp_is_krb5_oid(const gss_OID mech);
uint32_t gpp_name_to_local(uint32_t *minor, gssx_name *name,
gss_OID mech_type, gss_name_t *mech_name);
uint32_t gpp_local_to_name(uint32_t *minor,