More work on SAML code
[mech_eap.git] / init_sec_context.c
index a54a3cb..252c468 100644 (file)
@@ -248,13 +248,13 @@ initReady(OM_uint32 *minor, gss_ctx_id_t ctx)
         eap_key_available(ctx->initiatorCtx.eap)) {
         key = eap_get_eapKeyData(ctx->initiatorCtx.eap, &keyLength);
 
-        major = rfc3961EncTypeToChecksumType(minor, ctx->encryptionType,
-                                             &ctx->checksumType);
+        major = gssEapDeriveRfc3961Key(minor, key, keyLength,
+                                       ctx->encryptionType, &ctx->rfc3961Key);
         if (GSS_ERROR(major))
             return major;
 
-        major = gssEapDeriveRfc3961Key(minor, key, keyLength,
-                                       ctx->encryptionType, &ctx->rfc3961Key);
+        major = rfc3961ChecksumTypeForKey(minor, &ctx->rfc3961Key,
+                                           &ctx->checksumType);
         if (GSS_ERROR(major))
             return major;
     } else {
@@ -266,10 +266,14 @@ initReady(OM_uint32 *minor, gss_ctx_id_t ctx)
         ctx->gssFlags &= ~(GSS_C_INTEG_FLAG | GSS_C_CONF_FLAG);
     }
 
-    sequenceInit(&ctx->seqState, ctx->recvSeq,
-                 ((ctx->gssFlags & GSS_C_REPLAY_FLAG) != 0),
-                 ((ctx->gssFlags & GSS_C_SEQUENCE_FLAG) != 0),
-                 TRUE);
+    major = sequenceInit(minor,
+                         &ctx->seqState,
+                         ctx->recvSeq,
+                         ((ctx->gssFlags & GSS_C_REPLAY_FLAG) != 0),
+                         ((ctx->gssFlags & GSS_C_SEQUENCE_FLAG) != 0),
+                         TRUE);
+    if (GSS_ERROR(major))
+        return major;
 
     return GSS_S_COMPLETE;
 }
@@ -499,7 +503,7 @@ eapGssSmInitEstablished(OM_uint32 *minor,
     return GSS_S_BAD_STATUS;
 }
 
-static struct eap_gss_initiator_sm {
+static struct gss_eap_initiator_sm {
     enum gss_eap_token_type inputTokenType;
     enum gss_eap_token_type outputTokenType;
     OM_uint32 (*processToken)(OM_uint32 *,
@@ -540,7 +544,7 @@ gss_init_sec_context(OM_uint32 *minor,
     OM_uint32 major;
     OM_uint32 tmpMajor, tmpMinor;
     gss_ctx_id_t ctx = *context_handle;
-    struct eap_gss_initiator_sm *sm = NULL;
+    struct gss_eap_initiator_sm *sm = NULL;
     gss_buffer_desc innerInputToken, innerOutputToken;
 
     *minor = 0;