* gssapi_krb5.hin: Add gss_mech_krb5_wrong
authorTom Yu <tlyu@mit.edu>
Sat, 20 May 2006 03:06:08 +0000 (03:06 +0000)
committerTom Yu <tlyu@mit.edu>
Sat, 20 May 2006 03:06:08 +0000 (03:06 +0000)
* accept_sec_context.c (krb5_gss_accept_sec_context):
* init_sec_context.c (krb5_gss_init_sec_context):
* rel_oid.c (krb5_gss_internal_release_oid): Recognize
gss_mech_krb5_wrong.

git-svn-id: svn://anonsvn.mit.edu/krb5/branches/mechglue@18023 dc483132-0cff-0310-8789-dd5450dbe970

src/lib/gssapi/krb5/ChangeLog
src/lib/gssapi/krb5/accept_sec_context.c
src/lib/gssapi/krb5/gssapi_krb5.hin
src/lib/gssapi/krb5/init_sec_context.c
src/lib/gssapi/krb5/rel_oid.c

index 5f6b85818738f58674088d2ed653472f12e0975b..adf51162e56e914d65f3929c3a744dafdd5b7c1f 100644 (file)
@@ -1,3 +1,12 @@
+2006-05-19  Tom Yu  <tlyu@mit.edu>
+
+       * gssapi_krb5.hin: Add gss_mech_krb5_wrong.
+
+       * accept_sec_context.c (krb5_gss_accept_sec_context): 
+       * init_sec_context.c (krb5_gss_init_sec_context):
+       * rel_oid.c (krb5_gss_internal_release_oid): Recognize
+       gss_mech_krb5_wrong.
+
 2006-03-28  Tom Yu  <tlyu@mit.edu>
 
        * krb5_gss_glue.c: Add krb5_mechanism_wrong.
index 219d9da060737867bf699717024a6890027c000b..fe56e8dd72674ab79eae67b03e69c1b47e0695b0 100644 (file)
@@ -341,6 +341,12 @@ krb5_gss_accept_sec_context(minor_status, context_handle,
                                      &ptr, KG_TOK_CTX_AP_REQ,
                                      input_token->length, 1))) {
        mech_used = gss_mech_krb5;
+   } else if ((code == G_WRONG_MECH)
+             &&!(code = g_verify_token_header((gss_OID) gss_mech_krb5_wrong,
+                                            &(ap_req.length), 
+                                            &ptr, KG_TOK_CTX_AP_REQ,
+                                            input_token->length, 1))) {
+       mech_used = gss_mech_krb5_wrong;
    } else if ((code == G_WRONG_MECH) &&
              !(code = g_verify_token_header((gss_OID) gss_mech_krb5_old,
                                             &(ap_req.length), 
index 20002478ece302c27d62b3099d98082af1ea7c08..647d14e3953b28c7287ccb74b74c64515da536d5 100644 (file)
@@ -72,6 +72,7 @@ GSS_DLLIMP extern const gss_OID_desc * const GSS_KRB5_NT_PRINCIPAL_NAME;
 
 GSS_DLLIMP extern const gss_OID_desc * const gss_mech_krb5;
 GSS_DLLIMP extern const gss_OID_desc * const gss_mech_krb5_old;
+GSS_DLLIMP extern const gss_OID_desc * const gss_mech_krb5_wrong;
 GSS_DLLIMP extern const gss_OID_set_desc * const gss_mech_set_krb5;
 GSS_DLLIMP extern const gss_OID_set_desc * const gss_mech_set_krb5_old;
 GSS_DLLIMP extern const gss_OID_set_desc * const gss_mech_set_krb5_both;
index 4f4055932d7f3e4ed58bbe367224da9d77bcbb3d..8d4ddafe8913b8b0891b7ca60821a05bf3e8a88c 100644 (file)
@@ -918,6 +918,9 @@ krb5_gss_init_sec_context(minor_status, claimant_cred_handle,
    } else if (g_OID_equal(mech_type, gss_mech_krb5_old)) {
        if (!cred->prerfc_mech)
           err = 1;
+   } else if (g_OID_equal(mech_type, gss_mech_krb5_wrong)) {
+       if (!cred->rfc_mech)
+          err = 1;
    } else {
        err = 1;
    }
index cee46197e03420ad2a9b49cf0cb79dbf76b7990f..dcb1fe97af1cd1a49d2865b1fc0683391b0cd6b4 100644 (file)
@@ -73,6 +73,7 @@ krb5_gss_internal_release_oid(minor_status, oid)
    
     if ((*oid != gss_mech_krb5) &&
        (*oid != gss_mech_krb5_old) &&
+       (*oid != gss_mech_krb5_wrong) &&
        (*oid != gss_nt_krb5_name) &&
        (*oid != gss_nt_krb5_principal)) {
        /* We don't know about this OID */