• Herbert Xu's avatar
    [IPSEC] Fix block size/MTU bugs in ESP · d4875b04
    Herbert Xu authored
    This patch fixes the following bugs in ESP:
    
    * Fix transport mode MTU overestimate.  This means that the inner MTU
      is smaller than it needs be.  Worse yet, given an input MTU which
      is a multiple of 4 it will always produce an estimate which is not
      a multiple of 4.
    
      For example, given a standard ESP/3DES/MD5 transform and an MTU of
      1500, the resulting MTU for transport mode is 1462 when it should
      be 1464.
    
      The reason for this is because IP header lengths are always a multiple
      of 4 for IPv4 and 8 for IPv6.
    
    * Ensure that the block size is at least 4.  This is required by RFC2406
      and corresponds to what the esp_output function does.  At the moment
      this only affects crypto_null as its block size is 1.
    Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    d4875b04
esp4.c 12.5 KB