1. 13 Jun, 2019 4 commits
    • Eric Biggers's avatar
      crypto: doc - improve the skcipher API example code · 03d66cfa
      Eric Biggers authored
      Rewrite the skcipher API example, changing it to encrypt a buffer with
      AES-256-XTS.  This addresses various problems with the previous example:
      
      - It requests a specific driver "cbc-aes-aesni", which is unusual.
        Normally users ask for "cbc(aes)", not a specific driver.
      
      - It encrypts only a single AES block.  For the reader, that doesn't
        clearly distinguish the "skcipher" API from the "cipher" API.
      
      - Showing how to encrypt something with bare CBC is arguably a poor
        choice of example, as it doesn't follow modern crypto trends.  Now,
        usually authenticated encryption is recommended, in which case the
        user would use the AEAD API, not skcipher.  Disk encryption is still a
        legitimate use for skcipher, but for that usually XTS is recommended.
      
      - Many other bugs and poor coding practices, such as not setting
        CRYPTO_TFM_REQ_MAY_SLEEP, unnecessarily allocating a heap buffer for
        the IV, unnecessary NULL checks, using a pointless wrapper struct, and
        forgetting to set an error code in one case.
      Signed-off-by: default avatarEric Biggers <ebiggers@google.com>
      Acked-by: default avatarArd Biesheuvel <ard.biesheuvel@linaro.org>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      03d66cfa
    • Eric Biggers's avatar
      crypto: testmgr - add some more preemption points · e63e1b0d
      Eric Biggers authored
      Call cond_resched() after each fuzz test iteration.  This avoids stall
      warnings if fuzz_iterations is set very high for testing purposes.
      
      While we're at it, also call cond_resched() after finishing testing each
      test vector.
      Signed-off-by: default avatarEric Biggers <ebiggers@google.com>
      Acked-by: default avatarArd Biesheuvel <ard.biesheuvel@linaro.org>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      e63e1b0d
    • Eric Biggers's avatar
      crypto: algapi - require cra_name and cra_driver_name · 177f87d0
      Eric Biggers authored
      Now that all algorithms explicitly set cra_driver_name, make it required
      for algorithm registration and remove the code that generated a default
      cra_driver_name.
      
      Also add an explicit check that cra_name is set too, since that's
      obviously required too, yet it didn't seem to be checked anywhere.
      Signed-off-by: default avatarEric Biggers <ebiggers@google.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      177f87d0
    • Eric Biggers's avatar
      crypto: make all generic algorithms set cra_driver_name · d6ebf528
      Eric Biggers authored
      Most generic crypto algorithms declare a driver name ending in
      "-generic".  The rest don't declare a driver name and instead rely on
      the crypto API automagically appending "-generic" upon registration.
      
      Having multiple conventions is unnecessarily confusing and makes it
      harder to grep for all generic algorithms in the kernel source tree.
      But also, allowing NULL driver names is problematic because sometimes
      people fail to set it, e.g. the case fixed by commit 41798036
      ("crypto: cavium/zip - fix collision with generic cra_driver_name").
      
      Of course, people can also incorrectly name their drivers "-generic".
      But that's much easier to notice / grep for.
      
      Therefore, let's make cra_driver_name mandatory.  In preparation for
      this, this patch makes all generic algorithms set cra_driver_name.
      Signed-off-by: default avatarEric Biggers <ebiggers@google.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      d6ebf528
  2. 06 Jun, 2019 28 commits
  3. 30 May, 2019 8 commits