Skip to content
  1. Sep 11, 2020
  2. Sep 10, 2020
  3. Aug 06, 2020
  4. Jul 15, 2020
  5. Jun 25, 2020
  6. Jun 09, 2020
  7. Apr 29, 2020
  8. Apr 21, 2020
  9. Apr 14, 2020
  10. Apr 06, 2020
  11. Feb 28, 2020
  12. Feb 14, 2020
  13. Feb 13, 2020
  14. Jan 30, 2020
  15. Jan 23, 2020
  16. Jan 21, 2020
    • Pablo de Lara's avatar
      Document and use new compilation flag NO_COMPAT_IMB_API_053 · 53a8371c
      Pablo de Lara authored
      There are some public enums that are conflicting
      with other enums defined in other libraries, due to
      too generic naming.
      In order to solve this issue, existing enums will be renamed.
      
      In order to maintain backwards compatilibity for the next few
      releases, the previous enums will be maintained,
      so existing applications will not be broken.
      
      A new compilation flag, NO_COMPAT_IMB_API_053, is added.
      The previous enums can be removed if this compilation flag
      is set (which is disabled by default), when building and linking
      applications.
      
      For applications which use various libraries, this flag
      should be set, so no redefinition of enums will take place, by
      passing -DNO_COMPAT_IMB_API_053 to its CFLAGS (or EXTRA_CFLAGS).
      53a8371c
  17. Jan 20, 2020
  18. Jan 10, 2020
  19. Dec 11, 2019
  20. Nov 25, 2019
    • Marcel D. Cornu's avatar
      Added markdown README · 63152a27
      Marcel D. Cornu authored
      - Added README.md
      - Updated existing README with output generated by pandoc
      - Added README target to Makefile to create/update README using pandoc
      63152a27
  21. Oct 24, 2019
  22. Oct 21, 2019
  23. Oct 17, 2019
  24. Oct 11, 2019
  25. Aug 13, 2019
  26. Aug 09, 2019
  27. Jul 30, 2019
    • Pablo de Lara's avatar
      Support KASUMI F8/F9 · 1e5303d2
      Pablo de Lara authored
      Added support for KASUMI F8 and KASUMI F9 algorithms.
      
      Note that the input data length passed in the new functions
      is in bits and bytes, depending on the functions used.
      
      Change-Id: I8a532ecf23842e01701aef635521873652895f47
      1e5303d2
  28. Jul 17, 2019
    • Pablo de Lara's avatar
      doc: update for AES-CBC VAES · cba1b655
      Pablo de Lara authored
      Updated README and Release Notes to reflect
      the changes done in AES-CBC, adding the implementation
      for AVX512/VAES.
      
      Change-Id: I719789706314c3b9a05b53b5e33277ca06064022
      cba1b655
  29. Jul 12, 2019
    • Pablo de Lara's avatar
      Add cross validation application · 6e656d8f
      Pablo de Lara authored
      This new application (ipsec_xvalid_test) performs tests on
      various combinations of cipher and hash algorithms,
      on different buffer sizes and using different architectures.
      
      The basic test performed is the following:
      - The message gets encrypted and a digest is generated from the ciphertext,
        using one architecture
      - The output message (ciphertext) gets decrypted and another digest
        is generated from the ciphertext, using another architecture (can be the same
        as the first step)
      - The decrypted message is compared against the original plaintext
      - Both generated digests are compared
      - The test fails if any of these comparison fails
      
      By default, the test loops through:
      - All cipher, hash and AEAD algorithms supported
      - Buffer sizes between 16 and 2048 bytes, in steps of 16 bytes
      - All architectures supported (SSE, AESNI_EMU, AVX, AVX2, AVX512)
      
      Any of the combinations above can be set, performing a single test.
      A sample command line to do this is the following:
      
      ./ipsec_xvalid_test --job-size 512 --enc-arch AVX512 --dec-arch AVX --aead-algo aes-gcm-128
      
      This command performs a test using AES-GCM, on 512B buffers,
      encrypting with AVX512 and decrypting with AVX.
      
      The application can be also launched with no parameters, going through
      all cipher+hash combinations and architectures.
      
      Change-Id: I7f5c8e9b66a2312570862ce204fb1ed191f56182
      6e656d8f
  30. Jul 11, 2019
    • Pablo de Lara's avatar
      Add experimental FreeBSD support · 35347bdc
      Pablo de Lara authored
      OS support is extended with FreeBSD, alongside Linux and Windows.
      No major code changes are required for FreeBSD,
      since it uses same API/ABI as Linux.
      
      Change-Id: I672316fbeed4f3eee997ffbe52974227ef5252d3
      35347bdc
  31. Jul 10, 2019
  32. Jul 08, 2019
    • Tomasz Kantecki's avatar
      GCM VAES/VPCLMULQDQ performance improvements for large buffers (issue #35) · cc36dc18
      Tomasz Kantecki authored
      - GCM_BIG_DATA compile flag added
        - disabled by default, number of ghash keys is 48 (key structure 1,152 bytes)
        - when ebaled, number of ghash keys is 128 (key sturcture 2,432 bytes)
      - precomputing 128 or 48 GHASH keys (the structure is much bigger now)
        - When GCM_BIG_DATA is on and data >= 2,048 bytes reduction is done every 128 blocks
        - for data >= 768 bytes reduction is done every 48 blocks
        - for other cases reduction is done every 8 blocks
      - added new macro handling 16 blocks of AES and GHASH in parallel
        - pipeline depth is 32 blocks
        - very large and large buffers leverage the macro
      - initial N x 16 blocks macro implemented
        - pipelines cipher with GHASH
        - first runs cipher only as defined by depth of the pipeline
        - then runs stitched cipher and GHASH for the remaining number of blocks
      - parallel cipher and ghash N x 16 blocks implemented
        - cipher and ghash always stitched
        - reduction done as defined by maximum number of blocks
        - depth of the pipeline maintained as in initial N x 16 macro
          - cipher is ahead of ghash by 32 blocks
      - stack frame created to keep up to 128 blocks of cipher text
        - stack frame loads/stores are aligned
      - gcm key data structure definition made more generic
      - VX512STR and VX512LDR macros changed from vmovdqu64 to vmovdqu8
        in order to work correctly with masked operations
      
      Change-Id: Idd83b911c9257bbd221c66ddd9297a4f2ae120c2
      cc36dc18
  33. Jun 28, 2019
  34. Jun 21, 2019
    • Pablo de Lara's avatar
      Support ZUC-EEA3 and ZUC-EIA3 · 00351ff2
      Pablo de Lara authored
      Added support for ZUC-EEA3 and ZUC-EIA3
      algorithms, in SSE and AVX.
      
      Note that the input data length passed in the new functions
      is in bits and not in bytes, as it is generally done
      in the rest of the library.
      
      Change-Id: Id0137ccad79734ceaa05da1ad6d710bce7dcd917
      00351ff2
  35. Jun 14, 2019
  36. Jun 11, 2019
    • Pablo de Lara's avatar
      Implement AES-ECB · 28910bd3
      Pablo de Lara authored
      Add SSE and AVX implementations of AES-ECB.
      
      Change-Id: I47105414d73035c7090c70abd860831ffac015c0
      28910bd3
Loading