gss_store_cred implementation
[cyrus-sasl.git] / mech_eap / store_cred.c
index 4ddac48..aec3277 100644 (file)
@@ -42,6 +42,25 @@ gss_store_cred(OM_uint32 *minor,
                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;
+
+    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);
+    }
+
     *minor = 0;
     return GSS_S_UNAVAILABLE;
 }