GSSEAP_KRB_INIT(&krbContext);
code = getAcceptorKey(krbContext, ctx, cred, &server, &acceptorKey);
- if (code == KRB5_KT_NOTFOUND) {
+ if (code != 0) {
*minor = code;
return GSS_S_UNAVAILABLE;
- } else if (code != 0)
- goto cleanup;
+ }
/*
* Generate a random session key to place in the ticket and
ccache = NULL;
major = gss_krb5_import_cred(minor, cred->krbCredCache, NULL, NULL,
- &cred->krbCred);
+ &cred->reauthCred);
cleanup:
if (major == GSS_S_CRED_UNAVAIL)
krb5_cc_destroy(krbContext, cred->krbCredCache);
cred->krbCredCache = NULL;
}
- gssReleaseCred(minor, &cred->krbCred);
+ gssReleaseCred(minor, &cred->reauthCred);
}
if (cred->krbCredCache == NULL) {
}
major = gss_krb5_import_cred(minor, cred->krbCredCache, NULL, NULL,
- &cred->krbCred);
+ &cred->reauthCred);
if (GSS_ERROR(major))
goto cleanup;
#ifdef HAVE_HEIMDAL_VERSION
gss_ctx_id_t glueContext,
#else
- gss_ctx_id_t glueContext GSSEAP_UNUSED,
-#endif
gss_name_t glueName,
+#endif
gss_name_t mechName)
{
OM_uint32 major, tmpMinor;
if (GSS_ERROR(major))
goto cleanup;
- major = defrostAttrContext(minor, ctx->kerberosCtx, glueName, *pMechName);
+ major = defrostAttrContext(minor,
+#ifdef HAVE_HEIMDAL_VERSION
+ ctx->reauthCtx,
+#else
+ glueName,
+#endif
+ *pMechName);
if (GSS_ERROR(major))
goto cleanup;
/* Get the raw subsession key and encryption type */
#ifdef HAVE_HEIMDAL_VERSION
#define KRB_GSS_SUBKEY_COUNT 1 /* encoded session key */
- major = gssInquireSecContextByOid(minor, ctx->kerberosCtx,
+ major = gssInquireSecContextByOid(minor, ctx->reauthCtx,
GSS_KRB5_GET_SUBKEY_X, &keyData);
#else
#define KRB_GSS_SUBKEY_COUNT 2 /* raw session key, enctype OID */
- major = gssInquireSecContextByOid(minor, ctx->kerberosCtx,
+ major = gssInquireSecContextByOid(minor, ctx->reauthCtx,
GSS_C_INQ_SSPI_SESSION_KEY, &keyData);
#endif
if (GSS_ERROR(major))