diff options
Diffstat (limited to 'src')
133 files changed, 246 insertions, 244 deletions
diff --git a/src/cli/asn1.cpp b/src/cli/asn1.cpp index 3af2be97d..34e2fe870 100644 --- a/src/cli/asn1.cpp +++ b/src/cli/asn1.cpp @@ -356,7 +356,7 @@ void decode(Botan::BER_Decoder& decoder, size_t level) } -class ASN1_Printer : public Command +class ASN1_Printer final : public Command { public: ASN1_Printer() : Command("asn1print file") {} diff --git a/src/cli/bench.cpp b/src/cli/bench.cpp index 4f1986de6..529f89baf 100644 --- a/src/cli/bench.cpp +++ b/src/cli/bench.cpp @@ -240,7 +240,7 @@ std::vector<std::string> default_benchmark_list() } -class Benchmark : public Command +class Benchmark final : public Command { public: Benchmark() : Command("bench --msec=1000 --provider= --buf-size=8 *algos") {} diff --git a/src/cli/cc_enc.cpp b/src/cli/cc_enc.cpp index 2e2f9c12a..6f19e546c 100644 --- a/src/cli/cc_enc.cpp +++ b/src/cli/cc_enc.cpp @@ -104,7 +104,7 @@ uint64_t decrypt_cc_number(uint64_t enc_cc, } -class CC_Encrypt : public Command +class CC_Encrypt final : public Command { public: CC_Encrypt() : Command("cc_encrypt CC passphrase --tweak=") {} @@ -130,7 +130,7 @@ class CC_Encrypt : public Command BOTAN_REGISTER_COMMAND("cc_encrypt", CC_Encrypt); -class CC_Decrypt : public Command +class CC_Decrypt final : public Command { public: CC_Decrypt() : Command("cc_decrypt CC passphrase --tweak=") {} diff --git a/src/cli/compress.cpp b/src/cli/compress.cpp index 0d29dc180..c573eaa20 100644 --- a/src/cli/compress.cpp +++ b/src/cli/compress.cpp @@ -43,7 +43,7 @@ void do_compress(Botan::Transform& comp, } -class Compress : public Command +class Compress final : public Command { public: Compress() : Command("compress --type=gzip --level=6 --buf-size=8192 file") {} @@ -103,7 +103,7 @@ class Compress : public Command BOTAN_REGISTER_COMMAND("compress", Compress); -class Decompress : public Command +class Decompress final : public Command { public: Decompress() : Command("decompress --buf-size=8192 file") {} diff --git a/src/cli/math.cpp b/src/cli/math.cpp index 27f3660d1..4ed58b9f0 100644 --- a/src/cli/math.cpp +++ b/src/cli/math.cpp @@ -14,7 +14,7 @@ namespace Botan_CLI { -class Gen_Prime : public Command +class Gen_Prime final : public Command { public: Gen_Prime() : Command("gen_prime --count=1 bits") {} @@ -34,7 +34,7 @@ class Gen_Prime : public Command BOTAN_REGISTER_COMMAND("gen_prime", Gen_Prime); -class Is_Prime : public Command +class Is_Prime final : public Command { public: Is_Prime() : Command("is_prime --prob=56 n") {} @@ -55,7 +55,7 @@ BOTAN_REGISTER_COMMAND("is_prime", Is_Prime); * Factor integers using a combination of trial division by small * primes, and Pollard's Rho algorithm */ -class Factor : public Command +class Factor final : public Command { public: Factor() : Command("factor n") {} diff --git a/src/cli/pubkey.cpp b/src/cli/pubkey.cpp index 93a36a9cc..cc02e02fc 100644 --- a/src/cli/pubkey.cpp +++ b/src/cli/pubkey.cpp @@ -41,7 +41,7 @@ namespace Botan_CLI { -class PK_Keygen : public Command +class PK_Keygen final : public Command { public: PK_Keygen() : Command("keygen --algo=RSA --params= --passphrase= --pbe= --pbe-millis=300 --der-out") {} @@ -164,7 +164,7 @@ std::string algo_default_emsa(const std::string& key) } -class PK_Sign : public Command +class PK_Sign final : public Command { public: PK_Sign() : Command("sign --passphrase= --hash=SHA-256 --emsa= key file") {} @@ -192,7 +192,7 @@ class PK_Sign : public Command BOTAN_REGISTER_COMMAND("sign", PK_Sign); -class PK_Verify : public Command +class PK_Verify final : public Command { public: PK_Verify() : Command("verify --hash=SHA-256 --emsa= pubkey file signature") {} @@ -223,7 +223,7 @@ BOTAN_REGISTER_COMMAND("verify", PK_Verify); #if defined(BOTAN_HAS_DL_GROUP) -class Gen_DL_Group : public Command +class Gen_DL_Group final : public Command { public: Gen_DL_Group() : Command("gen_dl_group --pbits=1024 --qbits=0 --type=subgroup") {} @@ -253,7 +253,7 @@ BOTAN_REGISTER_COMMAND("gen_dl_group", Gen_DL_Group); #endif -class PKCS8_Tool : public Command +class PKCS8_Tool final : public Command { public: PKCS8_Tool() : Command("pkcs8 --pass-in= --pub-out --der-out --pass-out= --pbe= --pbe-millis=300 key") {} diff --git a/src/cli/tls_client.cpp b/src/cli/tls_client.cpp index bf1c3a57c..a16f1ef88 100644 --- a/src/cli/tls_client.cpp +++ b/src/cli/tls_client.cpp @@ -35,7 +35,7 @@ namespace Botan_CLI { -class TLS_Client : public Command +class TLS_Client final : public Command { public: TLS_Client() : Command("tls_client host --port=443 --type=tcp " diff --git a/src/cli/tls_proxy.cpp b/src/cli/tls_proxy.cpp index 83332bb49..2c92ad281 100644 --- a/src/cli/tls_proxy.cpp +++ b/src/cli/tls_proxy.cpp @@ -384,7 +384,7 @@ class tls_proxy_server } -class TLS_Proxy : public Command +class TLS_Proxy final : public Command { public: TLS_Proxy() : Command("tls_proxy listen_port target_host target_port server_cert server_key " diff --git a/src/cli/tls_server.cpp b/src/cli/tls_server.cpp index ccf8f40ac..c802dbeb0 100644 --- a/src/cli/tls_server.cpp +++ b/src/cli/tls_server.cpp @@ -30,7 +30,7 @@ namespace Botan_CLI { -class TLS_Server : public Command +class TLS_Server final : public Command { public: TLS_Server() : Command("tls_server cert key --port=443 --type=tcp") {} diff --git a/src/cli/utils.cpp b/src/cli/utils.cpp index 526b59aba..3f59ee923 100644 --- a/src/cli/utils.cpp +++ b/src/cli/utils.cpp @@ -30,7 +30,7 @@ namespace Botan_CLI { -class Config_Info : public Command +class Config_Info final : public Command { public: Config_Info() : Command("config info_type") {} @@ -74,7 +74,7 @@ class Config_Info : public Command BOTAN_REGISTER_COMMAND("config", Config_Info); -class Version_Info : public Command +class Version_Info final : public Command { public: Version_Info() : Command("version --full") {} @@ -96,7 +96,7 @@ class Version_Info : public Command BOTAN_REGISTER_COMMAND("version", Version_Info); -class Print_Cpuid : public Command +class Print_Cpuid final : public Command { public: Print_Cpuid() : Command("cpuid") {} @@ -109,7 +109,7 @@ class Print_Cpuid : public Command BOTAN_REGISTER_COMMAND("cpuid", Print_Cpuid); -class Hash : public Command +class Hash final : public Command { public: Hash() : Command("hash --algo=SHA-256 --buf-size=4096 *files") {} @@ -146,7 +146,7 @@ class Hash : public Command BOTAN_REGISTER_COMMAND("hash", Hash); -class RNG : public Command +class RNG final : public Command { public: RNG() : Command("rng bytes --system") {} @@ -175,7 +175,7 @@ BOTAN_REGISTER_COMMAND("rng", RNG); #if defined(BOTAN_HAS_HTTP_UTIL) -class HTTP_Get : public Command +class HTTP_Get final : public Command { public: HTTP_Get() : Command("http_get url") {} @@ -192,7 +192,7 @@ BOTAN_REGISTER_COMMAND("http_get", HTTP_Get); #if defined(BOTAN_HAS_BASE64_CODEC) -class Base64_Encode : public Command +class Base64_Encode final : public Command { public: Base64_Encode() : Command("base64_enc file") {} @@ -207,7 +207,7 @@ class Base64_Encode : public Command BOTAN_REGISTER_COMMAND("base64_enc", Base64_Encode); -class Base64_Decode : public Command +class Base64_Decode final : public Command { public: Base64_Decode() : Command("base64_dec file") {} @@ -232,7 +232,7 @@ BOTAN_REGISTER_COMMAND("base64_dec", Base64_Decode); #if defined(BOTAN_HAS_BCRYPT) -class Generate_Bcrypt : public Command +class Generate_Bcrypt final : public Command { public: Generate_Bcrypt() : Command("gen_bcrypt --work-factor=12 password") {} @@ -248,7 +248,7 @@ class Generate_Bcrypt : public Command BOTAN_REGISTER_COMMAND("gen_bcrypt", Generate_Bcrypt); -class Check_Bcrypt : public Command +class Check_Bcrypt final : public Command { public: Check_Bcrypt() : Command("check_bcrypt password hash") {} diff --git a/src/cli/x509.cpp b/src/cli/x509.cpp index 886b57259..665a3ebc5 100644 --- a/src/cli/x509.cpp +++ b/src/cli/x509.cpp @@ -21,7 +21,7 @@ namespace Botan_CLI { -class Sign_Cert : public Command +class Sign_Cert final : public Command { public: Sign_Cert() : Command("sign_cert --ca-key-pass= --hash=SHA-256 " @@ -60,7 +60,7 @@ class Sign_Cert : public Command BOTAN_REGISTER_COMMAND("sign_cert", Sign_Cert); -class Cert_Info : public Command +class Cert_Info final : public Command { public: Cert_Info() : Command("cert_info file") {} @@ -75,7 +75,7 @@ class Cert_Info : public Command BOTAN_REGISTER_COMMAND("cert_info", Cert_Info); #if defined(BOTAN_HAS_OCSP) -class OCSP_Check : public Command +class OCSP_Check final : public Command { public: OCSP_Check() : Command("ocsp_check subject issuer") {} @@ -107,7 +107,7 @@ BOTAN_REGISTER_COMMAND("ocsp_check", OCSP_Check); #endif // OCSP -class Cert_Verify : public Command +class Cert_Verify final : public Command { public: Cert_Verify() : Command("cert_verify subject *ca_certs") {} @@ -142,7 +142,7 @@ class Cert_Verify : public Command BOTAN_REGISTER_COMMAND("cert_verify", Cert_Verify); -class Gen_Self_Signed : public Command +class Gen_Self_Signed final : public Command { public: Gen_Self_Signed() : Command("gen_self_signed key CN --country= --dns= " @@ -178,7 +178,7 @@ class Gen_Self_Signed : public Command BOTAN_REGISTER_COMMAND("gen_self_signed", Gen_Self_Signed); -class Generate_PKCS10 : public Command +class Generate_PKCS10 final : public Command { public: Generate_PKCS10() : Command("gen_pkcs10 key CN --country= --organization= " diff --git a/src/lib/asn1/alg_id.h b/src/lib/asn1/alg_id.h index 1516e41ef..3b6c3f7ec 100644 --- a/src/lib/asn1/alg_id.h +++ b/src/lib/asn1/alg_id.h @@ -17,7 +17,7 @@ namespace Botan { /** * Algorithm Identifier */ -class BOTAN_DLL AlgorithmIdentifier : public ASN1_Object +class BOTAN_DLL AlgorithmIdentifier final : public ASN1_Object { public: enum Encoding_Option { USE_NULL_PARAM }; diff --git a/src/lib/asn1/asn1_alt_name.h b/src/lib/asn1/asn1_alt_name.h index 3b4120fc3..5ea7cfb14 100644 --- a/src/lib/asn1/asn1_alt_name.h +++ b/src/lib/asn1/asn1_alt_name.h @@ -19,7 +19,7 @@ namespace Botan { /** * Alternative Name */ -class BOTAN_DLL AlternativeName : public ASN1_Object +class BOTAN_DLL AlternativeName final : public ASN1_Object { public: void encode_into(class DER_Encoder&) const override; diff --git a/src/lib/asn1/asn1_attribute.h b/src/lib/asn1/asn1_attribute.h index 3abdaaeb9..737d84b81 100644 --- a/src/lib/asn1/asn1_attribute.h +++ b/src/lib/asn1/asn1_attribute.h @@ -17,7 +17,7 @@ namespace Botan { /** * Attribute */ -class BOTAN_DLL Attribute : public ASN1_Object +class BOTAN_DLL Attribute final : public ASN1_Object { public: void encode_into(class DER_Encoder& to) const override; diff --git a/src/lib/asn1/asn1_oid.h b/src/lib/asn1/asn1_oid.h index 5c3053ee0..6fbd876ec 100644 --- a/src/lib/asn1/asn1_oid.h +++ b/src/lib/asn1/asn1_oid.h @@ -17,7 +17,7 @@ namespace Botan { /** * This class represents ASN.1 object identifiers. */ -class BOTAN_DLL OID : public ASN1_Object +class BOTAN_DLL OID final : public ASN1_Object { public: void encode_into(class DER_Encoder&) const override; diff --git a/src/lib/asn1/asn1_str.h b/src/lib/asn1/asn1_str.h index 69370036c..269b821b8 100644 --- a/src/lib/asn1/asn1_str.h +++ b/src/lib/asn1/asn1_str.h @@ -15,7 +15,7 @@ namespace Botan { /** * Simple String */ -class BOTAN_DLL ASN1_String : public ASN1_Object +class BOTAN_DLL ASN1_String final : public ASN1_Object { public: void encode_into(class DER_Encoder&) const override; diff --git a/src/lib/asn1/asn1_time.h b/src/lib/asn1/asn1_time.h index 313b26b06..269cc7983 100644 --- a/src/lib/asn1/asn1_time.h +++ b/src/lib/asn1/asn1_time.h @@ -16,7 +16,7 @@ namespace Botan { /** * X.509 Time */ -class BOTAN_DLL X509_Time : public ASN1_Object +class BOTAN_DLL X509_Time final : public ASN1_Object { public: /// DER encode a X509_Time diff --git a/src/lib/asn1/x509_dn.h b/src/lib/asn1/x509_dn.h index 9daa68f1c..a86cc6417 100644 --- a/src/lib/asn1/x509_dn.h +++ b/src/lib/asn1/x509_dn.h @@ -19,7 +19,7 @@ namespace Botan { /** * Distinguished Name */ -class BOTAN_DLL X509_DN : public ASN1_Object +class BOTAN_DLL X509_DN final : public ASN1_Object { public: void encode_into(class DER_Encoder&) const override; 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; } diff --git a/src/lib/cert/x509/crl_ent.h b/src/lib/cert/x509/crl_ent.h index 1b8f4b7cd..ceefdb191 100644 --- a/src/lib/cert/x509/crl_ent.h +++ b/src/lib/cert/x509/crl_ent.h @@ -36,7 +36,7 @@ enum CRL_Code { /** * This class represents CRL entries */ -class BOTAN_DLL CRL_Entry : public ASN1_Object +class BOTAN_DLL CRL_Entry final : public ASN1_Object { public: void encode_into(class DER_Encoder&) const override; diff --git a/src/lib/cert/x509/ocsp_types.h b/src/lib/cert/x509/ocsp_types.h index 42a84c38b..6df8ac17f 100644 --- a/src/lib/cert/x509/ocsp_types.h +++ b/src/lib/cert/x509/ocsp_types.h @@ -16,7 +16,7 @@ namespace Botan { namespace OCSP { -class BOTAN_DLL CertID : public ASN1_Object +class BOTAN_DLL CertID final : public ASN1_Object { public: CertID() {} @@ -39,7 +39,7 @@ class BOTAN_DLL CertID : public ASN1_Object BigInt m_subject_serial; }; -class BOTAN_DLL SingleResponse : public ASN1_Object +class BOTAN_DLL SingleResponse final : public ASN1_Object { public: const CertID& certid() const { return m_certid; } diff --git a/src/lib/cert/x509/pkcs10.h b/src/lib/cert/x509/pkcs10.h index 999395f93..94db222cd 100644 --- a/src/lib/cert/x509/pkcs10.h +++ b/src/lib/cert/x509/pkcs10.h @@ -21,7 +21,7 @@ namespace Botan { /** * PKCS #10 Certificate Request. */ -class BOTAN_DLL PKCS10_Request : public X509_Object +class BOTAN_DLL PKCS10_Request final : public X509_Object { public: /** diff --git a/src/lib/cert/x509/x509_crl.h b/src/lib/cert/x509/x509_crl.h index b3c0c1349..25556000d 100644 --- a/src/lib/cert/x509/x509_crl.h +++ b/src/lib/cert/x509/x509_crl.h @@ -19,7 +19,7 @@ class X509_Certificate; /** * This class represents X.509 Certificate Revocation Lists (CRLs). */ -class BOTAN_DLL X509_CRL : public X509_Object +class BOTAN_DLL X509_CRL final : public X509_Object { public: /** diff --git a/src/lib/cert/x509/x509_ext.h b/src/lib/cert/x509/x509_ext.h index 5816dc699..8e30237a7 100644 --- a/src/lib/cert/x509/x509_ext.h +++ b/src/lib/cert/x509/x509_ext.h @@ -86,7 +86,7 @@ static const size_t NO_CERT_PATH_LIMIT = 0xFFFFFFF0; /** * Basic Constraints Extension */ -class BOTAN_DLL Basic_Constraints : public Certificate_Extension +class BOTAN_DLL Basic_Constraints final : public Certificate_Extension { public: Basic_Constraints* copy() const override @@ -112,7 +112,7 @@ class BOTAN_DLL Basic_Constraints : public Certificate_Extension /** * Key Usage Constraints Extension */ -class BOTAN_DLL Key_Usage : public Certificate_Extension +class BOTAN_DLL Key_Usage final : public Certificate_Extension { public: Key_Usage* copy() const override { return new Key_Usage(constraints); } @@ -135,7 +135,7 @@ class BOTAN_DLL Key_Usage : public Certificate_Extension /** * Subject Key Identifier Extension */ -class BOTAN_DLL Subject_Key_ID : public Certificate_Extension +class BOTAN_DLL Subject_Key_ID final : public Certificate_Extension { public: Subject_Key_ID* copy() const override @@ -160,7 +160,7 @@ class BOTAN_DLL Subject_Key_ID : public Certificate_Extension /** * Authority Key Identifier Extension */ -class BOTAN_DLL Authority_Key_ID : public Certificate_Extension +class BOTAN_DLL Authority_Key_ID final : public Certificate_Extension { public: Authority_Key_ID* copy() const override @@ -233,7 +233,7 @@ class BOTAN_DLL Issuer_Alternative_Name : public Alternative_Name /** * Extended Key Usage Extension */ -class BOTAN_DLL Extended_Key_Usage : public Certificate_Extension +class BOTAN_DLL Extended_Key_Usage final : public Certificate_Extension { public: Extended_Key_Usage* copy() const override @@ -258,7 +258,7 @@ class BOTAN_DLL Extended_Key_Usage : public Certificate_Extension /** * Certificate Policies Extension */ -class BOTAN_DLL Certificate_Policies : public Certificate_Extension +class BOTAN_DLL Certificate_Policies final : public Certificate_Extension { public: Certificate_Policies* copy() const override @@ -280,7 +280,7 @@ class BOTAN_DLL Certificate_Policies : public Certificate_Extension std::vector<OID> oids; }; -class BOTAN_DLL Authority_Information_Access : public Certificate_Extension +class BOTAN_DLL Authority_Information_Access final : public Certificate_Extension { public: Authority_Information_Access* copy() const override @@ -308,7 +308,7 @@ class BOTAN_DLL Authority_Information_Access : public Certificate_Extension /** * CRL Number Extension */ -class BOTAN_DLL CRL_Number : public Certificate_Extension +class BOTAN_DLL CRL_Number final : public Certificate_Extension { public: CRL_Number* copy() const override; @@ -332,7 +332,7 @@ class BOTAN_DLL CRL_Number : public Certificate_Extension /** * CRL Entry Reason Code Extension */ -class BOTAN_DLL CRL_ReasonCode : public Certificate_Extension +class BOTAN_DLL CRL_ReasonCode final : public Certificate_Extension { public: CRL_ReasonCode* copy() const override @@ -355,10 +355,10 @@ class BOTAN_DLL CRL_ReasonCode : public Certificate_Extension /** * CRL Distribution Points Extension */ -class BOTAN_DLL CRL_Distribution_Points : public Certificate_Extension +class BOTAN_DLL CRL_Distribution_Points final : public Certificate_Extension { public: - class BOTAN_DLL Distribution_Point : public ASN1_Object + class BOTAN_DLL Distribution_Point final : public ASN1_Object { public: void encode_into(class DER_Encoder&) const override; diff --git a/src/lib/cert/x509/x509cert.h b/src/lib/cert/x509/x509cert.h index 144ceb909..d5784f427 100644 --- a/src/lib/cert/x509/x509cert.h +++ b/src/lib/cert/x509/x509cert.h @@ -30,7 +30,7 @@ enum class Usage_Type /** * This class represents X.509 Certificate */ -class BOTAN_DLL X509_Certificate : public X509_Object +class BOTAN_DLL X509_Certificate final : public X509_Object { public: /** diff --git a/src/lib/compression/bzip2/bzip2.h b/src/lib/compression/bzip2/bzip2.h index ca0ac529b..06c80cb8e 100644 --- a/src/lib/compression/bzip2/bzip2.h +++ b/src/lib/compression/bzip2/bzip2.h @@ -16,7 +16,7 @@ namespace Botan { /** * Bzip2 Compression */ -class BOTAN_DLL Bzip2_Compression : public Stream_Compression +class BOTAN_DLL Bzip2_Compression final : public Stream_Compression { public: /** @@ -39,7 +39,7 @@ class BOTAN_DLL Bzip2_Compression : public Stream_Compression /** * Bzip2 Deccompression */ -class BOTAN_DLL Bzip2_Decompression : public Stream_Decompression +class BOTAN_DLL Bzip2_Decompression final : public Stream_Decompression { public: std::string name() const override { return "Bzip2_Decompression"; } diff --git a/src/lib/compression/compression.h b/src/lib/compression/compression.h index 0a8079de8..66aaacdc4 100644 --- a/src/lib/compression/compression.h +++ b/src/lib/compression/compression.h @@ -58,16 +58,16 @@ class Compression_Stream class BOTAN_DLL Stream_Compression : public Compressor_Transform { public: - void update(secure_vector<byte>& buf, size_t offset = 0) override; + void update(secure_vector<byte>& buf, size_t offset = 0) final override; - void flush(secure_vector<byte>& buf, size_t offset = 0) override; + void flush(secure_vector<byte>& buf, size_t offset = 0) final override; - void finish(secure_vector<byte>& buf, size_t offset = 0) override; + void finish(secure_vector<byte>& buf, size_t offset = 0) final override; - void clear() override; + void clear() final override; private: - secure_vector<byte> start_raw(const byte[], size_t) override; + secure_vector<byte> start_raw(const byte[], size_t) final override; void process(secure_vector<byte>& buf, size_t offset, u32bit flags); @@ -80,14 +80,14 @@ class BOTAN_DLL Stream_Compression : public Compressor_Transform class BOTAN_DLL Stream_Decompression : public Compressor_Transform { public: - void update(secure_vector<byte>& buf, size_t offset = 0) override; + void update(secure_vector<byte>& buf, size_t offset = 0) final override; - void finish(secure_vector<byte>& buf, size_t offset = 0) override; + void finish(secure_vector<byte>& buf, size_t offset = 0) final override; - void clear() override; + void clear() final override; private: - secure_vector<byte> start_raw(const byte[], size_t) override; + secure_vector<byte> start_raw(const byte[], size_t) final override; void process(secure_vector<byte>& buf, size_t offset, u32bit flags); diff --git a/src/lib/compression/lzma/lzma.h b/src/lib/compression/lzma/lzma.h index 5f19c4b97..d9ea10091 100644 --- a/src/lib/compression/lzma/lzma.h +++ b/src/lib/compression/lzma/lzma.h @@ -17,7 +17,7 @@ namespace Botan { /** * LZMA Compression */ -class BOTAN_DLL LZMA_Compression : public Stream_Compression +class BOTAN_DLL LZMA_Compression final : public Stream_Compression { public: /** @@ -38,7 +38,7 @@ class BOTAN_DLL LZMA_Compression : public Stream_Compression /** * LZMA Deccompression */ -class BOTAN_DLL LZMA_Decompression : public Stream_Decompression +class BOTAN_DLL LZMA_Decompression final : public Stream_Decompression { public: std::string name() const override { return "LZMA_Decompression"; } diff --git a/src/lib/compression/zlib/zlib.h b/src/lib/compression/zlib/zlib.h index 2437e6133..6a8cead14 100644 --- a/src/lib/compression/zlib/zlib.h +++ b/src/lib/compression/zlib/zlib.h @@ -16,7 +16,7 @@ namespace Botan { /** * Zlib Compression */ -class BOTAN_DLL Zlib_Compression : public Stream_Compression +class BOTAN_DLL Zlib_Compression final : public Stream_Compression { public: /** @@ -38,7 +38,7 @@ class BOTAN_DLL Zlib_Compression : public Stream_Compression /** * Zlib Decompression */ -class BOTAN_DLL Zlib_Decompression : public Stream_Decompression +class BOTAN_DLL Zlib_Decompression final : public Stream_Decompression { public: std::string name() const override { return "Zlib_Decompression"; } @@ -50,7 +50,7 @@ class BOTAN_DLL Zlib_Decompression : public Stream_Decompression /** * Deflate Compression */ -class BOTAN_DLL Deflate_Compression : public Stream_Compression +class BOTAN_DLL Deflate_Compression final : public Stream_Compression { public: /** @@ -71,7 +71,7 @@ class BOTAN_DLL Deflate_Compression : public Stream_Compression /** * Deflate Decompression */ -class BOTAN_DLL Deflate_Decompression : public Stream_Decompression +class BOTAN_DLL Deflate_Decompression final : public Stream_Decompression { public: std::string name() const override { return "Deflate_Decompression"; } @@ -83,7 +83,7 @@ class BOTAN_DLL Deflate_Decompression : public Stream_Decompression /** * Gzip Compression */ -class BOTAN_DLL Gzip_Compression : public Stream_Compression +class BOTAN_DLL Gzip_Compression final : public Stream_Compression { public: /** @@ -106,7 +106,7 @@ class BOTAN_DLL Gzip_Compression : public Stream_Compression /** * Gzip Decompression */ -class BOTAN_DLL Gzip_Decompression : public Stream_Decompression +class BOTAN_DLL Gzip_Decompression final : public Stream_Decompression { public: std::string name() const override { return "Gzip_Decompression"; } diff --git a/src/lib/entropy/beos_stats/es_beos.h b/src/lib/entropy/beos_stats/es_beos.h index db5824f6f..a5b90a607 100644 --- a/src/lib/entropy/beos_stats/es_beos.h +++ b/src/lib/entropy/beos_stats/es_beos.h @@ -15,7 +15,7 @@ namespace Botan { /** * BeOS Entropy Source */ -class BeOS_EntropySource : public Entropy_Source +class BeOS_EntropySource final : public Entropy_Source { private: std::string name() const override { return "system_stats"; } diff --git a/src/lib/entropy/cryptoapi_rng/es_capi.h b/src/lib/entropy/cryptoapi_rng/es_capi.h index 9410e05b8..a43d5a7f2 100644 --- a/src/lib/entropy/cryptoapi_rng/es_capi.h +++ b/src/lib/entropy/cryptoapi_rng/es_capi.h @@ -16,7 +16,7 @@ namespace Botan { /** * Win32 CAPI Entropy Source */ -class Win32_CAPI_EntropySource : public Entropy_Source +class Win32_CAPI_EntropySource final : public Entropy_Source { public: std::string name() const override { return "win32_cryptoapi"; } diff --git a/src/lib/entropy/darwin_secrandom/darwin_secrandom.h b/src/lib/entropy/darwin_secrandom/darwin_secrandom.h index 970cd7941..09cdc208d 100644 --- a/src/lib/entropy/darwin_secrandom/darwin_secrandom.h +++ b/src/lib/entropy/darwin_secrandom/darwin_secrandom.h @@ -15,7 +15,7 @@ namespace Botan { /** * Entropy source using SecRandomCopyBytes from Darwin's Security.framework */ -class Darwin_SecRandom : public Entropy_Source +class Darwin_SecRandom final : public Entropy_Source { public: std::string name() const override { return "darwin_secrandom"; } diff --git a/src/lib/entropy/dev_random/dev_random.h b/src/lib/entropy/dev_random/dev_random.h index f634cf16c..1f29b2f64 100644 --- a/src/lib/entropy/dev_random/dev_random.h +++ b/src/lib/entropy/dev_random/dev_random.h @@ -17,7 +17,7 @@ namespace Botan { /** * Entropy source reading from kernel devices like /dev/random */ -class Device_EntropySource : public Entropy_Source +class Device_EntropySource final : public Entropy_Source { public: std::string name() const override { return "dev_random"; } diff --git a/src/lib/entropy/egd/es_egd.h b/src/lib/entropy/egd/es_egd.h index e03fcf009..1a624713a 100644 --- a/src/lib/entropy/egd/es_egd.h +++ b/src/lib/entropy/egd/es_egd.h @@ -18,7 +18,7 @@ namespace Botan { /** * EGD Entropy Source */ -class EGD_EntropySource : public Entropy_Source +class EGD_EntropySource final : public Entropy_Source { public: std::string name() const override { return "egd"; } diff --git a/src/lib/entropy/hres_timer/hres_timer.h b/src/lib/entropy/hres_timer/hres_timer.h index 93ced283a..d297a87b1 100644 --- a/src/lib/entropy/hres_timer/hres_timer.h +++ b/src/lib/entropy/hres_timer/hres_timer.h @@ -18,7 +18,7 @@ namespace Botan { * @note Any results from timers are marked as not contributing entropy * to the poll, as a local attacker could observe them directly. */ -class High_Resolution_Timestamp : public Entropy_Source +class High_Resolution_Timestamp final : public Entropy_Source { public: std::string name() const override { return "timestamp"; } diff --git a/src/lib/entropy/proc_walk/proc_walk.h b/src/lib/entropy/proc_walk/proc_walk.h index b67f71111..f6db8185a 100644 --- a/src/lib/entropy/proc_walk/proc_walk.h +++ b/src/lib/entropy/proc_walk/proc_walk.h @@ -23,7 +23,7 @@ class File_Descriptor_Source /** * File Tree Walking Entropy Source */ -class ProcWalking_EntropySource : public Entropy_Source +class ProcWalking_EntropySource final : public Entropy_Source { public: std::string name() const override { return "proc_walk"; } diff --git a/src/lib/entropy/rdrand/rdrand.h b/src/lib/entropy/rdrand/rdrand.h index 1fa928641..48d090775 100644 --- a/src/lib/entropy/rdrand/rdrand.h +++ b/src/lib/entropy/rdrand/rdrand.h @@ -16,7 +16,7 @@ namespace Botan { * Entropy source using the rdrand instruction first introduced on * Intel's Ivy Bridge architecture. */ -class Intel_Rdrand : public Entropy_Source +class Intel_Rdrand final : public Entropy_Source { public: std::string name() const override { return "rdrand"; } diff --git a/src/lib/entropy/rdseed/rdseed.h b/src/lib/entropy/rdseed/rdseed.h index 0f39250a1..f86c32768 100644 --- a/src/lib/entropy/rdseed/rdseed.h +++ b/src/lib/entropy/rdseed/rdseed.h @@ -16,7 +16,7 @@ namespace Botan { * Entropy source using the rdseed instruction first introduced on * Intel's Broadwell architecture. */ -class Intel_Rdseed : public Entropy_Source +class Intel_Rdseed final : public Entropy_Source { public: std::string name() const override { return "rdseed"; } diff --git a/src/lib/entropy/unix_procs/unix_procs.h b/src/lib/entropy/unix_procs/unix_procs.h index bc2fd87d1..e1749af5f 100644 --- a/src/lib/entropy/unix_procs/unix_procs.h +++ b/src/lib/entropy/unix_procs/unix_procs.h @@ -20,7 +20,7 @@ namespace Botan { * effective against local attackers as they can sample from the same * distribution. */ -class Unix_EntropySource : public Entropy_Source +class Unix_EntropySource final : public Entropy_Source { public: std::string name() const override { return "unix_procs"; } @@ -78,7 +78,7 @@ class Unix_EntropySource : public Entropy_Source secure_vector<byte> m_buf; }; -class UnixProcessInfo_EntropySource : public Entropy_Source +class UnixProcessInfo_EntropySource final : public Entropy_Source { public: std::string name() const override { return "proc_info"; } diff --git a/src/lib/entropy/win32_stats/es_win32.h b/src/lib/entropy/win32_stats/es_win32.h index 958a79e19..5dc3f7f17 100644 --- a/src/lib/entropy/win32_stats/es_win32.h +++ b/src/lib/entropy/win32_stats/es_win32.h @@ -15,7 +15,7 @@ namespace Botan { /** * Win32 Entropy Source */ -class Win32_EntropySource : public Entropy_Source +class Win32_EntropySource final : public Entropy_Source { public: std::string name() const override { return "system_stats"; } diff --git a/src/lib/filters/basefilt.h b/src/lib/filters/basefilt.h index 36c5201a1..c065fae0e 100644 --- a/src/lib/filters/basefilt.h +++ b/src/lib/filters/basefilt.h @@ -17,7 +17,7 @@ namespace Botan { /** * BitBucket is a filter which simply discards all inputs */ -struct BOTAN_DLL BitBucket : public Filter +struct BOTAN_DLL BitBucket final : public Filter { void write(const byte[], size_t) override {} diff --git a/src/lib/filters/codec_filt/b64_filt.h b/src/lib/filters/codec_filt/b64_filt.h index c827bcfdd..8761cc327 100644 --- a/src/lib/filters/codec_filt/b64_filt.h +++ b/src/lib/filters/codec_filt/b64_filt.h @@ -15,7 +15,7 @@ namespace Botan { /** * This class represents a Base64 encoder. */ -class BOTAN_DLL Base64_Encoder : public Filter +class BOTAN_DLL Base64_Encoder final : public Filter { public: std::string name() const override { return "Base64_Encoder"; } @@ -54,7 +54,7 @@ class BOTAN_DLL Base64_Encoder : public Filter /** * This object represents a Base64 decoder. */ -class BOTAN_DLL Base64_Decoder : public Filter +class BOTAN_DLL Base64_Decoder final : public Filter { public: std::string name() const override { return "Base64_Decoder"; } diff --git a/src/lib/filters/codec_filt/hex_filt.h b/src/lib/filters/codec_filt/hex_filt.h index 2399c3ec5..cb06d223f 100644 --- a/src/lib/filters/codec_filt/hex_filt.h +++ b/src/lib/filters/codec_filt/hex_filt.h @@ -16,7 +16,7 @@ namespace Botan { * Converts arbitrary binary data to hex strings, optionally with * newlines inserted */ -class BOTAN_DLL Hex_Encoder : public Filter +class BOTAN_DLL Hex_Encoder final : public Filter { public: /** @@ -56,7 +56,7 @@ class BOTAN_DLL Hex_Encoder : public Filter /** * Converts hex strings to bytes */ -class BOTAN_DLL Hex_Decoder : public Filter +class BOTAN_DLL Hex_Decoder final : public Filter { public: std::string name() const override { return "Hex_Decoder"; } diff --git a/src/lib/filters/pipe.h b/src/lib/filters/pipe.h index 7a30bb6a3..23e5b4c8d 100644 --- a/src/lib/filters/pipe.h +++ b/src/lib/filters/pipe.h @@ -24,7 +24,7 @@ namespace Botan { * collected for retrieval. If you're familiar with the Unix shell * environment, this design will sound quite familiar. */ -class BOTAN_DLL Pipe : public DataSource +class BOTAN_DLL Pipe final : public DataSource { public: /** diff --git a/src/lib/hash/checksum/adler32/adler32.h b/src/lib/hash/checksum/adler32/adler32.h index c42c184c9..73df6134a 100644 --- a/src/lib/hash/checksum/adler32/adler32.h +++ b/src/lib/hash/checksum/adler32/adler32.h @@ -15,7 +15,7 @@ namespace Botan { /** * The Adler32 checksum, used in zlib */ -class BOTAN_DLL Adler32 : public HashFunction +class BOTAN_DLL Adler32 final : public HashFunction { public: std::string name() const override { return "Adler32"; } diff --git a/src/lib/hash/checksum/crc24/crc24.h b/src/lib/hash/checksum/crc24/crc24.h index 8e9ce9315..f80ee1c2a 100644 --- a/src/lib/hash/checksum/crc24/crc24.h +++ b/src/lib/hash/checksum/crc24/crc24.h @@ -15,7 +15,7 @@ namespace Botan { /** * 24-bit cyclic redundancy check */ -class BOTAN_DLL CRC24 : public HashFunction +class BOTAN_DLL CRC24 final : public HashFunction { public: std::string name() const override { return "CRC24"; } diff --git a/src/lib/hash/checksum/crc32/crc32.h b/src/lib/hash/checksum/crc32/crc32.h index 98c9a020c..987f34608 100644 --- a/src/lib/hash/checksum/crc32/crc32.h +++ b/src/lib/hash/checksum/crc32/crc32.h @@ -15,7 +15,7 @@ namespace Botan { /** * 32-bit cyclic redundancy check */ -class BOTAN_DLL CRC32 : public HashFunction +class BOTAN_DLL CRC32 final : public HashFunction { public: std::string name() const override { return "CRC32"; } diff --git a/src/lib/hash/comb4p/comb4p.h b/src/lib/hash/comb4p/comb4p.h index 1a99934a2..c05953ea5 100644 --- a/src/lib/hash/comb4p/comb4p.h +++ b/src/lib/hash/comb4p/comb4p.h @@ -16,7 +16,7 @@ namespace Botan { * Combines two hash functions using a Feistel scheme. Described in * "On the Security of Hash Function Combiners", Anja Lehmann */ -class BOTAN_DLL Comb4P : public HashFunction +class BOTAN_DLL Comb4P final : public HashFunction { public: /** diff --git a/src/lib/hash/gost_3411/gost_3411.h b/src/lib/hash/gost_3411/gost_3411.h index 326873d38..16f6a4954 100644 --- a/src/lib/hash/gost_3411/gost_3411.h +++ b/src/lib/hash/gost_3411/gost_3411.h @@ -16,7 +16,7 @@ namespace Botan { /** * GOST 34.11 */ -class BOTAN_DLL GOST_34_11 : public HashFunction +class BOTAN_DLL GOST_34_11 final : public HashFunction { public: std::string name() const override { return "GOST-R-34.11-94" ; } diff --git a/src/lib/hash/has160/has160.h b/src/lib/hash/has160/has160.h index ca9be03b0..7ef090eb7 100644 --- a/src/lib/hash/has160/has160.h +++ b/src/lib/hash/has160/has160.h @@ -16,7 +16,7 @@ namespace Botan { * HAS-160, a Korean hash function standardized in * TTAS.KO-12.0011/R1. Used in conjunction with KCDSA */ -class BOTAN_DLL HAS_160 : public MDx_HashFunction +class BOTAN_DLL HAS_160 final : public MDx_HashFunction { public: std::string name() const override { return "HAS-160"; } diff --git a/src/lib/hash/keccak/keccak.h b/src/lib/hash/keccak/keccak.h index c08b6c4e4..7929dd502 100644 --- a/src/lib/hash/keccak/keccak.h +++ b/src/lib/hash/keccak/keccak.h @@ -17,7 +17,7 @@ namespace Botan { /** * Keccak[1600], a SHA-3 candidate */ -class BOTAN_DLL Keccak_1600 : public HashFunction +class BOTAN_DLL Keccak_1600 final : public HashFunction { public: diff --git a/src/lib/hash/md2/md2.h b/src/lib/hash/md2/md2.h index 8209d49d2..ab29a49cb 100644 --- a/src/lib/hash/md2/md2.h +++ b/src/lib/hash/md2/md2.h @@ -15,7 +15,7 @@ namespace Botan { /** * MD2 */ -class BOTAN_DLL MD2 : public HashFunction +class BOTAN_DLL MD2 final : public HashFunction { public: std::string name() const override { return "MD2"; } diff --git a/src/lib/hash/md4/md4.h b/src/lib/hash/md4/md4.h index a0e481773..8b7ab5d70 100644 --- a/src/lib/hash/md4/md4.h +++ b/src/lib/hash/md4/md4.h @@ -15,7 +15,7 @@ namespace Botan { /** * MD4 */ -class BOTAN_DLL MD4 : public MDx_HashFunction +class BOTAN_DLL MD4 final : public MDx_HashFunction { public: std::string name() const override { return "MD4"; } @@ -29,14 +29,15 @@ class BOTAN_DLL MD4 : public MDx_HashFunction protected: void compress_n(const byte input[], size_t blocks) override; void copy_out(byte[]) override; + private: /** - * The message buffer, exposed for use by subclasses (x86 asm) + * The message buffer */ secure_vector<u32bit> m_M; /** - * The digest value, exposed for use by subclasses (x86 asm) + * The digest value */ secure_vector<u32bit> m_digest; }; diff --git a/src/lib/hash/md5/md5.h b/src/lib/hash/md5/md5.h index b0465c838..bbeffee50 100644 --- a/src/lib/hash/md5/md5.h +++ b/src/lib/hash/md5/md5.h @@ -15,7 +15,7 @@ namespace Botan { /** * MD5 */ -class BOTAN_DLL MD5 : public MDx_HashFunction +class BOTAN_DLL MD5 final : public MDx_HashFunction { public: std::string name() const override { return "MD5"; } @@ -30,13 +30,14 @@ class BOTAN_DLL MD5 : public MDx_HashFunction void compress_n(const byte[], size_t blocks) override; void copy_out(byte[]) override; + private: /** - * The message buffer, exposed for use by subclasses (x86 asm) + * The message buffer */ secure_vector<u32bit> m_M; /** - * The digest value, exposed for use by subclasses (x86 asm) + * The digest value */ secure_vector<u32bit> m_digest; }; diff --git a/src/lib/hash/par_hash/par_hash.h b/src/lib/hash/par_hash/par_hash.h index 432fed466..b0e2ff828 100644 --- a/src/lib/hash/par_hash/par_hash.h +++ b/src/lib/hash/par_hash/par_hash.h @@ -16,7 +16,7 @@ namespace Botan { /** * Parallel Hashes */ -class BOTAN_DLL Parallel : public HashFunction +class BOTAN_DLL Parallel final : public HashFunction { public: void clear() override; diff --git a/src/lib/hash/rmd128/rmd128.h b/src/lib/hash/rmd128/rmd128.h index e4ef551ea..ba36ab902 100644 --- a/src/lib/hash/rmd128/rmd128.h +++ b/src/lib/hash/rmd128/rmd128.h @@ -15,7 +15,7 @@ namespace Botan { /** * RIPEMD-128 */ -class BOTAN_DLL RIPEMD_128 : public MDx_HashFunction +class BOTAN_DLL RIPEMD_128 final : public MDx_HashFunction { public: std::string name() const override { return "RIPEMD-128"; } diff --git a/src/lib/hash/rmd160/rmd160.h b/src/lib/hash/rmd160/rmd160.h index 4ee6863de..0e4103101 100644 --- a/src/lib/hash/rmd160/rmd160.h +++ b/src/lib/hash/rmd160/rmd160.h @@ -15,7 +15,7 @@ namespace Botan { /** * RIPEMD-160 */ -class BOTAN_DLL RIPEMD_160 : public MDx_HashFunction +class BOTAN_DLL RIPEMD_160 final : public MDx_HashFunction { public: std::string name() const override { return "RIPEMD-160"; } diff --git a/src/lib/hash/sha1_sse2/sha1_sse2.h b/src/lib/hash/sha1_sse2/sha1_sse2.h index 20bb63727..a38600762 100644 --- a/src/lib/hash/sha1_sse2/sha1_sse2.h +++ b/src/lib/hash/sha1_sse2/sha1_sse2.h @@ -15,7 +15,7 @@ namespace Botan { /** * SHA-160 using SSE2 for the message expansion */ -class BOTAN_DLL SHA_160_SSE2 : public SHA_160 +class BOTAN_DLL SHA_160_SSE2 final : public SHA_160 { public: HashFunction* clone() const override { return new SHA_160_SSE2; } diff --git a/src/lib/hash/sha2_32/sha2_32.h b/src/lib/hash/sha2_32/sha2_32.h index 46d022ae8..528fe9cfd 100644 --- a/src/lib/hash/sha2_32/sha2_32.h +++ b/src/lib/hash/sha2_32/sha2_32.h @@ -16,7 +16,7 @@ namespace Botan { /** * SHA-224 */ -class BOTAN_DLL SHA_224 : public MDx_HashFunction +class BOTAN_DLL SHA_224 final : public MDx_HashFunction { public: std::string name() const override { return "SHA-224"; } @@ -37,7 +37,7 @@ class BOTAN_DLL SHA_224 : public MDx_HashFunction /** * SHA-256 */ -class BOTAN_DLL SHA_256 : public MDx_HashFunction +class BOTAN_DLL SHA_256 final : public MDx_HashFunction { public: std::string name() const override { return "SHA-256"; } diff --git a/src/lib/hash/sha2_64/sha2_64.h b/src/lib/hash/sha2_64/sha2_64.h index 736b33d12..a38f12dae 100644 --- a/src/lib/hash/sha2_64/sha2_64.h +++ b/src/lib/hash/sha2_64/sha2_64.h @@ -15,7 +15,7 @@ namespace Botan { /** * SHA-384 */ -class BOTAN_DLL SHA_384 : public MDx_HashFunction +class BOTAN_DLL SHA_384 final : public MDx_HashFunction { public: std::string name() const override { return "SHA-384"; } @@ -36,7 +36,7 @@ class BOTAN_DLL SHA_384 : public MDx_HashFunction /** * SHA-512 */ -class BOTAN_DLL SHA_512 : public MDx_HashFunction +class BOTAN_DLL SHA_512 final : public MDx_HashFunction { public: std::string name() const override { return "SHA-512"; } @@ -57,7 +57,7 @@ class BOTAN_DLL SHA_512 : public MDx_HashFunction /** * SHA-512/256 */ -class BOTAN_DLL SHA_512_256 : public MDx_HashFunction +class BOTAN_DLL SHA_512_256 final : public MDx_HashFunction { public: std::string name() const override { return "SHA-512-256"; } diff --git a/src/lib/hash/skein/skein_512.h b/src/lib/hash/skein/skein_512.h index 9d3c69fb2..b9d0deb2e 100644 --- a/src/lib/hash/skein/skein_512.h +++ b/src/lib/hash/skein/skein_512.h @@ -18,7 +18,7 @@ namespace Botan { /** * Skein-512, a SHA-3 candidate */ -class BOTAN_DLL Skein_512 : public HashFunction +class BOTAN_DLL Skein_512 final : public HashFunction { public: /** diff --git a/src/lib/hash/tiger/tiger.h b/src/lib/hash/tiger/tiger.h index 6634b544f..fb0524d44 100644 --- a/src/lib/hash/tiger/tiger.h +++ b/src/lib/hash/tiger/tiger.h @@ -15,7 +15,7 @@ namespace Botan { /** * Tiger */ -class BOTAN_DLL Tiger : public MDx_HashFunction +class BOTAN_DLL Tiger final : public MDx_HashFunction { public: std::string name() const override; diff --git a/src/lib/hash/whirlpool/whrlpool.h b/src/lib/hash/whirlpool/whrlpool.h index c59d16cda..d7db1de28 100644 --- a/src/lib/hash/whirlpool/whrlpool.h +++ b/src/lib/hash/whirlpool/whrlpool.h @@ -15,7 +15,7 @@ namespace Botan { /** * Whirlpool */ -class BOTAN_DLL Whirlpool : public MDx_HashFunction +class BOTAN_DLL Whirlpool final : public MDx_HashFunction { public: std::string name() const override { return "Whirlpool"; } diff --git a/src/lib/kdf/hkdf/hkdf.h b/src/lib/kdf/hkdf/hkdf.h index d8389a886..d4e4006ca 100644 --- a/src/lib/kdf/hkdf/hkdf.h +++ b/src/lib/kdf/hkdf/hkdf.h @@ -18,7 +18,7 @@ namespace Botan { * HKDF, see @rfc 5869 for details * This is only the expansion portion of HKDF */ -class BOTAN_DLL HKDF : public KDF +class BOTAN_DLL HKDF final : public KDF { public: HKDF(MessageAuthenticationCode* prf) : m_prf(prf) {} diff --git a/src/lib/kdf/kdf1/kdf1.h b/src/lib/kdf/kdf1/kdf1.h index a22d19d97..2697685ac 100644 --- a/src/lib/kdf/kdf1/kdf1.h +++ b/src/lib/kdf/kdf1/kdf1.h @@ -16,7 +16,7 @@ namespace Botan { /** * KDF1, from IEEE 1363 */ -class BOTAN_DLL KDF1 : public KDF +class BOTAN_DLL KDF1 final : public KDF { public: std::string name() const override { return "KDF1(" + m_hash->name() + ")"; } diff --git a/src/lib/kdf/kdf2/kdf2.h b/src/lib/kdf/kdf2/kdf2.h index e8a8be1fa..ad62ed301 100644 --- a/src/lib/kdf/kdf2/kdf2.h +++ b/src/lib/kdf/kdf2/kdf2.h @@ -16,7 +16,7 @@ namespace Botan { /** * KDF2, from IEEE 1363 */ -class BOTAN_DLL KDF2 : public KDF +class BOTAN_DLL KDF2 final : public KDF { public: std::string name() const override { return "KDF2(" + m_hash->name() + ")"; } diff --git a/src/lib/kdf/prf_tls/prf_tls.h b/src/lib/kdf/prf_tls/prf_tls.h index bb7cc2c4f..f000484a7 100644 --- a/src/lib/kdf/prf_tls/prf_tls.h +++ b/src/lib/kdf/prf_tls/prf_tls.h @@ -16,7 +16,7 @@ namespace Botan { /** * PRF used in TLS 1.0/1.1 */ -class BOTAN_DLL TLS_PRF : public KDF +class BOTAN_DLL TLS_PRF final : public KDF { public: std::string name() const override { return "TLS-PRF"; } @@ -36,7 +36,7 @@ class BOTAN_DLL TLS_PRF : public KDF /** * PRF used in TLS 1.2 */ -class BOTAN_DLL TLS_12_PRF : public KDF +class BOTAN_DLL TLS_12_PRF final : public KDF { public: std::string name() const override { return "TLS-12-PRF(" + m_mac->name() + ")"; } diff --git a/src/lib/kdf/prf_x942/prf_x942.h b/src/lib/kdf/prf_x942/prf_x942.h index d0b23067c..f31036649 100644 --- a/src/lib/kdf/prf_x942/prf_x942.h +++ b/src/lib/kdf/prf_x942/prf_x942.h @@ -15,7 +15,7 @@ namespace Botan { /** * PRF from ANSI X9.42 */ -class BOTAN_DLL X942_PRF : public KDF +class BOTAN_DLL X942_PRF final : public KDF { public: std::string name() const override { return "X942_PRF(" + m_key_wrap_oid + ")"; } diff --git a/src/lib/mac/cbc_mac/cbc_mac.h b/src/lib/mac/cbc_mac/cbc_mac.h index f1c6d5230..06d1dc852 100644 --- a/src/lib/mac/cbc_mac/cbc_mac.h +++ b/src/lib/mac/cbc_mac/cbc_mac.h @@ -16,7 +16,7 @@ namespace Botan { /** * CBC-MAC */ -class BOTAN_DLL CBC_MAC : public MessageAuthenticationCode +class BOTAN_DLL CBC_MAC final : public MessageAuthenticationCode { public: std::string name() const override; diff --git a/src/lib/mac/cmac/cmac.h b/src/lib/mac/cmac/cmac.h index 4f8d22b76..5a38de28d 100644 --- a/src/lib/mac/cmac/cmac.h +++ b/src/lib/mac/cmac/cmac.h @@ -16,7 +16,7 @@ namespace Botan { /** * CMAC, also known as OMAC1 */ -class BOTAN_DLL CMAC : public MessageAuthenticationCode +class BOTAN_DLL CMAC final : public MessageAuthenticationCode { public: std::string name() const override; diff --git a/src/lib/mac/hmac/hmac.h b/src/lib/mac/hmac/hmac.h index 3f5652352..5154739d2 100644 --- a/src/lib/mac/hmac/hmac.h +++ b/src/lib/mac/hmac/hmac.h @@ -16,7 +16,7 @@ namespace Botan { /** * HMAC */ -class BOTAN_DLL HMAC : public MessageAuthenticationCode +class BOTAN_DLL HMAC final : public MessageAuthenticationCode { public: void clear() override; diff --git a/src/lib/mac/poly1305/poly1305.h b/src/lib/mac/poly1305/poly1305.h index 20bc9b5ad..740313122 100644 --- a/src/lib/mac/poly1305/poly1305.h +++ b/src/lib/mac/poly1305/poly1305.h @@ -17,7 +17,7 @@ namespace Botan { * DJB's Poly1305 * Important note: each key can only be used once */ -class BOTAN_DLL Poly1305 : public MessageAuthenticationCode +class BOTAN_DLL Poly1305 final : public MessageAuthenticationCode { public: std::string name() const override { return "Poly1305"; } diff --git a/src/lib/mac/siphash/siphash.h b/src/lib/mac/siphash/siphash.h index 574835ca4..d774fe5e7 100644 --- a/src/lib/mac/siphash/siphash.h +++ b/src/lib/mac/siphash/siphash.h @@ -12,7 +12,7 @@ namespace Botan { -class BOTAN_DLL SipHash : public MessageAuthenticationCode +class BOTAN_DLL SipHash final : public MessageAuthenticationCode { public: SipHash(size_t c = 2, size_t d = 4) : m_C(c), m_D(d) {} diff --git a/src/lib/mac/x919_mac/x919_mac.h b/src/lib/mac/x919_mac/x919_mac.h index 9cdcd1527..904931d20 100644 --- a/src/lib/mac/x919_mac/x919_mac.h +++ b/src/lib/mac/x919_mac/x919_mac.h @@ -16,7 +16,7 @@ namespace Botan { /** * DES/3DES-based MAC from ANSI X9.19 */ -class BOTAN_DLL ANSI_X919_MAC : public MessageAuthenticationCode +class BOTAN_DLL ANSI_X919_MAC final : public MessageAuthenticationCode { public: void clear() override; diff --git a/src/lib/math/ec_gfp/curve_gfp.cpp b/src/lib/math/ec_gfp/curve_gfp.cpp index 96fe873af..66614c5c5 100644 --- a/src/lib/math/ec_gfp/curve_gfp.cpp +++ b/src/lib/math/ec_gfp/curve_gfp.cpp @@ -14,7 +14,7 @@ namespace Botan { namespace { -class CurveGFp_Montgomery : public CurveGFp_Repr +class CurveGFp_Montgomery final : public CurveGFp_Repr { public: CurveGFp_Montgomery(const BigInt& p, const BigInt& a, const BigInt& b) : @@ -203,7 +203,7 @@ void CurveGFp_NIST::curve_sqr(BigInt& z, const BigInt& x, /** * The NIST P-192 curve */ -class CurveGFp_P192 : public CurveGFp_NIST +class CurveGFp_P192 final : public CurveGFp_NIST { public: CurveGFp_P192(const BigInt& a, const BigInt& b) : CurveGFp_NIST(192, a, b) {} @@ -215,7 +215,7 @@ class CurveGFp_P192 : public CurveGFp_NIST /** * The NIST P-224 curve */ -class CurveGFp_P224 : public CurveGFp_NIST +class CurveGFp_P224 final : public CurveGFp_NIST { public: CurveGFp_P224(const BigInt& a, const BigInt& b) : CurveGFp_NIST(224, a, b) {} @@ -227,7 +227,7 @@ class CurveGFp_P224 : public CurveGFp_NIST /** * The NIST P-256 curve */ -class CurveGFp_P256 : public CurveGFp_NIST +class CurveGFp_P256 final : public CurveGFp_NIST { public: CurveGFp_P256(const BigInt& a, const BigInt& b) : CurveGFp_NIST(256, a, b) {} @@ -239,7 +239,7 @@ class CurveGFp_P256 : public CurveGFp_NIST /** * The NIST P-384 curve */ -class CurveGFp_P384 : public CurveGFp_NIST +class CurveGFp_P384 final : public CurveGFp_NIST { public: CurveGFp_P384(const BigInt& a, const BigInt& b) : CurveGFp_NIST(384, a, b) {} @@ -253,7 +253,7 @@ class CurveGFp_P384 : public CurveGFp_NIST /** * The NIST P-521 curve */ -class CurveGFp_P521 : public CurveGFp_NIST +class CurveGFp_P521 final : public CurveGFp_NIST { public: CurveGFp_P521(const BigInt& a, const BigInt& b) : CurveGFp_NIST(521, a, b) {} diff --git a/src/lib/modes/aead/ccm/ccm.h b/src/lib/modes/aead/ccm/ccm.h index 58ca447e8..8277a8f93 100644 --- a/src/lib/modes/aead/ccm/ccm.h +++ b/src/lib/modes/aead/ccm/ccm.h @@ -74,7 +74,7 @@ class BOTAN_DLL CCM_Mode : public AEAD_Mode /** * CCM Encryption */ -class BOTAN_DLL CCM_Encryption : public CCM_Mode +class BOTAN_DLL CCM_Encryption final : public CCM_Mode { public: /** @@ -98,7 +98,7 @@ class BOTAN_DLL CCM_Encryption : public CCM_Mode /** * CCM Decryption */ -class BOTAN_DLL CCM_Decryption : public CCM_Mode +class BOTAN_DLL CCM_Decryption final : public CCM_Mode { public: /** diff --git a/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.h b/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.h index f496590af..5aa2dc010 100644 --- a/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.h +++ b/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.h @@ -58,7 +58,7 @@ class BOTAN_DLL ChaCha20Poly1305_Mode : public AEAD_Mode /** * ChaCha20Poly1305 Encryption */ -class BOTAN_DLL ChaCha20Poly1305_Encryption : public ChaCha20Poly1305_Mode +class BOTAN_DLL ChaCha20Poly1305_Encryption final : public ChaCha20Poly1305_Mode { public: size_t output_length(size_t input_length) const override @@ -74,7 +74,7 @@ class BOTAN_DLL ChaCha20Poly1305_Encryption : public ChaCha20Poly1305_Mode /** * ChaCha20Poly1305 Decryption */ -class BOTAN_DLL ChaCha20Poly1305_Decryption : public ChaCha20Poly1305_Mode +class BOTAN_DLL ChaCha20Poly1305_Decryption final : public ChaCha20Poly1305_Mode { public: size_t output_length(size_t input_length) const override diff --git a/src/lib/modes/aead/eax/eax.h b/src/lib/modes/aead/eax/eax.h index 970bb9d43..e3d942d5e 100644 --- a/src/lib/modes/aead/eax/eax.h +++ b/src/lib/modes/aead/eax/eax.h @@ -62,7 +62,7 @@ class BOTAN_DLL EAX_Mode : public AEAD_Mode /** * EAX Encryption */ -class BOTAN_DLL EAX_Encryption : public EAX_Mode +class BOTAN_DLL EAX_Encryption final : public EAX_Mode { public: /** @@ -85,7 +85,7 @@ class BOTAN_DLL EAX_Encryption : public EAX_Mode /** * EAX Decryption */ -class BOTAN_DLL EAX_Decryption : public EAX_Mode +class BOTAN_DLL EAX_Decryption final : public EAX_Mode { public: /** diff --git a/src/lib/modes/aead/gcm/gcm.h b/src/lib/modes/aead/gcm/gcm.h index 88afbb43c..ba0d6cad8 100644 --- a/src/lib/modes/aead/gcm/gcm.h +++ b/src/lib/modes/aead/gcm/gcm.h @@ -55,7 +55,7 @@ class BOTAN_DLL GCM_Mode : public AEAD_Mode /** * GCM Encryption */ -class BOTAN_DLL GCM_Encryption : public GCM_Mode +class BOTAN_DLL GCM_Encryption final : public GCM_Mode { public: /** @@ -78,7 +78,7 @@ class BOTAN_DLL GCM_Encryption : public GCM_Mode /** * GCM Decryption */ -class BOTAN_DLL GCM_Decryption : public GCM_Mode +class BOTAN_DLL GCM_Decryption final : public GCM_Mode { public: /** diff --git a/src/lib/modes/aead/ocb/ocb.h b/src/lib/modes/aead/ocb/ocb.h index 53723a730..92edce970 100644 --- a/src/lib/modes/aead/ocb/ocb.h +++ b/src/lib/modes/aead/ocb/ocb.h @@ -73,7 +73,7 @@ class BOTAN_DLL OCB_Mode : public AEAD_Mode secure_vector<byte> m_stretch; }; -class BOTAN_DLL OCB_Encryption : public OCB_Mode +class BOTAN_DLL OCB_Encryption final : public OCB_Mode { public: /** @@ -95,7 +95,7 @@ class BOTAN_DLL OCB_Encryption : public OCB_Mode void encrypt(byte input[], size_t blocks); }; -class BOTAN_DLL OCB_Decryption : public OCB_Mode +class BOTAN_DLL OCB_Decryption final : public OCB_Mode { public: /** diff --git a/src/lib/modes/aead/siv/siv.h b/src/lib/modes/aead/siv/siv.h index 8336026cb..d46c7dcfd 100644 --- a/src/lib/modes/aead/siv/siv.h +++ b/src/lib/modes/aead/siv/siv.h @@ -67,7 +67,7 @@ class BOTAN_DLL SIV_Mode : public AEAD_Mode /** * SIV Encryption */ -class BOTAN_DLL SIV_Encryption : public SIV_Mode +class BOTAN_DLL SIV_Encryption final : public SIV_Mode { public: /** @@ -86,7 +86,7 @@ class BOTAN_DLL SIV_Encryption : public SIV_Mode /** * SIV Decryption */ -class BOTAN_DLL SIV_Decryption : public SIV_Mode +class BOTAN_DLL SIV_Decryption final : public SIV_Mode { public: /** diff --git a/src/lib/modes/cbc/cbc.h b/src/lib/modes/cbc/cbc.h index 7fbcc8837..9a767d3a0 100644 --- a/src/lib/modes/cbc/cbc.h +++ b/src/lib/modes/cbc/cbc.h @@ -77,7 +77,7 @@ class BOTAN_DLL CBC_Encryption : public CBC_Mode /** * CBC Encryption with ciphertext stealing (CBC-CS3 variant) */ -class BOTAN_DLL CTS_Encryption : public CBC_Encryption +class BOTAN_DLL CTS_Encryption final : public CBC_Encryption { public: CTS_Encryption(BlockCipher* cipher) : CBC_Encryption(cipher, nullptr) {} @@ -114,7 +114,7 @@ class BOTAN_DLL CBC_Decryption : public CBC_Mode /** * CBC Decryption with ciphertext stealing (CBC-CS3 variant) */ -class BOTAN_DLL CTS_Decryption : public CBC_Decryption +class BOTAN_DLL CTS_Decryption final : public CBC_Decryption { public: CTS_Decryption(BlockCipher* cipher) : CBC_Decryption(cipher, nullptr) {} diff --git a/src/lib/modes/cfb/cfb.h b/src/lib/modes/cfb/cfb.h index 25c42e4b0..49321a1c9 100644 --- a/src/lib/modes/cfb/cfb.h +++ b/src/lib/modes/cfb/cfb.h @@ -58,7 +58,7 @@ class BOTAN_DLL CFB_Mode : public Cipher_Mode /** * CFB Encryption */ -class BOTAN_DLL CFB_Encryption : public CFB_Mode +class BOTAN_DLL CFB_Encryption final : public CFB_Mode { public: CFB_Encryption(BlockCipher* cipher, size_t feedback_bits) : @@ -72,7 +72,7 @@ class BOTAN_DLL CFB_Encryption : public CFB_Mode /** * CFB Decryption */ -class BOTAN_DLL CFB_Decryption : public CFB_Mode +class BOTAN_DLL CFB_Decryption final : public CFB_Mode { public: CFB_Decryption(BlockCipher* cipher, size_t feedback_bits) : diff --git a/src/lib/modes/ecb/ecb.h b/src/lib/modes/ecb/ecb.h index e885e8890..aebd4c1a5 100644 --- a/src/lib/modes/ecb/ecb.h +++ b/src/lib/modes/ecb/ecb.h @@ -49,7 +49,7 @@ class BOTAN_DLL ECB_Mode : public Cipher_Mode /** * ECB Encryption */ -class BOTAN_DLL ECB_Encryption : public ECB_Mode +class BOTAN_DLL ECB_Encryption final : public ECB_Mode { public: ECB_Encryption(BlockCipher* cipher, BlockCipherModePaddingMethod* padding) : @@ -67,7 +67,7 @@ class BOTAN_DLL ECB_Encryption : public ECB_Mode /** * ECB Decryption */ -class BOTAN_DLL ECB_Decryption : public ECB_Mode +class BOTAN_DLL ECB_Decryption final : public ECB_Mode { public: ECB_Decryption(BlockCipher* cipher, BlockCipherModePaddingMethod* padding) : diff --git a/src/lib/modes/mode_pad/mode_pad.h b/src/lib/modes/mode_pad/mode_pad.h index 91102c66c..0a775b1ea 100644 --- a/src/lib/modes/mode_pad/mode_pad.h +++ b/src/lib/modes/mode_pad/mode_pad.h @@ -56,7 +56,7 @@ class BOTAN_DLL BlockCipherModePaddingMethod /** * PKCS#7 Padding */ -class BOTAN_DLL PKCS7_Padding : public BlockCipherModePaddingMethod +class BOTAN_DLL PKCS7_Padding final : public BlockCipherModePaddingMethod { public: void add_padding(secure_vector<byte>& buffer, @@ -73,7 +73,7 @@ class BOTAN_DLL PKCS7_Padding : public BlockCipherModePaddingMethod /** * ANSI X9.23 Padding */ -class BOTAN_DLL ANSI_X923_Padding : public BlockCipherModePaddingMethod +class BOTAN_DLL ANSI_X923_Padding final : public BlockCipherModePaddingMethod { public: void add_padding(secure_vector<byte>& buffer, @@ -90,7 +90,7 @@ class BOTAN_DLL ANSI_X923_Padding : public BlockCipherModePaddingMethod /** * One And Zeros Padding */ -class BOTAN_DLL OneAndZeros_Padding : public BlockCipherModePaddingMethod +class BOTAN_DLL OneAndZeros_Padding final : public BlockCipherModePaddingMethod { public: void add_padding(secure_vector<byte>& buffer, @@ -107,7 +107,7 @@ class BOTAN_DLL OneAndZeros_Padding : public BlockCipherModePaddingMethod /** * Null Padding */ -class BOTAN_DLL Null_Padding : public BlockCipherModePaddingMethod +class BOTAN_DLL Null_Padding final : public BlockCipherModePaddingMethod { public: void add_padding(secure_vector<byte>&, size_t, size_t) const override {} diff --git a/src/lib/modes/xts/xts.h b/src/lib/modes/xts/xts.h index b0a46144f..2df18e82f 100644 --- a/src/lib/modes/xts/xts.h +++ b/src/lib/modes/xts/xts.h @@ -52,7 +52,7 @@ class BOTAN_DLL XTS_Mode : public Cipher_Mode /** * IEEE P1619 XTS Encryption */ -class BOTAN_DLL XTS_Encryption : public XTS_Mode +class BOTAN_DLL XTS_Encryption final : public XTS_Mode { public: XTS_Encryption(BlockCipher* cipher) : XTS_Mode(cipher) {} @@ -67,7 +67,7 @@ class BOTAN_DLL XTS_Encryption : public XTS_Mode /** * IEEE P1619 XTS Decryption */ -class BOTAN_DLL XTS_Decryption : public XTS_Mode +class BOTAN_DLL XTS_Decryption final : public XTS_Mode { public: XTS_Decryption(BlockCipher* cipher) : XTS_Mode(cipher) {} diff --git a/src/lib/pbkdf/pbkdf1/pbkdf1.h b/src/lib/pbkdf/pbkdf1/pbkdf1.h index 3296f8887..22b04a3a0 100644 --- a/src/lib/pbkdf/pbkdf1/pbkdf1.h +++ b/src/lib/pbkdf/pbkdf1/pbkdf1.h @@ -18,7 +18,7 @@ namespace Botan { * Can only generate a key up to the size of the hash output. * Unless needed for backwards compatibility, use PKCS5_PBKDF2 */ -class BOTAN_DLL PKCS5_PBKDF1 : public PBKDF +class BOTAN_DLL PKCS5_PBKDF1 final : public PBKDF { public: /** diff --git a/src/lib/pbkdf/pbkdf2/pbkdf2.h b/src/lib/pbkdf/pbkdf2/pbkdf2.h index 5a03e9ff5..1918f5dd2 100644 --- a/src/lib/pbkdf/pbkdf2/pbkdf2.h +++ b/src/lib/pbkdf/pbkdf2/pbkdf2.h @@ -25,7 +25,7 @@ BOTAN_DLL size_t pbkdf2(MessageAuthenticationCode& prf, /** * PKCS #5 PBKDF2 */ -class BOTAN_DLL PKCS5_PBKDF2 : public PBKDF +class BOTAN_DLL PKCS5_PBKDF2 final : public PBKDF { public: std::string name() const override diff --git a/src/lib/pk_pad/eme_oaep/oaep.h b/src/lib/pk_pad/eme_oaep/oaep.h index 13e6efeec..22d009f5f 100644 --- a/src/lib/pk_pad/eme_oaep/oaep.h +++ b/src/lib/pk_pad/eme_oaep/oaep.h @@ -16,7 +16,7 @@ namespace Botan { /** * OAEP (called EME1 in IEEE 1363 and in earlier versions of the library) */ -class BOTAN_DLL OAEP : public EME +class BOTAN_DLL OAEP final : public EME { public: size_t maximum_input_size(size_t) const override; diff --git a/src/lib/pk_pad/eme_pkcs1/eme_pkcs.h b/src/lib/pk_pad/eme_pkcs1/eme_pkcs.h index 83c99e61b..148ab7e20 100644 --- a/src/lib/pk_pad/eme_pkcs1/eme_pkcs.h +++ b/src/lib/pk_pad/eme_pkcs1/eme_pkcs.h @@ -15,7 +15,7 @@ namespace Botan { /** * EME from PKCS #1 v1.5 */ -class BOTAN_DLL EME_PKCS1v15 : public EME +class BOTAN_DLL EME_PKCS1v15 final : public EME { public: size_t maximum_input_size(size_t) const override; diff --git a/src/lib/pk_pad/eme_raw/eme_raw.h b/src/lib/pk_pad/eme_raw/eme_raw.h index 04604c72d..ae57587a3 100644 --- a/src/lib/pk_pad/eme_raw/eme_raw.h +++ b/src/lib/pk_pad/eme_raw/eme_raw.h @@ -11,7 +11,7 @@ namespace Botan { -class BOTAN_DLL EME_Raw : public EME +class BOTAN_DLL EME_Raw final : public EME { public: size_t maximum_input_size(size_t i) const override; diff --git a/src/lib/pk_pad/emsa1_bsi/emsa1_bsi.h b/src/lib/pk_pad/emsa1_bsi/emsa1_bsi.h index 24d8b99e2..f00c0a101 100644 --- a/src/lib/pk_pad/emsa1_bsi/emsa1_bsi.h +++ b/src/lib/pk_pad/emsa1_bsi/emsa1_bsi.h @@ -18,7 +18,7 @@ namespace Botan { * only hash values which are less or equal than the maximum key * length. The implementation comes from InSiTo */ -class BOTAN_DLL EMSA1_BSI : public EMSA1 +class BOTAN_DLL EMSA1_BSI final : public EMSA1 { public: /** diff --git a/src/lib/pk_pad/emsa_pkcs1/emsa_pkcs1.h b/src/lib/pk_pad/emsa_pkcs1/emsa_pkcs1.h index fa3fc2ae2..f217af764 100644 --- a/src/lib/pk_pad/emsa_pkcs1/emsa_pkcs1.h +++ b/src/lib/pk_pad/emsa_pkcs1/emsa_pkcs1.h @@ -18,7 +18,7 @@ namespace Botan { * aka PKCS #1 block type 1 * aka EMSA3 from IEEE 1363 */ -class BOTAN_DLL EMSA_PKCS1v15 : public EMSA +class BOTAN_DLL EMSA_PKCS1v15 final : public EMSA { public: static EMSA* make(const EMSA::Spec& spec); @@ -47,7 +47,7 @@ class BOTAN_DLL EMSA_PKCS1v15 : public EMSA * (which according to QCA docs is "identical to PKCS#11's CKM_RSA_PKCS * mechanism", something I have not confirmed) */ -class BOTAN_DLL EMSA_PKCS1v15_Raw : public EMSA +class BOTAN_DLL EMSA_PKCS1v15_Raw final : public EMSA { public: void update(const byte[], size_t) override; diff --git a/src/lib/pk_pad/emsa_pssr/pssr.h b/src/lib/pk_pad/emsa_pssr/pssr.h index 399090389..edbda4640 100644 --- a/src/lib/pk_pad/emsa_pssr/pssr.h +++ b/src/lib/pk_pad/emsa_pssr/pssr.h @@ -16,7 +16,7 @@ namespace Botan { /** * PSSR (called EMSA4 in IEEE 1363 and in old versions of the library) */ -class BOTAN_DLL PSSR : public EMSA +class BOTAN_DLL PSSR final : public EMSA { public: diff --git a/src/lib/pk_pad/emsa_raw/emsa_raw.h b/src/lib/pk_pad/emsa_raw/emsa_raw.h index 8eb6dc788..272d34b0e 100644 --- a/src/lib/pk_pad/emsa_raw/emsa_raw.h +++ b/src/lib/pk_pad/emsa_raw/emsa_raw.h @@ -16,7 +16,7 @@ namespace Botan { * EMSA-Raw - sign inputs directly * Don't use this unless you know what you are doing. */ -class BOTAN_DLL EMSA_Raw : public EMSA +class BOTAN_DLL EMSA_Raw final : public EMSA { private: void update(const byte[], size_t) override; diff --git a/src/lib/pk_pad/emsa_x931/emsa_x931.h b/src/lib/pk_pad/emsa_x931/emsa_x931.h index 29bad4a4a..3372ac13c 100644 --- a/src/lib/pk_pad/emsa_x931/emsa_x931.h +++ b/src/lib/pk_pad/emsa_x931/emsa_x931.h @@ -18,7 +18,7 @@ namespace Botan { * Useful for Rabin-Williams, also sometimes used with RSA in * odd protocols. */ -class BOTAN_DLL EMSA_X931 : public EMSA +class BOTAN_DLL EMSA_X931 final : public EMSA { public: /** diff --git a/src/lib/stream/chacha/chacha.h b/src/lib/stream/chacha/chacha.h index df6e1c9c0..92f8ef035 100644 --- a/src/lib/stream/chacha/chacha.h +++ b/src/lib/stream/chacha/chacha.h @@ -15,7 +15,7 @@ namespace Botan { /** * DJB's ChaCha (http://cr.yp.to/chacha.html) */ -class BOTAN_DLL ChaCha : public StreamCipher +class BOTAN_DLL ChaCha final : public StreamCipher { public: void cipher(const byte in[], byte out[], size_t length) override; diff --git a/src/lib/stream/ctr/ctr.h b/src/lib/stream/ctr/ctr.h index f59f06d5f..dc05fa596 100644 --- a/src/lib/stream/ctr/ctr.h +++ b/src/lib/stream/ctr/ctr.h @@ -16,7 +16,7 @@ namespace Botan { /** * CTR-BE (Counter mode, big-endian) */ -class BOTAN_DLL CTR_BE : public StreamCipher +class BOTAN_DLL CTR_BE final : public StreamCipher { public: void cipher(const byte in[], byte out[], size_t length) override; diff --git a/src/lib/stream/ofb/ofb.h b/src/lib/stream/ofb/ofb.h index 32dc199bc..4775c5575 100644 --- a/src/lib/stream/ofb/ofb.h +++ b/src/lib/stream/ofb/ofb.h @@ -16,7 +16,7 @@ namespace Botan { /** * Output Feedback Mode */ -class BOTAN_DLL OFB : public StreamCipher +class BOTAN_DLL OFB final : public StreamCipher { public: void cipher(const byte in[], byte out[], size_t length) override; diff --git a/src/lib/stream/rc4/rc4.h b/src/lib/stream/rc4/rc4.h index c8c81d1a2..db1726a18 100644 --- a/src/lib/stream/rc4/rc4.h +++ b/src/lib/stream/rc4/rc4.h @@ -16,7 +16,7 @@ namespace Botan { /** * RC4 stream cipher */ -class BOTAN_DLL RC4 : public StreamCipher +class BOTAN_DLL RC4 final : public StreamCipher { public: void cipher(const byte in[], byte out[], size_t length) override; diff --git a/src/lib/stream/salsa20/salsa20.h b/src/lib/stream/salsa20/salsa20.h index a5e7a1f14..7e75470da 100644 --- a/src/lib/stream/salsa20/salsa20.h +++ b/src/lib/stream/salsa20/salsa20.h @@ -15,7 +15,7 @@ namespace Botan { /** * DJB's Salsa20 (and XSalsa20) */ -class BOTAN_DLL Salsa20 : public StreamCipher +class BOTAN_DLL Salsa20 final : public StreamCipher { public: void cipher(const byte in[], byte out[], size_t length) override; diff --git a/src/lib/tls/tls_client.h b/src/lib/tls/tls_client.h index b835c013e..d17ea74d0 100644 --- a/src/lib/tls/tls_client.h +++ b/src/lib/tls/tls_client.h @@ -19,7 +19,7 @@ namespace TLS { /** * SSL/TLS Client */ -class BOTAN_DLL Client : public Channel +class BOTAN_DLL Client final : public Channel { public: /** diff --git a/src/lib/tls/tls_extensions.h b/src/lib/tls/tls_extensions.h index 51d76ccbd..62ea8ef1e 100644 --- a/src/lib/tls/tls_extensions.h +++ b/src/lib/tls/tls_extensions.h @@ -71,7 +71,7 @@ class Extension /** * Server Name Indicator extension (RFC 3546) */ -class Server_Name_Indicator : public Extension +class Server_Name_Indicator final : public Extension { public: static Handshake_Extension_Type static_type() @@ -97,7 +97,7 @@ class Server_Name_Indicator : public Extension /** * SRP identifier extension (RFC 5054) */ -class SRP_Identifier : public Extension +class SRP_Identifier final : public Extension { public: static Handshake_Extension_Type static_type() @@ -123,7 +123,7 @@ class SRP_Identifier : public Extension /** * Renegotiation Indication Extension (RFC 5746) */ -class Renegotiation_Extension : public Extension +class Renegotiation_Extension final : public Extension { public: static Handshake_Extension_Type static_type() @@ -152,7 +152,7 @@ class Renegotiation_Extension : public Extension /** * Maximum Fragment Length Negotiation Extension (RFC 4366 sec 3.2) */ -class Maximum_Fragment_Length : public Extension +class Maximum_Fragment_Length final : public Extension { public: static Handshake_Extension_Type static_type() @@ -184,7 +184,7 @@ class Maximum_Fragment_Length : public Extension /** * ALPN (RFC 7301) */ -class Application_Layer_Protocol_Notification : public Extension +class Application_Layer_Protocol_Notification final : public Extension { public: static Handshake_Extension_Type static_type() { return TLSEXT_ALPN; } @@ -220,7 +220,7 @@ class Application_Layer_Protocol_Notification : public Extension /** * Session Ticket Extension (RFC 5077) */ -class Session_Ticket : public Extension +class Session_Ticket final : public Extension { public: static Handshake_Extension_Type static_type() @@ -259,7 +259,7 @@ class Session_Ticket : public Extension /** * Supported Elliptic Curves Extension (RFC 4492) */ -class Supported_Elliptic_Curves : public Extension +class Supported_Elliptic_Curves final : public Extension { public: static Handshake_Extension_Type static_type() @@ -288,7 +288,7 @@ class Supported_Elliptic_Curves : public Extension /** * Signature Algorithms Extension for TLS 1.2 (RFC 5246) */ -class Signature_Algorithms : public Extension +class Signature_Algorithms final : public Extension { public: static Handshake_Extension_Type static_type() @@ -327,7 +327,7 @@ class Signature_Algorithms : public Extension /** * Heartbeat Extension (RFC 6520) */ -class Heartbeat_Support_Indicator : public Extension +class Heartbeat_Support_Indicator final : public Extension { public: static Handshake_Extension_Type static_type() @@ -353,7 +353,7 @@ class Heartbeat_Support_Indicator : public Extension /** * Used to indicate SRTP algorithms for DTLS (RFC 5764) */ -class SRTP_Protection_Profiles : public Extension +class SRTP_Protection_Profiles final : public Extension { public: static Handshake_Extension_Type static_type() @@ -379,7 +379,7 @@ class SRTP_Protection_Profiles : public Extension /** * Extended Master Secret Extension (RFC 7627) */ -class Extended_Master_Secret : public Extension +class Extended_Master_Secret final : public Extension { public: static Handshake_Extension_Type static_type() diff --git a/src/lib/tls/tls_handshake_io.h b/src/lib/tls/tls_handshake_io.h index a1c1c5ce3..f2bb2ac71 100644 --- a/src/lib/tls/tls_handshake_io.h +++ b/src/lib/tls/tls_handshake_io.h @@ -62,7 +62,7 @@ class Handshake_IO /** * Handshake IO for stream-based handshakes */ -class Stream_Handshake_IO : public Handshake_IO +class Stream_Handshake_IO final : public Handshake_IO { public: typedef std::function<void (byte, const std::vector<byte>&)> writer_fn; @@ -93,7 +93,7 @@ class Stream_Handshake_IO : public Handshake_IO /** * Handshake IO for datagram-based handshakes */ -class Datagram_Handshake_IO : public Handshake_IO +class Datagram_Handshake_IO final : public Handshake_IO { public: typedef std::function<void (u16bit, byte, const std::vector<byte>&)> writer_fn; diff --git a/src/lib/tls/tls_messages.h b/src/lib/tls/tls_messages.h index e771bac0c..c09e4fe77 100644 --- a/src/lib/tls/tls_messages.h +++ b/src/lib/tls/tls_messages.h @@ -35,7 +35,7 @@ std::vector<byte> make_hello_random(RandomNumberGenerator& rng, /** * DTLS Hello Verify Request */ -class Hello_Verify_Request : public Handshake_Message +class Hello_Verify_Request final : public Handshake_Message { public: std::vector<byte> serialize() const override; @@ -55,7 +55,7 @@ class Hello_Verify_Request : public Handshake_Message /** * Client Hello Message */ -class Client_Hello : public Handshake_Message +class Client_Hello final : public Handshake_Message { public: Handshake_Type type() const override { return CLIENT_HELLO; } @@ -210,7 +210,7 @@ class Client_Hello : public Handshake_Message /** * Server Hello Message */ -class Server_Hello : public Handshake_Message +class Server_Hello final : public Handshake_Message { public: Handshake_Type type() const override { return SERVER_HELLO; } @@ -327,7 +327,7 @@ class Server_Hello : public Handshake_Message /** * Client Key Exchange Message */ -class Client_Key_Exchange : public Handshake_Message +class Client_Key_Exchange final : public Handshake_Message { public: Handshake_Type type() const override { return CLIENT_KEX; } @@ -361,7 +361,7 @@ class Client_Key_Exchange : public Handshake_Message /** * Certificate Message */ -class Certificate : public Handshake_Message +class Certificate final : public Handshake_Message { public: Handshake_Type type() const override { return CERTIFICATE; } @@ -384,7 +384,7 @@ class Certificate : public Handshake_Message /** * Certificate Request Message */ -class Certificate_Req : public Handshake_Message +class Certificate_Req final : public Handshake_Message { public: Handshake_Type type() const override { return CERTIFICATE_REQUEST; } @@ -417,7 +417,7 @@ class Certificate_Req : public Handshake_Message /** * Certificate Verify Message */ -class Certificate_Verify : public Handshake_Message +class Certificate_Verify final : public Handshake_Message { public: Handshake_Type type() const override { return CERTIFICATE_VERIFY; } @@ -449,7 +449,7 @@ class Certificate_Verify : public Handshake_Message /** * Finished Message */ -class Finished : public Handshake_Message +class Finished final : public Handshake_Message { public: Handshake_Type type() const override { return FINISHED; } @@ -474,7 +474,7 @@ class Finished : public Handshake_Message /** * Hello Request Message */ -class Hello_Request : public Handshake_Message +class Hello_Request final : public Handshake_Message { public: Handshake_Type type() const override { return HELLO_REQUEST; } @@ -488,7 +488,7 @@ class Hello_Request : public Handshake_Message /** * Server Key Exchange Message */ -class Server_Key_Exchange : public Handshake_Message +class Server_Key_Exchange final : public Handshake_Message { public: Handshake_Type type() const override { return SERVER_KEX; } @@ -533,7 +533,7 @@ class Server_Key_Exchange : public Handshake_Message /** * Server Hello Done Message */ -class Server_Hello_Done : public Handshake_Message +class Server_Hello_Done final : public Handshake_Message { public: Handshake_Type type() const override { return SERVER_HELLO_DONE; } @@ -547,7 +547,7 @@ class Server_Hello_Done : public Handshake_Message /** * New Session Ticket Message */ -class New_Session_Ticket : public Handshake_Message +class New_Session_Ticket final : public Handshake_Message { public: Handshake_Type type() const override { return NEW_SESSION_TICKET; } @@ -574,7 +574,7 @@ class New_Session_Ticket : public Handshake_Message /** * Change Cipher Spec */ -class Change_Cipher_Spec : public Handshake_Message +class Change_Cipher_Spec final : public Handshake_Message { public: Handshake_Type type() const override { return HANDSHAKE_CCS; } diff --git a/src/lib/tls/tls_seq_numbers.h b/src/lib/tls/tls_seq_numbers.h index 09962075e..aa0cfe1f4 100644 --- a/src/lib/tls/tls_seq_numbers.h +++ b/src/lib/tls/tls_seq_numbers.h @@ -32,7 +32,7 @@ class Connection_Sequence_Numbers virtual void read_accept(u64bit seq) = 0; }; -class Stream_Sequence_Numbers : public Connection_Sequence_Numbers +class Stream_Sequence_Numbers final : public Connection_Sequence_Numbers { public: void new_read_cipher_state() override { m_read_seq_no = 0; m_read_epoch += 1; } @@ -53,7 +53,7 @@ class Stream_Sequence_Numbers : public Connection_Sequence_Numbers u16bit m_write_epoch = 0; }; -class Datagram_Sequence_Numbers : public Connection_Sequence_Numbers +class Datagram_Sequence_Numbers final : public Connection_Sequence_Numbers { public: Datagram_Sequence_Numbers() { m_write_seqs[0] = 0; } diff --git a/src/lib/tls/tls_server.h b/src/lib/tls/tls_server.h index ffe1111bc..5ea2a1318 100644 --- a/src/lib/tls/tls_server.h +++ b/src/lib/tls/tls_server.h @@ -19,7 +19,7 @@ namespace TLS { /** * TLS Server */ -class BOTAN_DLL Server : public Channel +class BOTAN_DLL Server final : public Channel { public: typedef std::function<std::string (std::vector<std::string>)> next_protocol_fn; |