Merge branch 'master' of ssh://lhoward@moonshot.suchdamage.org:822/srv/git/moonshot
[mech_eap.git] / store_cred.c
index 3e0654b..b1e5e54 100644 (file)
 
 #include "gssapiP_eap.h"
 
+OM_uint32
+gss_store_cred(OM_uint32 *minor,
+               const gss_cred_id_t input_cred_handle,
+               gss_cred_usage_t input_usage,
+               const gss_OID desired_mech,
+               OM_uint32 overwrite_cred,
+               OM_uint32 default_cred,
+               gss_OID_set *elements_stored,
+               gss_cred_usage_t *cred_usage_stored)
+{
+    if (elements_stored != NULL)
+        *elements_stored = GSS_C_NO_OID_SET;
+    if (cred_usage_stored != NULL)
+        *cred_usage_stored = input_usage;
+
+    if (input_cred_handle == GSS_C_NO_CREDENTIAL)
+        return GSS_S_CALL_INACCESSIBLE_READ | GSS_S_NO_CRED;
+
+#ifdef GSSEAP_ENABLE_REAUTH
+    if (input_cred_handle->krbCred != GSS_C_NO_CREDENTIAL) {
+        return gssStoreCred(minor,
+                            input_cred_handle->krbCred,
+                            input_usage,
+                            gss_mech_krb5,
+                            overwrite_cred,
+                            default_cred,
+                            elements_stored,
+                            cred_usage_stored);
+    }
+#endif
+
+    *minor = 0;
+    return GSS_S_UNAVAILABLE;
+}