diff options
author | Jack Lloyd <[email protected]> | 2016-01-10 00:51:48 -0500 |
---|---|---|
committer | Jack Lloyd <[email protected]> | 2016-01-10 00:51:48 -0500 |
commit | 45124582e3b964800f0be1f88773dd6f2cafc672 (patch) | |
tree | 9bd788556ddf9731e466b7f24a16e604f662ea24 /src/lib/block | |
parent | 672d29570e55686b90126b5d6f5d337ddf0b8f04 (diff) |
Add final attribute to many classes
In some cases this can offer better optimization, via devirtualization.
And it lets the user know the class is not intended for derivation.
Some discussion in GH #402
Diffstat (limited to 'src/lib/block')
27 files changed, 36 insertions, 36 deletions
diff --git a/src/lib/block/aes/aes.h b/src/lib/block/aes/aes.h index 82de4e63f..a058adcf1 100644 --- a/src/lib/block/aes/aes.h +++ b/src/lib/block/aes/aes.h @@ -15,7 +15,7 @@ namespace Botan { /** * AES-128 */ -class BOTAN_DLL AES_128 : public Block_Cipher_Fixed_Params<16, 16> +class BOTAN_DLL AES_128 final : public Block_Cipher_Fixed_Params<16, 16> { public: void encrypt_n(const byte in[], byte out[], size_t blocks) const override; @@ -35,7 +35,7 @@ class BOTAN_DLL AES_128 : public Block_Cipher_Fixed_Params<16, 16> /** * AES-192 */ -class BOTAN_DLL AES_192 : public Block_Cipher_Fixed_Params<16, 24> +class BOTAN_DLL AES_192 final : public Block_Cipher_Fixed_Params<16, 24> { public: void encrypt_n(const byte in[], byte out[], size_t blocks) const override; @@ -55,7 +55,7 @@ class BOTAN_DLL AES_192 : public Block_Cipher_Fixed_Params<16, 24> /** * AES-256 */ -class BOTAN_DLL AES_256 : public Block_Cipher_Fixed_Params<16, 32> +class BOTAN_DLL AES_256 final : public Block_Cipher_Fixed_Params<16, 32> { public: void encrypt_n(const byte in[], byte out[], size_t blocks) const override; diff --git a/src/lib/block/aes_ni/aes_ni.h b/src/lib/block/aes_ni/aes_ni.h index 6f995490a..296fd7fcc 100644 --- a/src/lib/block/aes_ni/aes_ni.h +++ b/src/lib/block/aes_ni/aes_ni.h @@ -15,7 +15,7 @@ namespace Botan { /** * AES-128 using AES-NI */ -class BOTAN_DLL AES_128_NI : public Block_Cipher_Fixed_Params<16, 16> +class BOTAN_DLL AES_128_NI final : public Block_Cipher_Fixed_Params<16, 16> { public: size_t parallelism() const override { return 4; } @@ -35,7 +35,7 @@ class BOTAN_DLL AES_128_NI : public Block_Cipher_Fixed_Params<16, 16> /** * AES-192 using AES-NI */ -class BOTAN_DLL AES_192_NI : public Block_Cipher_Fixed_Params<16, 24> +class BOTAN_DLL AES_192_NI final : public Block_Cipher_Fixed_Params<16, 24> { public: size_t parallelism() const override { return 4; } @@ -55,7 +55,7 @@ class BOTAN_DLL AES_192_NI : public Block_Cipher_Fixed_Params<16, 24> /** * AES-256 using AES-NI */ -class BOTAN_DLL AES_256_NI : public Block_Cipher_Fixed_Params<16, 32> +class BOTAN_DLL AES_256_NI final : public Block_Cipher_Fixed_Params<16, 32> { public: size_t parallelism() const override { return 4; } diff --git a/src/lib/block/aes_ssse3/aes_ssse3.h b/src/lib/block/aes_ssse3/aes_ssse3.h index 1d09b5f61..8e6c40dcd 100644 --- a/src/lib/block/aes_ssse3/aes_ssse3.h +++ b/src/lib/block/aes_ssse3/aes_ssse3.h @@ -15,7 +15,7 @@ namespace Botan { /** * AES-128 using SSSE3 */ -class BOTAN_DLL AES_128_SSSE3 : public Block_Cipher_Fixed_Params<16, 16> +class BOTAN_DLL AES_128_SSSE3 final : public Block_Cipher_Fixed_Params<16, 16> { public: void encrypt_n(const byte in[], byte out[], size_t blocks) const override; @@ -33,7 +33,7 @@ class BOTAN_DLL AES_128_SSSE3 : public Block_Cipher_Fixed_Params<16, 16> /** * AES-192 using SSSE3 */ -class BOTAN_DLL AES_192_SSSE3 : public Block_Cipher_Fixed_Params<16, 24> +class BOTAN_DLL AES_192_SSSE3 final : public Block_Cipher_Fixed_Params<16, 24> { public: void encrypt_n(const byte in[], byte out[], size_t blocks) const override; @@ -51,7 +51,7 @@ class BOTAN_DLL AES_192_SSSE3 : public Block_Cipher_Fixed_Params<16, 24> /** * AES-256 using SSSE3 */ -class BOTAN_DLL AES_256_SSSE3 : public Block_Cipher_Fixed_Params<16, 32> +class BOTAN_DLL AES_256_SSSE3 final : public Block_Cipher_Fixed_Params<16, 32> { public: void encrypt_n(const byte in[], byte out[], size_t blocks) const override; diff --git a/src/lib/block/blowfish/blowfish.h b/src/lib/block/blowfish/blowfish.h index ef2ecc3c4..b7deeab96 100644 --- a/src/lib/block/blowfish/blowfish.h +++ b/src/lib/block/blowfish/blowfish.h @@ -15,7 +15,7 @@ namespace Botan { /** * Blowfish */ -class BOTAN_DLL Blowfish : public Block_Cipher_Fixed_Params<8, 1, 56> +class BOTAN_DLL Blowfish final : public Block_Cipher_Fixed_Params<8, 1, 56> { public: void encrypt_n(const byte in[], byte out[], size_t blocks) const override; diff --git a/src/lib/block/camellia/camellia.h b/src/lib/block/camellia/camellia.h index c83741d3c..71aa95ac6 100644 --- a/src/lib/block/camellia/camellia.h +++ b/src/lib/block/camellia/camellia.h @@ -15,7 +15,7 @@ namespace Botan { /** * Camellia-128 */ -class BOTAN_DLL Camellia_128 : public Block_Cipher_Fixed_Params<16, 16> +class BOTAN_DLL Camellia_128 final : public Block_Cipher_Fixed_Params<16, 16> { public: void encrypt_n(const byte in[], byte out[], size_t blocks) const override; @@ -33,7 +33,7 @@ class BOTAN_DLL Camellia_128 : public Block_Cipher_Fixed_Params<16, 16> /** * Camellia-192 */ -class BOTAN_DLL Camellia_192 : public Block_Cipher_Fixed_Params<16, 24> +class BOTAN_DLL Camellia_192 final : public Block_Cipher_Fixed_Params<16, 24> { public: void encrypt_n(const byte in[], byte out[], size_t blocks) const override; @@ -51,7 +51,7 @@ class BOTAN_DLL Camellia_192 : public Block_Cipher_Fixed_Params<16, 24> /** * Camellia-256 */ -class BOTAN_DLL Camellia_256 : public Block_Cipher_Fixed_Params<16, 32> +class BOTAN_DLL Camellia_256 final : public Block_Cipher_Fixed_Params<16, 32> { public: void encrypt_n(const byte in[], byte out[], size_t blocks) const override; diff --git a/src/lib/block/cascade/cascade.h b/src/lib/block/cascade/cascade.h index 386f1bd21..21af5bea4 100644 --- a/src/lib/block/cascade/cascade.h +++ b/src/lib/block/cascade/cascade.h @@ -15,7 +15,7 @@ namespace Botan { /** * Block Cipher Cascade */ -class BOTAN_DLL Cascade_Cipher : public BlockCipher +class BOTAN_DLL Cascade_Cipher final : public BlockCipher { public: void encrypt_n(const byte in[], byte out[], size_t blocks) const override; diff --git a/src/lib/block/cast/cast128.h b/src/lib/block/cast/cast128.h index 491dd56f2..2782e96b9 100644 --- a/src/lib/block/cast/cast128.h +++ b/src/lib/block/cast/cast128.h @@ -15,7 +15,7 @@ namespace Botan { /** * CAST-128 */ -class BOTAN_DLL CAST_128 : public Block_Cipher_Fixed_Params<8, 11, 16> +class BOTAN_DLL CAST_128 final : public Block_Cipher_Fixed_Params<8, 11, 16> { public: void encrypt_n(const byte in[], byte out[], size_t blocks) const override; diff --git a/src/lib/block/cast/cast256.h b/src/lib/block/cast/cast256.h index 2e7d5cddd..086c94331 100644 --- a/src/lib/block/cast/cast256.h +++ b/src/lib/block/cast/cast256.h @@ -15,7 +15,7 @@ namespace Botan { /** * CAST-256 */ -class BOTAN_DLL CAST_256 : public Block_Cipher_Fixed_Params<16, 4, 32, 4> +class BOTAN_DLL CAST_256 final : public Block_Cipher_Fixed_Params<16, 4, 32, 4> { public: void encrypt_n(const byte in[], byte out[], size_t blocks) const override; diff --git a/src/lib/block/des/des.h b/src/lib/block/des/des.h index 8ea132ac1..ff31421d2 100644 --- a/src/lib/block/des/des.h +++ b/src/lib/block/des/des.h @@ -15,7 +15,7 @@ namespace Botan { /** * DES */ -class BOTAN_DLL DES : public Block_Cipher_Fixed_Params<8, 8> +class BOTAN_DLL DES final : public Block_Cipher_Fixed_Params<8, 8> { public: void encrypt_n(const byte in[], byte out[], size_t blocks) const override; @@ -33,7 +33,7 @@ class BOTAN_DLL DES : public Block_Cipher_Fixed_Params<8, 8> /** * Triple DES */ -class BOTAN_DLL TripleDES : public Block_Cipher_Fixed_Params<8, 16, 24, 8> +class BOTAN_DLL TripleDES final : public Block_Cipher_Fixed_Params<8, 16, 24, 8> { public: void encrypt_n(const byte in[], byte out[], size_t blocks) const override; diff --git a/src/lib/block/des/desx.h b/src/lib/block/des/desx.h index 06ca91c9f..f3c9ac99a 100644 --- a/src/lib/block/des/desx.h +++ b/src/lib/block/des/desx.h @@ -15,7 +15,7 @@ namespace Botan { /** * DESX */ -class BOTAN_DLL DESX : public Block_Cipher_Fixed_Params<8, 24> +class BOTAN_DLL DESX final : public Block_Cipher_Fixed_Params<8, 24> { public: void encrypt_n(const byte in[], byte out[], size_t blocks) const override; diff --git a/src/lib/block/gost_28147/gost_28147.h b/src/lib/block/gost_28147/gost_28147.h index d87559b57..11f5228a6 100644 --- a/src/lib/block/gost_28147/gost_28147.h +++ b/src/lib/block/gost_28147/gost_28147.h @@ -49,7 +49,7 @@ class BOTAN_DLL GOST_28147_89_Params /** * GOST 28147-89 */ -class BOTAN_DLL GOST_28147_89 : public Block_Cipher_Fixed_Params<8, 32> +class BOTAN_DLL GOST_28147_89 final : public Block_Cipher_Fixed_Params<8, 32> { public: void encrypt_n(const byte in[], byte out[], size_t blocks) const override; diff --git a/src/lib/block/idea_sse2/idea_sse2.h b/src/lib/block/idea_sse2/idea_sse2.h index 18ea7c74d..9e0df9925 100644 --- a/src/lib/block/idea_sse2/idea_sse2.h +++ b/src/lib/block/idea_sse2/idea_sse2.h @@ -15,7 +15,7 @@ namespace Botan { /** * IDEA in SSE2 */ -class BOTAN_DLL IDEA_SSE2 : public IDEA +class BOTAN_DLL IDEA_SSE2 final : public IDEA { public: size_t parallelism() const override { return 8; } diff --git a/src/lib/block/kasumi/kasumi.h b/src/lib/block/kasumi/kasumi.h index 83b936766..24fd83050 100644 --- a/src/lib/block/kasumi/kasumi.h +++ b/src/lib/block/kasumi/kasumi.h @@ -15,7 +15,7 @@ namespace Botan { /** * KASUMI, the block cipher used in 3G telephony */ -class BOTAN_DLL KASUMI : public Block_Cipher_Fixed_Params<8, 16> +class BOTAN_DLL KASUMI final : public Block_Cipher_Fixed_Params<8, 16> { public: void encrypt_n(const byte in[], byte out[], size_t blocks) const override; diff --git a/src/lib/block/lion/lion.h b/src/lib/block/lion/lion.h index 116fa911b..f22f0f8a8 100644 --- a/src/lib/block/lion/lion.h +++ b/src/lib/block/lion/lion.h @@ -22,7 +22,7 @@ namespace Botan { * http://www.cl.cam.ac.uk/~rja14/Papers/bear-lion.pdf */ -class BOTAN_DLL Lion : public BlockCipher +class BOTAN_DLL Lion final : public BlockCipher { public: void encrypt_n(const byte in[], byte out[], size_t blocks) const override; diff --git a/src/lib/block/mars/mars.h b/src/lib/block/mars/mars.h index 5d53f6e26..a4d7a07d6 100644 --- a/src/lib/block/mars/mars.h +++ b/src/lib/block/mars/mars.h @@ -15,7 +15,7 @@ namespace Botan { /** * MARS, IBM's candidate for AES */ -class BOTAN_DLL MARS : public Block_Cipher_Fixed_Params<16, 16, 32, 4> +class BOTAN_DLL MARS final : public Block_Cipher_Fixed_Params<16, 16, 32, 4> { public: void encrypt_n(const byte in[], byte out[], size_t blocks) const override; diff --git a/src/lib/block/misty1/misty1.h b/src/lib/block/misty1/misty1.h index 5c7754086..791ace6aa 100644 --- a/src/lib/block/misty1/misty1.h +++ b/src/lib/block/misty1/misty1.h @@ -15,7 +15,7 @@ namespace Botan { /** * MISTY1 with 8 rounds */ -class BOTAN_DLL MISTY1 : public Block_Cipher_Fixed_Params<8, 16> +class BOTAN_DLL MISTY1 final : public Block_Cipher_Fixed_Params<8, 16> { public: void encrypt_n(const byte in[], byte out[], size_t blocks) const override; diff --git a/src/lib/block/noekeon_simd/noekeon_simd.h b/src/lib/block/noekeon_simd/noekeon_simd.h index 8d40d13dd..7907fc4ca 100644 --- a/src/lib/block/noekeon_simd/noekeon_simd.h +++ b/src/lib/block/noekeon_simd/noekeon_simd.h @@ -15,7 +15,7 @@ namespace Botan { /** * Noekeon implementation using SIMD operations */ -class BOTAN_DLL Noekeon_SIMD : public Noekeon +class BOTAN_DLL Noekeon_SIMD final : public Noekeon { public: size_t parallelism() const override { return 4; } diff --git a/src/lib/block/rc2/rc2.h b/src/lib/block/rc2/rc2.h index 76391791a..9ec9b9557 100644 --- a/src/lib/block/rc2/rc2.h +++ b/src/lib/block/rc2/rc2.h @@ -15,7 +15,7 @@ namespace Botan { /** * RC2 */ -class BOTAN_DLL RC2 : public Block_Cipher_Fixed_Params<8, 1, 32> +class BOTAN_DLL RC2 final : public Block_Cipher_Fixed_Params<8, 1, 32> { public: void encrypt_n(const byte in[], byte out[], size_t blocks) const override; diff --git a/src/lib/block/rc5/rc5.h b/src/lib/block/rc5/rc5.h index cb76d51f1..17469205f 100644 --- a/src/lib/block/rc5/rc5.h +++ b/src/lib/block/rc5/rc5.h @@ -15,7 +15,7 @@ namespace Botan { /** * RC5 */ -class BOTAN_DLL RC5 : public Block_Cipher_Fixed_Params<8, 1, 32> +class BOTAN_DLL RC5 final : public Block_Cipher_Fixed_Params<8, 1, 32> { public: void encrypt_n(const byte in[], byte out[], size_t blocks) const override; diff --git a/src/lib/block/rc6/rc6.h b/src/lib/block/rc6/rc6.h index a84d06a9b..3f9bb0af1 100644 --- a/src/lib/block/rc6/rc6.h +++ b/src/lib/block/rc6/rc6.h @@ -15,7 +15,7 @@ namespace Botan { /** * RC6, Ron Rivest's AES candidate */ -class BOTAN_DLL RC6 : public Block_Cipher_Fixed_Params<16, 1, 32> +class BOTAN_DLL RC6 final : public Block_Cipher_Fixed_Params<16, 1, 32> { public: void encrypt_n(const byte in[], byte out[], size_t blocks) const override; diff --git a/src/lib/block/safer/safer_sk.h b/src/lib/block/safer/safer_sk.h index 2746963c4..babc22eb9 100644 --- a/src/lib/block/safer/safer_sk.h +++ b/src/lib/block/safer/safer_sk.h @@ -15,7 +15,7 @@ namespace Botan { /** * SAFER-SK */ -class BOTAN_DLL SAFER_SK : public Block_Cipher_Fixed_Params<8, 16> +class BOTAN_DLL SAFER_SK final : public Block_Cipher_Fixed_Params<8, 16> { public: void encrypt_n(const byte in[], byte out[], size_t blocks) const override; diff --git a/src/lib/block/seed/seed.h b/src/lib/block/seed/seed.h index 66462e7d7..45e691913 100644 --- a/src/lib/block/seed/seed.h +++ b/src/lib/block/seed/seed.h @@ -15,7 +15,7 @@ namespace Botan { /** * SEED, a Korean block cipher */ -class BOTAN_DLL SEED : public Block_Cipher_Fixed_Params<16, 16> +class BOTAN_DLL SEED final : public Block_Cipher_Fixed_Params<16, 16> { public: void encrypt_n(const byte in[], byte out[], size_t blocks) const override; diff --git a/src/lib/block/serpent_simd/serp_simd.h b/src/lib/block/serpent_simd/serp_simd.h index 373d47fa1..e10d4cfe2 100644 --- a/src/lib/block/serpent_simd/serp_simd.h +++ b/src/lib/block/serpent_simd/serp_simd.h @@ -15,7 +15,7 @@ namespace Botan { /** * Serpent implementation using SIMD */ -class BOTAN_DLL Serpent_SIMD : public Serpent +class BOTAN_DLL Serpent_SIMD final : public Serpent { public: size_t parallelism() const override { return 4; } diff --git a/src/lib/block/tea/tea.h b/src/lib/block/tea/tea.h index fd2b5fe36..6b6308381 100644 --- a/src/lib/block/tea/tea.h +++ b/src/lib/block/tea/tea.h @@ -15,7 +15,7 @@ namespace Botan { /** * TEA */ -class BOTAN_DLL TEA : public Block_Cipher_Fixed_Params<8, 16> +class BOTAN_DLL TEA final : public Block_Cipher_Fixed_Params<8, 16> { public: void encrypt_n(const byte in[], byte out[], size_t blocks) const override; diff --git a/src/lib/block/threefish_avx2/threefish_avx2.h b/src/lib/block/threefish_avx2/threefish_avx2.h index d851ff0dc..fbf2f9d8a 100644 --- a/src/lib/block/threefish_avx2/threefish_avx2.h +++ b/src/lib/block/threefish_avx2/threefish_avx2.h @@ -15,7 +15,7 @@ namespace Botan { /** * Threefish-512 */ -class BOTAN_DLL Threefish_512_AVX2 : public Threefish_512 +class BOTAN_DLL Threefish_512_AVX2 final : public Threefish_512 { private: void encrypt_n(const byte in[], byte out[], size_t blocks) const override; diff --git a/src/lib/block/twofish/twofish.h b/src/lib/block/twofish/twofish.h index c3dd7fec0..42991e354 100644 --- a/src/lib/block/twofish/twofish.h +++ b/src/lib/block/twofish/twofish.h @@ -15,7 +15,7 @@ namespace Botan { /** * Twofish, an AES finalist */ -class BOTAN_DLL Twofish : public Block_Cipher_Fixed_Params<16, 16, 32, 8> +class BOTAN_DLL Twofish final : public Block_Cipher_Fixed_Params<16, 16, 32, 8> { public: void encrypt_n(const byte in[], byte out[], size_t blocks) const override; diff --git a/src/lib/block/xtea_simd/xtea_simd.h b/src/lib/block/xtea_simd/xtea_simd.h index 04280f1ae..0b0558032 100644 --- a/src/lib/block/xtea_simd/xtea_simd.h +++ b/src/lib/block/xtea_simd/xtea_simd.h @@ -15,7 +15,7 @@ namespace Botan { /** * XTEA implemented using SIMD operations */ -class BOTAN_DLL XTEA_SIMD : public XTEA +class BOTAN_DLL XTEA_SIMD final : public XTEA { public: size_t parallelism() const override { return 8; } |