sunrpc: trim off EC bytes in GSSAPI v2 unwrap
authorJeff Layton <jlayton@redhat.com>
Thu, 10 Oct 2013 10:55:35 +0000 (06:55 -0400)
committerJ. Bruce Fields <bfields@redhat.com>
Sat, 26 Oct 2013 19:36:55 +0000 (15:36 -0400)
commitcf4c024b908353fcc48309374d39e3399d67dfd1
tree856a7045ecc3a223701bb5660275375fbc5bef28
parent5d6baef9ab52d0d02b3106d8ccd1b05ec628e027
sunrpc: trim off EC bytes in GSSAPI v2 unwrap

As Bruce points out in RFC 4121, section 4.2.3:

   "In Wrap tokens that provide for confidentiality, the first 16 octets
    of the Wrap token (the "header", as defined in section 4.2.6), SHALL
    be appended to the plaintext data before encryption.  Filler octets
    MAY be inserted between the plaintext data and the "header.""

...and...

   "In Wrap tokens with confidentiality, the EC field SHALL be used to
    encode the number of octets in the filler..."

It's possible for the client to stuff different data in that area on a
retransmission, which could make the checksum come out wrong in the DRC
code.

After decrypting the blob, we should trim off any extra count bytes in
addition to the checksum blob.

Reported-by: "J. Bruce Fields" <bfields@fieldses.org>
Signed-off-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
net/sunrpc/auth_gss/gss_krb5_wrap.c