13 Mar, 2012

1 commit


18 Dec, 2010

1 commit


15 May, 2010

9 commits

  • Add necessary changes to add kernel support for the rc4-hmac Kerberos
    encryption type used by Microsoft and described in rfc4757.

    Signed-off-by: Kevin Coffman
    Signed-off-by: Steve Dickson
    Signed-off-by: Trond Myklebust

    Kevin Coffman
     
  • All encryption types use a confounder at the beginning of the
    wrap token. In all encryption types except arcfour-hmac, the
    confounder is the same as the blocksize. arcfour-hmac has a
    blocksize of one, but uses an eight byte confounder.

    Add an entry to the crypto framework definitions for the
    confounder length and change the wrap/unwrap code to use
    the confounder length rather than assuming it is always
    the blocksize.

    Signed-off-by: Kevin Coffman
    Signed-off-by: Steve Dickson
    Signed-off-by: Trond Myklebust

    Kevin Coffman
     
  • For arcfour-hmac support, the make_checksum function needs a usage
    field to correctly calculate the checksum differently for MIC and
    WRAP tokens.

    Signed-off-by: Kevin Coffman
    Signed-off-by: Steve Dickson
    Signed-off-by: Trond Myklebust

    Kevin Coffman
     
  • Add the remaining pieces to enable support for Kerberos AES
    encryption types.

    Signed-off-by: Kevin Coffman
    Signed-off-by: Steve Dickson
    Signed-off-by: Trond Myklebust

    Kevin Coffman
     
  • This is a step toward support for AES encryption types which are
    required to use the new token formats defined in rfc4121.

    Signed-off-by: Kevin Coffman
    [SteveD: Fixed a typo in gss_verify_mic_v2()]
    Signed-off-by: Steve Dickson
    [Trond: Got rid of the TEST_ROTATE/TEST_EXTRA_COUNT crap]
    Signed-off-by: Trond Myklebust

    Kevin Coffman
     
  • Add the final pieces to support the triple-des encryption type.

    Signed-off-by: Kevin Coffman
    Signed-off-by: Steve Dickson
    Signed-off-by: Trond Myklebust

    Kevin Coffman
     
  • Encryption types besides DES may use a keyed checksum (hmac).
    Modify the make_checksum() function to allow for a key
    and take care of enctype-specific processing such as truncating
    the resulting hash.

    Signed-off-by: Kevin Coffman
    Signed-off-by: Steve Dickson
    Signed-off-by: Trond Myklebust

    Kevin Coffman
     
  • Add enctype framework and change functions to use the generic
    values from it rather than the values hard-coded for des.

    Signed-off-by: Kevin Coffman
    Signed-off-by: Steve Dickson
    Signed-off-by: Trond Myklebust

    Kevin Coffman
     
  • Make the client and server code consistent regarding the extra buffer
    space made available for the auth code when wrapping data.

    Add some comments/documentation about the available buffer space
    in the xdr_buf head and tail when gss_wrap is called.

    Add a compile-time check to make sure we are not exceeding the available
    buffer space.

    Add a central function to shift head data.

    Signed-off-by: Kevin Coffman
    Signed-off-by: Steve Dickson
    Signed-off-by: Trond Myklebust

    Kevin Coffman
     

30 Mar, 2010

1 commit

  • …it slab.h inclusion from percpu.h

    percpu.h is included by sched.h and module.h and thus ends up being
    included when building most .c files. percpu.h includes slab.h which
    in turn includes gfp.h making everything defined by the two files
    universally available and complicating inclusion dependencies.

    percpu.h -> slab.h dependency is about to be removed. Prepare for
    this change by updating users of gfp and slab facilities include those
    headers directly instead of assuming availability. As this conversion
    needs to touch large number of source files, the following script is
    used as the basis of conversion.

    http://userweb.kernel.org/~tj/misc/slabh-sweep.py

    The script does the followings.

    * Scan files for gfp and slab usages and update includes such that
    only the necessary includes are there. ie. if only gfp is used,
    gfp.h, if slab is used, slab.h.

    * When the script inserts a new include, it looks at the include
    blocks and try to put the new include such that its order conforms
    to its surrounding. It's put in the include block which contains
    core kernel includes, in the same order that the rest are ordered -
    alphabetical, Christmas tree, rev-Xmas-tree or at the end if there
    doesn't seem to be any matching order.

    * If the script can't find a place to put a new include (mostly
    because the file doesn't have fitting include block), it prints out
    an error message indicating which .h file needs to be added to the
    file.

    The conversion was done in the following steps.

    1. The initial automatic conversion of all .c files updated slightly
    over 4000 files, deleting around 700 includes and adding ~480 gfp.h
    and ~3000 slab.h inclusions. The script emitted errors for ~400
    files.

    2. Each error was manually checked. Some didn't need the inclusion,
    some needed manual addition while adding it to implementation .h or
    embedding .c file was more appropriate for others. This step added
    inclusions to around 150 files.

    3. The script was run again and the output was compared to the edits
    from #2 to make sure no file was left behind.

    4. Several build tests were done and a couple of problems were fixed.
    e.g. lib/decompress_*.c used malloc/free() wrappers around slab
    APIs requiring slab.h to be added manually.

    5. The script was run on all .h files but without automatically
    editing them as sprinkling gfp.h and slab.h inclusions around .h
    files could easily lead to inclusion dependency hell. Most gfp.h
    inclusion directives were ignored as stuff from gfp.h was usually
    wildly available and often used in preprocessor macros. Each
    slab.h inclusion directive was examined and added manually as
    necessary.

    6. percpu.h was updated not to include slab.h.

    7. Build test were done on the following configurations and failures
    were fixed. CONFIG_GCOV_KERNEL was turned off for all tests (as my
    distributed build env didn't work with gcov compiles) and a few
    more options had to be turned off depending on archs to make things
    build (like ipr on powerpc/64 which failed due to missing writeq).

    * x86 and x86_64 UP and SMP allmodconfig and a custom test config.
    * powerpc and powerpc64 SMP allmodconfig
    * sparc and sparc64 SMP allmodconfig
    * ia64 SMP allmodconfig
    * s390 SMP allmodconfig
    * alpha SMP allmodconfig
    * um on x86_64 SMP allmodconfig

    8. percpu.h modifications were reverted so that it could be applied as
    a separate patch and serve as bisection point.

    Given the fact that I had only a couple of failures from tests on step
    6, I'm fairly confident about the coverage of this conversion patch.
    If there is a breakage, it's likely to be something in one of the arch
    headers which should be easily discoverable easily on most builds of
    the specific arch.

    Signed-off-by: Tejun Heo <tj@kernel.org>
    Guess-its-ok-by: Christoph Lameter <cl@linux-foundation.org>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Lee Schermerhorn <Lee.Schermerhorn@hp.com>

    Tejun Heo
     

24 Jun, 2008

1 commit


24 Apr, 2008

1 commit


02 Nov, 2007

1 commit

  • sg_mark_end() overwrites the page_link information, but all users want
    __sg_mark_end() behaviour where we just set the end bit. That is the most
    natural way to use the sg list, since you'll fill it in and then mark the
    end point.

    So change sg_mark_end() to only set the termination bit. Add a sg_magic
    debug check as well, and clear a chain pointer if it is set.

    Signed-off-by: Jens Axboe

    Jens Axboe
     

31 Oct, 2007

1 commit

  • This fixes scatterlist corruptions added by

    commit 68e3f5dd4db62619fdbe520d36c9ebf62e672256
    [CRYPTO] users: Fix up scatterlist conversion errors

    The issue is that the code calls sg_mark_end() which clobbers the
    sg_page() pointer of the final scatterlist entry.

    The first part fo the fix makes skb_to_sgvec() do __sg_mark_end().

    After considering all skb_to_sgvec() call sites the most correct
    solution is to call __sg_mark_end() in skb_to_sgvec() since that is
    what all of the callers would end up doing anyways.

    I suspect this might have fixed some problems in virtio_net which is
    the sole non-crypto user of skb_to_sgvec().

    Other similar sg_mark_end() cases were converted over to
    __sg_mark_end() as well.

    Arguably sg_mark_end() is a poorly named function because it doesn't
    just "mark", it clears out the page pointer as a side effect, which is
    what led to these bugs in the first place.

    The one remaining plain sg_mark_end() call is in scsi_alloc_sgtable()
    and arguably it could be converted to __sg_mark_end() if only so that
    we can delete this confusing interface from linux/scatterlist.h

    Signed-off-by: David S. Miller

    David S. Miller
     

27 Oct, 2007

1 commit


24 Oct, 2007

1 commit


23 Oct, 2007

1 commit


19 Jul, 2007

1 commit


13 Feb, 2007

1 commit


11 Feb, 2007

1 commit


04 Feb, 2007

1 commit


06 Dec, 2006

3 commits

  • We're doing some pointless translation between krb5 constants and kernel
    crypto string names.

    Also clean up some related spkm3 code as necessary.

    Signed-off-by: J. Bruce Fields
    Signed-off-by: Trond Myklebust

    J. Bruce Fields
     
  • Since process_xdr_buf() is useful outside of the kerberos-specific code, we
    move it to net/sunrpc/xdr.c, export it, and rename it in keeping with xdr_*
    naming convention of xdr.c.

    Signed-off-by: J. Bruce Fields
    Signed-off-by: Trond Myklebust

    Olga Kornievskaia
     
  • Dumping all this data to the logs is wasteful (even when debugging is turned
    off), and creates too much output to be useful when it's turned on.

    Fix a minor style bug or two while we're at it.

    Signed-off-by: J. Bruce Fields
    Signed-off-by: Trond Myklebust

    J. Bruce Fields
     

21 Sep, 2006

2 commits


20 Apr, 2006

1 commit

  • I was sloppy when generating a previous patch; I modified the callers of
    krb5_make_checksum() to allocate memory for the buffer where the result is
    returned, then forgot to modify krb5_make_checksum to stop allocating that
    memory itself. The result is a per-packet memory leak. This fixes the
    problem by removing the now-superfluous kmalloc().

    Signed-off-by: J. Bruce Fields
    Signed-off-by: Trond Myklebust

    J. Bruce Fields
     

30 Oct, 2005

2 commits


19 Oct, 2005

2 commits


02 Sep, 2005

2 commits

  • Since the patch to add a NULL short-circuit to crypto_free_tfm() went in,
    there's no longer any need for callers of that function to check for NULL.
    This patch removes the redundant NULL checks and also a few similar checks
    for NULL before calls to kfree() that I ran into while doing the
    crypto_free_tfm bits.

    I've succesfuly compile tested this patch, and a kernel with the patch
    applied boots and runs just fine.

    When I posted the patch to LKML (and other lists/people on Cc) it drew the
    following comments :

    J. Bruce Fields commented
    "I've no problem with the auth_gss or nfsv4 bits.--b."

    Sridhar Samudrala said
    "sctp change looks fine."

    Herbert Xu signed off on the patch.

    So, I guess this is ready to be dropped into -mm and eventually mainline.

    Signed-off-by: Jesper Juhl
    Signed-off-by: Herbert Xu
    Signed-off-by: David S. Miller

    Jesper Juhl
     
  • This patch goes through the current users of the crypto layer and sets
    CRYPTO_TFM_REQ_MAY_SLEEP at crypto_alloc_tfm() where all crypto operations
    are performed in process context.

    Signed-off-by: Herbert Xu
    Signed-off-by: David S. Miller

    Herbert Xu
     

24 Aug, 2005

1 commit

  • While I was going through the crypto users recently, I noticed this
    bogus kmap in sunrpc. It's totally unnecessary since the crypto
    layer will do its own kmap before touching the data. Besides, the
    kmap is throwing the return value away.

    Signed-off-by: Herbert Xu
    Signed-off-by: David S. Miller

    Herbert Xu
     

17 Apr, 2005

1 commit

  • Initial git repository build. I'm not bothering with the full history,
    even though we have it. We can create a separate "historical" git
    archive of that later if we want to, and in the meantime it's about
    3.2GB when imported into git - space that would just make the early
    git days unnecessarily complicated, when we don't have a lot of good
    infrastructure for it.

    Let it rip!

    Linus Torvalds