• Eric Biggers's avatar
    crypto: blake2s - optimize blake2s initialization · 42ad8cf8
    Eric Biggers authored
    If no key was provided, then don't waste time initializing the block
    buffer, as its initial contents won't be used.
    
    Also, make crypto_blake2s_init() and blake2s() call a single internal
    function __blake2s_init() which treats the key as optional, rather than
    conditionally calling blake2s_init() or blake2s_init_key().  This
    reduces the compiled code size, as previously both blake2s_init() and
    blake2s_init_key() were being inlined into these two callers, except
    when the key size passed to blake2s() was a compile-time constant.
    
    These optimizations aren't that significant for BLAKE2s.  However, the
    equivalent optimizations will be more significant for BLAKE2b, as
    everything is twice as big in BLAKE2b.  And it's good to keep things
    consistent rather than making optimizations for BLAKE2b but not BLAKE2s.
    Signed-off-by: default avatarEric Biggers <ebiggers@google.com>
    Acked-by: default avatarArd Biesheuvel <ardb@kernel.org>
    Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    42ad8cf8
blake2s.h 2.63 KB