pull up r25309 from trunk
authorTom Yu <tlyu@mit.edu>
Tue, 18 Oct 2011 21:07:27 +0000 (21:07 +0000)
committerTom Yu <tlyu@mit.edu>
Tue, 18 Oct 2011 21:07:27 +0000 (21:07 +0000)
 ------------------------------------------------------------------------
 r25309 | hartmans | 2011-10-05 17:30:42 -0400 (Wed, 05 Oct 2011) | 11 lines

 ticket: 6970
 subject: gss_unwrap_iov crashes with stream buffers for 3des, des, rc4
 tags: pullup

 Use correct key to determine enctype for KG2 tokens in
 kg_unseal_stream_iov

 Tested with AES for a new enctype and 3DES for an old enctype.

Signed-off-by: Kevin Wasserman <kevin.wasserman@painless-security.com>
ticket: 6970
version_fixed: 1.9.2
status: resolved

git-svn-id: svn://anonsvn.mit.edu/krb5/branches/krb5-1-9@25382 dc483132-0cff-0310-8789-dd5450dbe970

src/lib/gssapi/krb5/k5unsealiov.c

index 2be7b82aedfb8676e57716c1dbd9f1952c3f4917..8d092d6d63ebd042dbbb83ce84bfd4e3f4908455 100644 (file)
@@ -504,10 +504,14 @@ kg_unseal_stream_iov(OM_uint32 *minor_status,
     case KG2_TOK_WRAP_MSG:
     case KG2_TOK_DEL_CTX: {
         size_t ec, rrc;
-        krb5_enctype enctype = ctx->enc->keyblock.enctype;
+        krb5_enctype enctype;
         unsigned int k5_headerlen = 0;
         unsigned int k5_trailerlen = 0;
 
+        if (ctx->have_acceptor_subkey)
+            enctype = ctx->acceptor_subkey->keyblock.enctype;
+        else
+            enctype = ctx->subkey->keyblock.enctype;
         conf_req_flag = ((ptr[0] & FLAG_WRAP_CONFIDENTIAL) != 0);
         ec = conf_req_flag ? load_16_be(ptr + 2) : 0;
         rrc = load_16_be(ptr + 4);