Lines Matching full:implementation
45 * For a block cipher implementation, up to three separate sets of
311 * `aes_big` is a "classical" AES implementation, using tables. It
315 * `aes_small` is an AES implementation optimized for code size. It
319 * `aes_ct` is a constant-time implementation of AES; its code is about
322 * implementation should thus be considered to be the "default" AES in
324 * non-constant-time implementation is safe, or an architecture-specific
325 * constant-time implementation can be used (e.g. using dedicated
328 * `aes_ct64` is another constant-time implementation of AES. It is
342 * `des_tab` is a classic, table-based implementation of DES/3DES. It
345 * `des_ct` is an constant-time implementation of DES/3DES. It is
358 * - `br_poly1305_run` describes an implementation of Poly1305,
360 * (the ChaCha20 implementation is provided as a function pointer).
362 * `chacha20_ct` is a straightforward implementation of ChaCha20 in
368 * `poly1305_ctmul` is an implementation of the ChaCha20+Poly1305 AEAD
382 * big integer implementation. It is meant mostly for testing purposes,
417 * the implementation.
473 * the implementation.
530 * the implementation.
597 * the implementation.
693 * Traditional, table-based AES implementation. It is fast, but uses
697 * apply, this implementation may leak the secret key.
704 * \brief Context for AES subkeys (`aes_big` implementation, CBC encryption).
719 * \brief Context for AES subkeys (`aes_big` implementation, CBC decryption).
734 * \brief Context for AES subkeys (`aes_big` implementation, CTR encryption
750 * \brief Context for AES subkeys (`aes_big` implementation, CTR encryption
766 * \brief Class instance for AES CBC encryption (`aes_big` implementation).
771 * \brief Class instance for AES CBC decryption (`aes_big` implementation).
777 * (`aes_big` implementation).
783 * (`aes_big` implementation).
789 * (`aes_big` implementation).
800 * (`aes_big` implementation).
811 * and decryption (`aes_big` implementation).
822 * (`aes_big` implementation).
832 * \brief CBC encryption with AES (`aes_big` implementation).
843 * \brief CBC decryption with AES (`aes_big` implementation).
854 * \brief CTR encryption and decryption with AES (`aes_big` implementation).
867 * \brief CTR encryption + CBC-MAC with AES (`aes_big` implementation).
879 * \brief CTR decryption + CBC-MAC with AES (`aes_big` implementation).
891 * \brief CTR encryption/decryption with AES (`aes_big` implementation).
902 * \brief CBC-MAC with AES (`aes_big` implementation).
913 * AES implementation optimized for size. It is slower than the
914 * traditional table-based AES implementation, but requires much less
924 * \brief Context for AES subkeys (`aes_small` implementation, CBC encryption).
939 * \brief Context for AES subkeys (`aes_small` implementation, CBC decryption).
954 * \brief Context for AES subkeys (`aes_small` implementation, CTR encryption
970 * \brief Context for AES subkeys (`aes_small` implementation, CTR encryption
986 * \brief Class instance for AES CBC encryption (`aes_small` implementation).
991 * \brief Class instance for AES CBC decryption (`aes_small` implementation).
997 * (`aes_small` implementation).
1003 * (`aes_small` implementation).
1009 * (`aes_small` implementation).
1020 * (`aes_small` implementation).
1031 * and decryption (`aes_small` implementation).
1042 * (`aes_small` implementation).
1052 * \brief CBC encryption with AES (`aes_small` implementation).
1063 * \brief CBC decryption with AES (`aes_small` implementation).
1074 * \brief CTR encryption and decryption with AES (`aes_small` implementation).
1087 * \brief CTR encryption + CBC-MAC with AES (`aes_small` implementation).
1099 * \brief CTR decryption + CBC-MAC with AES (`aes_small` implementation).
1111 * \brief CTR encryption/decryption with AES (`aes_small` implementation).
1122 * \brief CBC-MAC with AES (`aes_small` implementation).
1133 * Constant-time AES implementation. Its size is similar to that of
1143 * \brief Context for AES subkeys (`aes_ct` implementation, CBC encryption).
1158 * \brief Context for AES subkeys (`aes_ct` implementation, CBC decryption).
1173 * \brief Context for AES subkeys (`aes_ct` implementation, CTR encryption
1189 * \brief Context for AES subkeys (`aes_ct` implementation, CTR encryption
1205 * \brief Class instance for AES CBC encryption (`aes_ct` implementation).
1210 * \brief Class instance for AES CBC decryption (`aes_ct` implementation).
1216 * (`aes_ct` implementation).
1222 * (`aes_ct` implementation).
1228 * (`aes_ct` implementation).
1239 * (`aes_ct` implementation).
1250 * and decryption (`aes_ct` implementation).
1261 * (`aes_ct` implementation).
1271 * \brief CBC encryption with AES (`aes_ct` implementation).
1282 * \brief CBC decryption with AES (`aes_ct` implementation).
1293 * \brief CTR encryption and decryption with AES (`aes_ct` implementation).
1306 * \brief CTR encryption + CBC-MAC with AES (`aes_ct` implementation).
1318 * \brief CTR decryption + CBC-MAC with AES (`aes_ct` implementation).
1330 * \brief CTR encryption/decryption with AES (`aes_ct` implementation).
1341 * \brief CBC-MAC with AES (`aes_ct` implementation).
1352 * 64-bit constant-time AES implementation. It is similar to 'aes_ct'
1364 * \brief Context for AES subkeys (`aes_ct64` implementation, CBC encryption).
1379 * \brief Context for AES subkeys (`aes_ct64` implementation, CBC decryption).
1394 * \brief Context for AES subkeys (`aes_ct64` implementation, CTR encryption
1410 * \brief Context for AES subkeys (`aes_ct64` implementation, CTR encryption
1426 * \brief Class instance for AES CBC encryption (`aes_ct64` implementation).
1431 * \brief Class instance for AES CBC decryption (`aes_ct64` implementation).
1437 * (`aes_ct64` implementation).
1443 * (`aes_ct64` implementation).
1449 * (`aes_ct64` implementation).
1460 * (`aes_ct64` implementation).
1471 * and decryption (`aes_ct64` implementation).
1482 * (`aes_ct64` implementation).
1492 * \brief CBC encryption with AES (`aes_ct64` implementation).
1503 * \brief CBC decryption with AES (`aes_ct64` implementation).
1514 * \brief CTR encryption and decryption with AES (`aes_ct64` implementation).
1527 * \brief CTR encryption + CBC-MAC with AES (`aes_ct64` implementation).
1539 * \brief CTR decryption + CBC-MAC with AES (`aes_ct64` implementation).
1551 * \brief CTR encryption/decryption with AES (`aes_ct64` implementation).
1562 * \brief CBC-MAC with AES (`aes_ct64` implementation).
1573 * AES implementation using AES-NI opcodes (x86 platform).
1580 * \brief Context for AES subkeys (`aes_x86ni` implementation, CBC encryption).
1597 * \brief Context for AES subkeys (`aes_x86ni` implementation, CBC decryption).
1614 * \brief Context for AES subkeys (`aes_x86ni` implementation, CTR encryption
1632 * \brief Context for AES subkeys (`aes_x86ni` implementation, CTR encryption
1650 * \brief Class instance for AES CBC encryption (`aes_x86ni` implementation).
1652 * Since this implementation might be omitted from the library, or the
1659 * \brief Class instance for AES CBC decryption (`aes_x86ni` implementation).
1661 * Since this implementation might be omitted from the library, or the
1669 * (`aes_x86ni` implementation).
1671 * Since this implementation might be omitted from the library, or the
1679 * (`aes_x86ni` implementation).
1681 * Since this implementation might be omitted from the library, or the
1689 * (`aes_x86ni` implementation).
1700 * (`aes_x86ni` implementation).
1711 * and decryption (`aes_x86ni` implementation).
1722 * (`aes_x86ni` implementation).
1732 * \brief CBC encryption with AES (`aes_x86ni` implementation).
1743 * \brief CBC decryption with AES (`aes_x86ni` implementation).
1754 * \brief CTR encryption and decryption with AES (`aes_x86ni` implementation).
1767 * \brief CTR encryption + CBC-MAC with AES (`aes_x86ni` implementation).
1779 * \brief CTR decryption + CBC-MAC with AES (`aes_x86ni` implementation).
1791 * \brief CTR encryption/decryption with AES (`aes_x86ni` implementation).
1802 * \brief CBC-MAC with AES (`aes_x86ni` implementation).
1813 * \brief Obtain the `aes_x86ni` AES-CBC (encryption) implementation, if
1817 * that implementation was compiled in the library _and_ the x86 AES
1821 * \return the `aes_x86ni` AES-CBC (encryption) implementation, or `NULL`.
1826 * \brief Obtain the `aes_x86ni` AES-CBC (decryption) implementation, if
1830 * that implementation was compiled in the library _and_ the x86 AES
1834 * \return the `aes_x86ni` AES-CBC (decryption) implementation, or `NULL`.
1839 * \brief Obtain the `aes_x86ni` AES-CTR implementation, if available.
1842 * that implementation was compiled in the library _and_ the x86 AES
1846 * \return the `aes_x86ni` AES-CTR implementation, or `NULL`.
1851 * \brief Obtain the `aes_x86ni` AES-CTR + CBC-MAC implementation, if
1855 * that implementation was compiled in the library _and_ the x86 AES
1859 * \return the `aes_x86ni` AES-CTR implementation, or `NULL`.
1864 * AES implementation using POWER8 opcodes.
1871 * \brief Context for AES subkeys (`aes_pwr8` implementation, CBC encryption).
1888 * \brief Context for AES subkeys (`aes_pwr8` implementation, CBC decryption).
1905 * \brief Context for AES subkeys (`aes_pwr8` implementation, CTR encryption
1923 * \brief Context for AES subkeys (`aes_pwr8` implementation, CTR encryption
1941 * \brief Class instance for AES CBC encryption (`aes_pwr8` implementation).
1943 * Since this implementation might be omitted from the library, or the
1950 * \brief Class instance for AES CBC decryption (`aes_pwr8` implementation).
1952 * Since this implementation might be omitted from the library, or the
1960 * (`aes_pwr8` implementation).
1962 * Since this implementation might be omitted from the library, or the
1970 * (`aes_pwr8` implementation).
1972 * Since this implementation might be omitted from the library, or the
1980 * (`aes_pwr8` implementation).
1991 * (`aes_pwr8` implementation).
2002 * and decryption (`aes_pwr8` implementation).
2013 * (`aes_pwr8` implementation).
2023 * \brief CBC encryption with AES (`aes_pwr8` implementation).
2034 * \brief CBC decryption with AES (`aes_pwr8` implementation).
2045 * \brief CTR encryption and decryption with AES (`aes_pwr8` implementation).
2058 * \brief CTR encryption + CBC-MAC with AES (`aes_pwr8` implementation).
2070 * \brief CTR decryption + CBC-MAC with AES (`aes_pwr8` implementation).
2082 * \brief CTR encryption/decryption with AES (`aes_pwr8` implementation).
2093 * \brief CBC-MAC with AES (`aes_pwr8` implementation).
2104 * \brief Obtain the `aes_pwr8` AES-CBC (encryption) implementation, if
2108 * that implementation was compiled in the library _and_ the POWER8
2112 * \return the `aes_pwr8` AES-CBC (encryption) implementation, or `NULL`.
2117 * \brief Obtain the `aes_pwr8` AES-CBC (decryption) implementation, if
2121 * that implementation was compiled in the library _and_ the POWER8
2125 * \return the `aes_pwr8` AES-CBC (decryption) implementation, or `NULL`.
2130 * \brief Obtain the `aes_pwr8` AES-CTR implementation, if available.
2133 * implementation was compiled in the library _and_ the POWER8 crypto
2137 * \return the `aes_pwr8` AES-CTR implementation, or `NULL`.
2142 * \brief Obtain the `aes_pwr8` AES-CTR + CBC-MAC implementation, if
2146 * that implementation was compiled in the library _and_ the POWER8 AES
2150 * \return the `aes_pwr8` AES-CTR implementation, or `NULL`.
2211 * Traditional, table-based implementation for DES/3DES. Since tables are
2219 * \brief Context for DES subkeys (`des_tab` implementation, CBC encryption).
2234 * \brief Context for DES subkeys (`des_tab` implementation, CBC decryption).
2249 * \brief Class instance for DES CBC encryption (`des_tab` implementation).
2254 * \brief Class instance for DES CBC decryption (`des_tab` implementation).
2260 * (`des_tab` implementation).
2271 * (`des_tab` implementation).
2281 * \brief CBC encryption with DES (`des_tab` implementation).
2292 * \brief CBC decryption with DES (`des_tab` implementation).
2303 * Constant-time implementation for DES/3DES. It is substantially slower
2311 * \brief Context for DES subkeys (`des_ct` implementation, CBC encryption).
2326 * \brief Context for DES subkeys (`des_ct` implementation, CBC decryption).
2341 * \brief Class instance for DES CBC encryption (`des_ct` implementation).
2346 * \brief Class instance for DES CBC decryption (`des_ct` implementation).
2352 * (`des_ct` implementation).
2363 * (`des_ct` implementation).
2373 * \brief CBC encryption with DES (`des_ct` implementation).
2384 * \brief CBC decryption with DES (`des_ct` implementation).
2420 * \brief Type for a ChaCha20 implementation.
2422 * An implementation follows the description in RFC 7539:
2446 * \brief ChaCha20 implementation (straightforward C code, constant-time).
2460 * \brief ChaCha20 implementation (SSE2 code, constant-time).
2462 * This implementation is available only on x86 platforms, depending on
2481 * \brief Obtain the `sse2` ChaCha20 implementation, if available.
2484 * that implementation was compiled in the library _and_ the SSE2
2488 * \return the `sse2` ChaCha20 implementation, or `0`.
2493 * \brief Type for a ChaCha20+Poly1305 AEAD implementation.
2510 * \param ichacha implementation of ChaCha20.
2518 * \brief ChaCha20+Poly1305 AEAD implementation (mixed 32-bit multiplications).
2529 * \param ichacha implementation of ChaCha20.
2537 * \brief ChaCha20+Poly1305 AEAD implementation (pure 32-bit multiplications).
2548 * \param ichacha implementation of ChaCha20.
2556 * \brief ChaCha20+Poly1305 AEAD implementation (i15).
2558 * This implementation relies on the generic big integer code "i15"
2573 * \param ichacha implementation of ChaCha20.
2581 * \brief ChaCha20+Poly1305 AEAD implementation (ctmulq).
2583 * This implementation uses 64-bit multiplications (result over 128 bits).
2597 * \param ichacha implementation of ChaCha20.
2605 * \brief Get the ChaCha20+Poly1305 "ctmulq" implementation, if available.
2610 * \return the ctmulq ChaCha20+Poly1305 implementation, or 0.