Skip to content
  1. May 28, 2019
  2. May 27, 2019
  3. May 26, 2019
  4. May 24, 2019
  5. May 23, 2019
  6. May 22, 2019
  7. May 21, 2019
  8. May 20, 2019
  9. May 17, 2019
    • Daniel Axtens's avatar
      ppc assembly pack: always increment CTR IV as quadword · e9f148c9
      Daniel Axtens authored
      
      
      The kernel self-tests picked up an issue with CTR mode. The issue was
      detected with a test vector with an IV of
      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD: after 3 increments it should wrap
      around to 0.
      
      There are two paths that increment IVs: the bulk (8 at a time) path,
      and the individual path which is used when there are fewer than 8 AES
      blocks to process.
      
      In the bulk path, the IV is incremented with vadduqm: "Vector Add
      Unsigned Quadword Modulo", which does 128-bit addition.
      
      In the individual path, however, the IV is incremented with vadduwm:
      "Vector Add Unsigned Word Modulo", which instead does 4 32-bit
      additions. Thus the IV would instead become
      FFFFFFFFFFFFFFFFFFFFFFFF00000000, throwing off the result.
      
      Use vadduqm.
      
      This was probably a typo originally, what with q and w being
      adjacent.
      
      CLA: trivial
      
      Reviewed-by: default avatarRichard Levitte <levitte@openssl.org>
      Reviewed-by: default avatarPaul Dale <paul.dale@oracle.com>
      (Merged from https://github.com/openssl/openssl/pull/8942)
      e9f148c9