16 Feb, 2010

1 commit


25 Dec, 2008

1 commit

  • Remove the private implementation of 32-bit rotation and unaligned
    access with byteswapping.

    As a bonus, fixes sparse warnings:
    crypto/camellia.c:602:2: warning: cast to restricted __be32
    crypto/camellia.c:603:2: warning: cast to restricted __be32
    crypto/camellia.c:604:2: warning: cast to restricted __be32
    crypto/camellia.c:605:2: warning: cast to restricted __be32
    crypto/camellia.c:710:2: warning: cast to restricted __be32
    crypto/camellia.c:711:2: warning: cast to restricted __be32
    crypto/camellia.c:712:2: warning: cast to restricted __be32
    crypto/camellia.c:713:2: warning: cast to restricted __be32
    crypto/camellia.c:714:2: warning: cast to restricted __be32
    crypto/camellia.c:715:2: warning: cast to restricted __be32
    crypto/camellia.c:716:2: warning: cast to restricted __be32
    crypto/camellia.c:717:2: warning: cast to restricted __be32

    [Thanks to Tomoyuki Okazaki for spotting the typo]
    Tested-by: Carlo E. Prelz
    Signed-off-by: Harvey Harrison
    Signed-off-by: Herbert Xu

    Harvey Harrison
     

08 Sep, 2008

1 commit


10 Jul, 2008

1 commit

  • Remove the private implementation of 32-bit rotation and unaligned
    access with byteswapping.

    As a bonus, fixes sparse warnings:
    crypto/camellia.c:602:2: warning: cast to restricted __be32
    crypto/camellia.c:603:2: warning: cast to restricted __be32
    crypto/camellia.c:604:2: warning: cast to restricted __be32
    crypto/camellia.c:605:2: warning: cast to restricted __be32
    crypto/camellia.c:710:2: warning: cast to restricted __be32
    crypto/camellia.c:711:2: warning: cast to restricted __be32
    crypto/camellia.c:712:2: warning: cast to restricted __be32
    crypto/camellia.c:713:2: warning: cast to restricted __be32
    crypto/camellia.c:714:2: warning: cast to restricted __be32
    crypto/camellia.c:715:2: warning: cast to restricted __be32
    crypto/camellia.c:716:2: warning: cast to restricted __be32
    crypto/camellia.c:717:2: warning: cast to restricted __be32

    Signed-off-by: Harvey Harrison
    Signed-off-by: Herbert Xu

    Harvey Harrison
     

11 Jan, 2008

8 commits

  • Analogously to camellia7 patch, move
    "absorb kw2 to other subkeys" and "absorb kw4 to other subkeys"
    code parts into camellia_setup_tail(). This further reduces
    source and object code size at the cost of two brances
    in key setup code.

    Signed-off-by: Denys Vlasenko
    Signed-off-by: Herbert Xu

    Denys Vlasenko
     
  • Move "key XOR is end of F-function" code part into
    camellia_setup_tail(), it is sufficiently similar
    between camellia_setup128 and camellia_setup256.

    Signed-off-by: Denys Vlasenko
    Signed-off-by: Herbert Xu

    Denys Vlasenko
     
  • unifies encrypt/decrypt routines for different key lengths.
    This reduces module size by ~25%, with tiny (less than 1%)
    speed impact.
    Also collapses encrypt/decrypt into more readable
    (visually shorter) form using macros.

    Signed-off-by: Denys Vlasenko
    Signed-off-by: Herbert Xu

    Denys Vlasenko
     
  • Remove unused macro params.
    Use (u8)(expr) instead of (expr) & 0xff,
    helps gcc to realize how to use simpler commands.
    Move CAMELLIA_FLS macro closer to encrypt/decrypt routines.

    Signed-off-by: Denys Vlasenko
    Signed-off-by: Herbert Xu

    Denys Vlasenko
     
  • Move huge unrolled pieces of code (3 screenfuls) at the end of
    128/256 key setup routines into common camellia_setup_tail(),
    convert it to loop there.
    Loop is still unrolled six times, so performance hit is very small,
    code size win is big.

    Signed-off-by: Denys Vlasenko
    Acked-by: Noriaki TAKAMIYA
    Signed-off-by: Herbert Xu

    Denys Vlasenko
     
  • Optimize GETU32 to use 4-byte memcpy (modern gcc will convert
    such memcpy to single move instruction on i386).
    Original GETU32 did four byte fetches, and shifted/XORed those.

    Signed-off-by: Denys Vlasenko
    Acked-by: Noriaki TAKAMIYA
    Signed-off-by: Herbert Xu

    Denys Vlasenko
     
  • Rename some macros to shorter names: CAMELLIA_RR8 -> ROR8,
    making it easier to understand that it is just a right rotation,
    nothing camellia-specific in it.
    CAMELLIA_SUBKEY_L() -> SUBKEY_L() - just shorter.

    Move be32 cpu conversions out of en/decrypt128/256 and into
    camellia_en/decrypt - no reason to have that code duplicated twice.

    Signed-off-by: Denys Vlasenko
    Acked-by: Noriaki TAKAMIYA
    Signed-off-by: Herbert Xu

    Denys Vlasenko
     
  • Move code blocks around so that related pieces are closer together:
    e.g. CAMELLIA_ROUNDSM macro does not need to be separated
    from the rest of the code by huge array of constants.

    Remove unused macros (COPY4WORD, SWAP4WORD, XOR4WORD[2])

    Drop SUBL(), SUBR() macros which only obscure things.
    Same for CAMELLIA_SP1110() macro and KEY_TABLE_TYPE typedef.

    Remove useless comments:
    /* encryption */ -- well it's obvious enough already!
    void camellia_encrypt128(...)

    Combine swap with copying at the beginning/end of encrypt/decrypt.

    Signed-off-by: Denys Vlasenko
    Acked-by: Noriaki TAKAMIYA
    Signed-off-by: Herbert Xu

    Denys Vlasenko
     

07 Feb, 2007

1 commit