1. 15 10月, 2010 1 次提交
  2. 12 10月, 2010 1 次提交
  3. 08 10月, 2010 1 次提交
  4. 30 9月, 2010 2 次提交
    • S
      cifs NTLMv2/NTLMSSP ntlmv2 within ntlmssp autentication code · 2b149f11
      Shirish Pargaonkar 提交于
      Attribue Value (AV) pairs or Target Info (TI) pairs are part of
      ntlmv2 authentication.
      Structure ntlmv2_resp had only definition for two av pairs.
      So removed it, and now allocation of av pairs is dynamic.
      For servers like Windows 7/2008, av pairs sent by server in
      challege packet (type 2 in the ntlmssp exchange/negotiation) can
      vary.
      
      Server sends them during ntlmssp negotiation. So when ntlmssp is used
      as an authentication mechanism, type 2 challenge packet from server
      has this information.  Pluck it and use the entire blob for
      authenticaiton purpose.  If user has not specified, extract
      (netbios) domain name from the av pairs which is used to calculate
      ntlmv2 hash.  Servers like Windows 7 are particular about the AV pair
      blob.
      
      Servers like Windows 2003, are not very strict about the contents
      of av pair blob used during ntlmv2 authentication.
      So when security mechanism such as ntlmv2 is used (not ntlmv2 in ntlmssp),
      there is no negotiation and so genereate a minimal blob that gets
      used in ntlmv2 authentication as well as gets sent.
      
      Fields tilen and tilbob are session specific.  AV pair values are defined.
      
      To calculate ntlmv2 response we need ti/av pair blob.
      
      For sec mech like ntlmssp, the blob is plucked from type 2 response from
      the server.  From this blob, netbios name of the domain is retrieved,
      if user has not already provided, to be included in the Target String
      as part of ntlmv2 hash calculations.
      
      For sec mech like ntlmv2, create a minimal, two av pair blob.
      
      The allocated blob is freed in case of error.  In case there is no error,
      this blob is used in calculating ntlmv2 response (in CalcNTLMv2_response)
      and is also copied on the response to the server, and then freed.
      
      The type 3 ntlmssp response is prepared on a buffer,
      5 * sizeof of struct _AUTHENTICATE_MESSAGE, an empirical value large
      enough to hold _AUTHENTICATE_MESSAGE plus a blob with max possible
      10 values as part of ntlmv2 response and lmv2 keys and domain, user,
      workstation  names etc.
      
      Also, kerberos gets selected as a default mechanism if server supports it,
      over the other security mechanisms.
      Signed-off-by: NShirish Pargaonkar <shirishpargaonkar@gmail.com>
      Signed-off-by: NSteve French <sfrench@us.ibm.com>
      2b149f11
    • S
      cifs NTLMv2/NTLMSSP Change variable name mac_key to session key to reflect the key it holds · 5f98ca9a
      Shirish Pargaonkar 提交于
      Change name of variable mac_key to session key.
      The reason mac_key was changed to session key is, this structure does not
      hold message authentication code, it holds the session key (for ntlmv2,
      ntlmv1 etc.).  mac is generated as a signature in cifs_calc* functions.
      Signed-off-by: NShirish Pargaonkar <shirishpargaonkar@gmail.com>
      Signed-off-by: NSteve French <sfrench@us.ibm.com>
      5f98ca9a
  5. 09 9月, 2010 4 次提交
  6. 25 8月, 2010 1 次提交
  7. 24 8月, 2010 1 次提交
  8. 21 8月, 2010 1 次提交
  9. 27 4月, 2010 1 次提交
  10. 21 4月, 2010 1 次提交
    • J
      [CIFS] Neaten cERROR and cFYI macros, reduce text space · b6b38f70
      Joe Perches 提交于
      Neaten cERROR and cFYI macros, reduce text space
      ~2.5K
      
      Convert '__FILE__ ": " fmt' to '"%s: " fmt', __FILE__' to save text space
      Surround macros with do {} while
      Add parentheses to macros
      Make statement expression macro from macro with assign
      Remove now unnecessary parentheses from cFYI and cERROR uses
      
      defconfig with CIFS support old
      $ size fs/cifs/built-in.o
         text	   data	    bss	    dec	    hex	filename
       156012	   1760	    148	 157920	  268e0	fs/cifs/built-in.o
      
      defconfig with CIFS support old
      $ size fs/cifs/built-in.o
         text	   data	    bss	    dec	    hex	filename
       153508	   1760	    148	 155416	  25f18	fs/cifs/built-in.o
      
      allyesconfig old:
      $ size fs/cifs/built-in.o
         text	   data	    bss	    dec	    hex	filename
       309138	   3864	  74824	 387826	  5eaf2	fs/cifs/built-in.o
      
      allyesconfig new
      $ size fs/cifs/built-in.o
         text	   data	    bss	    dec	    hex	filename
       305655	   3864	  74824	 384343	  5dd57	fs/cifs/built-in.o
      Signed-off-by: NJoe Perches <joe@perches.com>
      Signed-off-by: NSteve French <sfrench@us.ibm.com>
      b6b38f70
  11. 30 3月, 2010 1 次提交
    • T
      include cleanup: Update gfp.h and slab.h includes to prepare for breaking... · 5a0e3ad6
      Tejun Heo 提交于
      include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit 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: NTejun Heo <tj@kernel.org>
      Guess-its-ok-by: NChristoph Lameter <cl@linux-foundation.org>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Lee Schermerhorn <Lee.Schermerhorn@hp.com>
      5a0e3ad6
  12. 02 9月, 2009 1 次提交
  13. 29 1月, 2009 1 次提交
    • S
      [CIFS] Rename md5 functions to avoid collision with new rt modules · 6a7f8d36
      Steve French 提交于
      When rt modules were added they (each) included their own md5
      with names which collided with the existing names of cifs's md5 functions.
      
      Renaming cifs's md5 modules so we don't collide with them.
      
      > Stephen Rothwell wrote:
      > When CIFS is built-in (=y) and staging/rt28[67]0 =y, there are multiple
      > definitions of:
      >
      > build-r8250.out:(.text+0x1d8ad0): multiple definition of `MD5Init'
      > build-r8250.out:(.text+0x1dbb30): multiple definition of `MD5Update'
      > build-r8250.out:(.text+0x1db9b0): multiple definition of `MD5Final'
      >
      > all of which need to have more unique identifiers for their global
      > symbols (e.g., rt28_md5_init, cifs_md5_init, foo, blah, bar).
      >
      
      CC: Greg K-H <gregkh@suse.de>
      Signed-off-by: NSteve French <sfrench@us.ibm.com>
      6a7f8d36
  14. 26 12月, 2008 1 次提交
  15. 28 8月, 2008 1 次提交
    • S
      [CIFS] Fix plaintext authentication · bcc55c66
      Steve French 提交于
      The last eight bytes of the password field were not cleared when doing lanman plaintext password authentication. This patch fixes that.
      
      I tested it with Samba by setting password
      encryption to no in the server's smb.conf.  Other servers also can be
      configured to force plaintext authentication.    Note that plaintexti
      authentication requires setting /proc/fs/cifs/SecurityFlags to 0x30030
      on the client (enabling both LANMAN and also plaintext password support).
      Also note that LANMAN support (and thus plaintext password support) requires
      CONFIG_CIFS_WEAK_PW_HASH to be enabled in menuconfig.
      
      CC: Jeff Layton <jlayton@redhat.com>
      CC: Stable Kernel <stable@vger.kernel.org>
      Signed-off-by: NSteve French <sfrench@us.ibm.com>
      bcc55c66
  16. 24 7月, 2008 1 次提交
  17. 06 11月, 2007 1 次提交
  18. 03 11月, 2007 1 次提交
  19. 15 10月, 2007 1 次提交
  20. 18 7月, 2007 1 次提交
  21. 13 7月, 2007 1 次提交
  22. 09 7月, 2007 1 次提交
  23. 25 6月, 2007 1 次提交
  24. 08 12月, 2006 1 次提交
  25. 12 8月, 2006 1 次提交
  26. 08 6月, 2006 1 次提交
    • S
      [CIFS] NTLMv2 support part 5 · 1717ffc5
      Steve French 提交于
      NTLMv2 authentication (stronger authentication than default NTLM) which
      many servers support now works.  There was a problem with the construction
      of the security blob in the older code.  Currently requires
      	/proc/fs/cifs/Experimental to be set to 2
      and
      	/proc/fs/cifs/SecurityFlags to be set to 0x4004 (to require using
      	NTLMv2 instead of default of NTLM)
      
      Next we will check signing to make sure optional NTLMv2 packet signing also
      works.
      Signed-off-by: NSteve French <sfrench@us.ibm.com>
      1717ffc5
  27. 06 6月, 2006 2 次提交
  28. 05 6月, 2006 1 次提交
  29. 03 6月, 2006 1 次提交
  30. 02 6月, 2006 1 次提交
  31. 01 6月, 2006 1 次提交
  32. 01 4月, 2006 1 次提交
    • S
      [CIFS] Incorrect signature sent on SMB Read · e9917a00
      Steve French 提交于
      Fixes Samba bug 3621 and kernel.org bug 6147
      
      For servers which require SMB/CIFS packet signing, we were sending the
      wrong signature (all zeros) on SMB Read request.  The new cifs routine
      to do signatures across an iovec was not complete - and SMB Read, unlike
      the new SMBWrite2, did not fall back to the older routine (ie use
      SendReceive vs. the more efficient SendReceive2 ie used the older
      cifs_sign_smb vs. the disabled  cifs_sign_smb2) for calculating signatures.
      
      This finishes up cifs_sign_smb2/cifs_calc_signature2 so that the callers
      of SendReceive2 can get SMB/CIFS packet signatures.
      
      Now that cifs_sign_smb2 is supported, we could start using it in
      the write path but this smaller fix does not include the change
      to use SMBWrite2 when signatures are required (which when enabled
      will make more Writes more efficient and alloc less memory).
      Currently Write2 is only used when signatures are not
      required at the moment but after more testing we will enable
      that as well).
      
      Thanks to James Slepicka and Sam Flory for initial investigation.
      Signed-off-by: NSteve French <sfrench@us.ibm.com>
      e9917a00
  33. 14 2月, 2006 1 次提交
    • S
      [CIFS] SessionSetup cleanup part 2 · 5815449d
      Steve French 提交于
      The cifs session setup code has three cases, and a fourth for backlevel
      LANMAN2 style session setup needed to be added.  This new session setup
      implmentation will eventually replace the other three and should be
      easier to read while fixing a few minor problems (not setting
      the LARGE READ/WRITEX flags when NTLMSSP was negotiated for example) and
      adding support for NTLMv2 (which will be added with the next patch. In the
      meantime, this code is marked in an CONFIG_CIFS_EXPERIMENTAL block and will
      not be turned on by default until it is tested against more server types.
      Signed-off-by: NSteve French <sfrench@us.ibm.com>
      5815449d
  34. 10 2月, 2006 1 次提交
  35. 03 12月, 2005 1 次提交