diff --git a/3way.h b/3way.h
index bafc02f9..9dba3c59 100644
--- a/3way.h
+++ b/3way.h
@@ -21,7 +21,7 @@ struct ThreeWay_Info : public FixedBlockSize<12>, public FixedKeyLength<12>, pub
//! \class ThreeWay
//! \brief ThreeWay block cipher
-//! \sa 3-Way
+//! \sa 3-Way
class ThreeWay : public ThreeWay_Info, public BlockCipherDocumentation
{
//! \class Base
diff --git a/arc4.h b/arc4.h
index e7fdfc2e..c406c1de 100644
--- a/arc4.h
+++ b/arc4.h
@@ -48,7 +48,7 @@ protected:
//! \class ARC4
//! \brief Alleged RC4
-//! \sa Alleged RC4
+//! \sa Alleged RC4
//! \since Crypto++ 1.0
DOCUMENTED_TYPEDEF(SymmetricCipherFinal, ARC4)
@@ -70,7 +70,7 @@ protected:
//! \class MARC4
//! \brief Modified Alleged RC4
-//! \sa Alleged RC4
+//! \sa Alleged RC4
//! \since Crypto++ 1.0
DOCUMENTED_TYPEDEF(SymmetricCipherFinal, MARC4)
diff --git a/aria.h b/aria.h
index 58b5169d..46990f45 100644
--- a/aria.h
+++ b/aria.h
@@ -36,7 +36,7 @@ struct ARIA_Info : public FixedBlockSize<16>, public VariableKeyLength<16, 16, 3
//! \sa RFC 5794, A Description of the ARIA Encryption Algorithm,
//! Korea
//! Internet & Security Agency homepage
-//! \sa ARIA
+//! \sa ARIA
//! \since Crypto++ 6.0
class ARIA : public ARIA_Info, public BlockCipherDocumentation
{
diff --git a/blowfish.h b/blowfish.h
index bc37ca0d..fa710149 100644
--- a/blowfish.h
+++ b/blowfish.h
@@ -18,7 +18,7 @@ struct Blowfish_Info : public FixedBlockSize<8>, public VariableKeyLength<16, 4,
CRYPTOPP_STATIC_CONSTEXPR const char* StaticAlgorithmName() {return "Blowfish";}
};
-// Blowfish
+// Blowfish
//! \class Blowfish
//! \brief Blowfish block cipher
diff --git a/camellia.h b/camellia.h
index 88d6b659..1fa56e16 100644
--- a/camellia.h
+++ b/camellia.h
@@ -21,7 +21,7 @@ struct Camellia_Info : public FixedBlockSize<16>, public VariableKeyLength<16, 1
//! \class Camellia
//! \brief Camellia block cipher
-//! \sa Camellia
+//! \sa Camellia
class Camellia : public Camellia_Info, public BlockCipherDocumentation
{
class CRYPTOPP_NO_VTABLE Base : public BlockCipherImpl
diff --git a/cast.h b/cast.h
index 32561c85..99436c2e 100644
--- a/cast.h
+++ b/cast.h
@@ -28,7 +28,7 @@ struct CAST128_Info : public FixedBlockSize<8>, public VariableKeyLength<16, 5,
//! \class CAST128
//! \brief CAST128 block cipher
-//! \sa CAST-128
+//! \sa CAST-128
class CAST128 : public CAST128_Info, public BlockCipherDocumentation
{
//! \class Base
@@ -73,7 +73,7 @@ struct CAST256_Info : public FixedBlockSize<16>, public VariableKeyLength<16, 16
//! \class CAST256
//! \brief CAST256 block cipher
-//! \sa CAST-256
+//! \sa CAST-256
class CAST256 : public CAST256_Info, public BlockCipherDocumentation
{
//! \class Base
diff --git a/des.h b/des.h
index 3ef8c837..1fd5c32a 100644
--- a/des.h
+++ b/des.h
@@ -38,7 +38,7 @@ struct DES_Info : public FixedBlockSize<8>, public FixedKeyLength<8>
//! \details The DES implementation in Crypto++ ignores the parity bits
//! (the least significant bits of each byte) in the key. However you can use CheckKeyParityBits()
//! and CorrectKeyParityBits() to check or correct the parity bits if you wish.
-//! \sa DES
+//! \sa DES
//! \since Crypto++ 1.0
class DES : public DES_Info, public BlockCipherDocumentation
{
@@ -70,7 +70,7 @@ struct DES_EDE2_Info : public FixedBlockSize<8>, public FixedKeyLength<16>
//! \class DES_EDE2
//! \brief 2-key TripleDES block cipher
-//! \sa DES-EDE2
+//! \sa DES-EDE2
//! \since Crypto++ 1.0
class DES_EDE2 : public DES_EDE2_Info, public BlockCipherDocumentation
{
@@ -100,7 +100,7 @@ struct DES_EDE3_Info : public FixedBlockSize<8>, public FixedKeyLength<24>
//! \class DES_EDE3
//! \brief 3-key TripleDES block cipher
-//! \sa DES-EDE3
+//! \sa DES-EDE3
//! \since Crypto++ 1.0
class DES_EDE3 : public DES_EDE3_Info, public BlockCipherDocumentation
{
@@ -130,7 +130,7 @@ struct DES_XEX3_Info : public FixedBlockSize<8>, public FixedKeyLength<24>
//! \class DES_XEX3
//! \brief DESX block cipher
-//! \sa DES-XEX3, AKA DESX
+//! \sa DES-XEX3, AKA DESX
//! \since Crypto++ 1.0
class DES_XEX3 : public DES_XEX3_Info, public BlockCipherDocumentation
{
diff --git a/gost.h b/gost.h
index 153bfbb0..851189ce 100644
--- a/gost.h
+++ b/gost.h
@@ -20,7 +20,7 @@ struct GOST_Info : public FixedBlockSize<8>, public FixedKeyLength<32>
//! \class GOST
//! \brief GOST block cipher
-//! \sa GOST
+//! \sa GOST
class GOST : public GOST_Info, public BlockCipherDocumentation
{
//! \class Base
diff --git a/idea.h b/idea.h
index ec1f8c83..9957c9c9 100644
--- a/idea.h
+++ b/idea.h
@@ -21,7 +21,7 @@ struct IDEA_Info : public FixedBlockSize<8>, public FixedKeyLength<16>, public F
//! \class IDEA
//! \brief IDEA block cipher
-//! \sa IDEA
+//! \sa IDEA
//! \since Crypto++ 1.0
class IDEA : public IDEA_Info, public BlockCipherDocumentation
{
diff --git a/mars.h b/mars.h
index c9a1ce2f..da648526 100644
--- a/mars.h
+++ b/mars.h
@@ -20,7 +20,7 @@ struct MARS_Info : public FixedBlockSize<16>, public VariableKeyLength<16, 16, 5
//! \class MARS
//! \brief MARS block cipher
-//! \sa MARS
+//! \sa MARS
class MARS : public MARS_Info, public BlockCipherDocumentation
{
class CRYPTOPP_NO_VTABLE Base : public BlockCipherImpl
diff --git a/mdc.h b/mdc.h
index 80279454..4c2ebbb3 100644
--- a/mdc.h
+++ b/mdc.h
@@ -24,7 +24,7 @@ struct MDC_Info : public FixedBlockSize, public FixedKeyLengthMDC
+//! \sa MDC
template
class MDC : public MDC_Info
{
diff --git a/pubkey.h b/pubkey.h
index de2687af..45e3e26b 100644
--- a/pubkey.h
+++ b/pubkey.h
@@ -666,7 +666,6 @@ private:
//! \class TF_DecryptorImpl
//! \brief Trapdoor Function (TF) decryptor options
//! \tparam SCHEME_OPTIONS scheme options class
-template
template
class TF_DecryptorImpl : public TF_ObjectImpl
{
diff --git a/rc2.h b/rc2.h
index 30c29e01..2da4ae49 100644
--- a/rc2.h
+++ b/rc2.h
@@ -23,7 +23,7 @@ struct RC2_Info : public FixedBlockSize<8>, public VariableKeyLength<16, 1, 128>
//! \class RC2
//! \brief RC2 block cipher
-//! \sa RC2 on the Crypto Lounge.
+//! \sa RC2 on the Crypto Lounge.
class RC2 : public RC2_Info, public BlockCipherDocumentation
{
//! \class Base
diff --git a/rc5.h b/rc5.h
index 3881160c..eb5a5400 100644
--- a/rc5.h
+++ b/rc5.h
@@ -22,7 +22,7 @@ struct RC5_Info : public FixedBlockSize<8>, public VariableKeyLength<16, 0, 255>
//! \class RC5
//! \brief RC5 block cipher
-//! \sa RC5
+//! \sa RC5
//! \since Crypto++ 1.0
class RC5 : public RC5_Info, public BlockCipherDocumentation
{
diff --git a/rc6.h b/rc6.h
index 2ab4455c..45a8f138 100644
--- a/rc6.h
+++ b/rc6.h
@@ -21,7 +21,7 @@ struct RC6_Info : public FixedBlockSize<16>, public VariableKeyLength<16, 16, 32
//! \class RC6
//! \brief RC6 block cipher
-//! \sa RC6
+//! \sa RC6
class RC6 : public RC6_Info, public BlockCipherDocumentation
{
class CRYPTOPP_NO_VTABLE Base : public BlockCipherImpl
diff --git a/rijndael.h b/rijndael.h
index b6cd0faf..91997ada 100644
--- a/rijndael.h
+++ b/rijndael.h
@@ -32,7 +32,7 @@ struct Rijndael_Info : public FixedBlockSize<16>, public VariableKeyLength<16, 1
//! \details All key sizes are supported. The library only provides Rijndael with 128-bit blocks,
//! and not 192-bit or 256-bit blocks
//! \since Rijndael since Crypto++ 3.2, Intel AESNI since Crypto++ 5.6.1, ARMv8 AES since Crypto++ 6.0
-//! \sa Rijndael
+//! \sa Rijndael
class CRYPTOPP_DLL Rijndael : public Rijndael_Info, public BlockCipherDocumentation
{
//! \brief Rijndael block cipher data processing functions
diff --git a/safer.h b/safer.h
index 0972ac1e..67b606eb 100644
--- a/safer.h
+++ b/safer.h
@@ -71,7 +71,7 @@ struct SAFER_K_Info : public FixedBlockSize<8>, public VariableKeyLength<16, 8,
//! \class SAFER_K
//! \brief SAFER-K block cipher
-//! \sa SAFER-K
+//! \sa SAFER-K
class SAFER_K : public SAFER_K_Info, public SAFER, public BlockCipherDocumentation
{
public:
@@ -88,7 +88,7 @@ struct SAFER_SK_Info : public FixedBlockSize<8>, public VariableKeyLength<16, 8,
//! \class SAFER_SK
//! \brief SAFER-SK block cipher
-//! \sa SAFER-SK
+//! \sa SAFER-SK
class SAFER_SK : public SAFER_SK_Info, public SAFER, public BlockCipherDocumentation
{
public:
diff --git a/seal.h b/seal.h
index 2e101535..edf53fac 100644
--- a/seal.h
+++ b/seal.h
@@ -45,7 +45,7 @@ private:
//! \class SEAL
//! \brief SEAL stream cipher
//! \tparam B Endianness of the stream cipher
-//! \sa SEAL
+//! \sa SEAL
template
struct SEAL : public SEAL_Info, public SymmetricCipherDocumentation
{
diff --git a/serpent.h b/serpent.h
index d5f12499..65f014d6 100644
--- a/serpent.h
+++ b/serpent.h
@@ -20,7 +20,7 @@ struct Serpent_Info : public FixedBlockSize<16>, public VariableKeyLength<16, 16
//! \class Serpent
//! \brief Serpent block cipher
-/// \sa Serpent
+/// \sa Serpent
class Serpent : public Serpent_Info, public BlockCipherDocumentation
{
class CRYPTOPP_NO_VTABLE Base : public BlockCipherImpl
diff --git a/shacal2.h b/shacal2.h
index b75cf034..d94cdd28 100644
--- a/shacal2.h
+++ b/shacal2.h
@@ -22,7 +22,7 @@ struct SHACAL2_Info : public FixedBlockSize<32>, public VariableKeyLength<16, 16
//! \class SHACAL2
//! \brief SHACAL2 block cipher
//! \since Crypto++ 5.2, Intel SHA since Crypto++ 6.0
-//! \sa SHACAL-2
+//! \sa SHACAL-2
class SHACAL2 : public SHACAL2_Info, public BlockCipherDocumentation
{
//! \brief SHACAL2 block cipher data processing functions
diff --git a/shark.h b/shark.h
index 8e2f92e5..d2852827 100644
--- a/shark.h
+++ b/shark.h
@@ -21,7 +21,7 @@ struct SHARK_Info : public FixedBlockSize<8>, public FixedKeyLength<16>, public
//! \class SHARK
//! \brief SHARK block cipher
-/// SHARK-E
+/// SHARK-E
class SHARK : public SHARK_Info, public BlockCipherDocumentation
{
//! \class Base
diff --git a/skipjack.h b/skipjack.h
index acc5bc98..6fcf7031 100644
--- a/skipjack.h
+++ b/skipjack.h
@@ -20,7 +20,7 @@ struct SKIPJACK_Info : public FixedBlockSize<8>, public FixedKeyLength<10>
//! \class SKIPJACK
//! \brief SKIPJACK block cipher
-//! \sa SKIPJACK
+//! \sa SKIPJACK
class SKIPJACK : public SKIPJACK_Info, public BlockCipherDocumentation
{
//! \class Base
diff --git a/square.h b/square.h
index 0b743f67..cb107f06 100644
--- a/square.h
+++ b/square.h
@@ -20,7 +20,7 @@ struct Square_Info : public FixedBlockSize<16>, public FixedKeyLength<16>, Fixed
//! \class Square
//! \brief Square block cipher
-//! \sa Square
+//! \sa Square
class Square : public Square_Info, public BlockCipherDocumentation
{
class CRYPTOPP_NO_VTABLE Base : public BlockCipherImpl
diff --git a/tea.h b/tea.h
index 200c8fbb..966b78b9 100644
--- a/tea.h
+++ b/tea.h
@@ -21,7 +21,7 @@ struct TEA_Info : public FixedBlockSize<8>, public FixedKeyLength<16>, public Va
//! \class TEA
//! \brief TEA block cipher
-//! \sa TEA
+//! \sa TEA
class TEA : public TEA_Info, public BlockCipherDocumentation
{
//! \class Base
@@ -69,7 +69,7 @@ struct XTEA_Info : public FixedBlockSize<8>, public FixedKeyLength<16>, public V
//! \class XTEA
//! \brief XTEA block cipher
-//! \sa XTEA
+//! \sa XTEA
class XTEA : public XTEA_Info, public BlockCipherDocumentation
{
//! \class Base
@@ -115,7 +115,7 @@ struct BTEA_Info : public FixedKeyLength<16>
//! \class BTEA
//! \brief BTEA block cipher
//! \details Corrected Block TEA as described in "xxtea". This class hasn't been tested yet.
-//! \sa Corrected Block TEA.
+//! \sa Corrected Block TEA.
class BTEA : public BTEA_Info, public BlockCipherDocumentation
{
//! \class Base
diff --git a/threefish.h b/threefish.h
index 69455d85..fe8e7359 100644
--- a/threefish.h
+++ b/threefish.h
@@ -58,7 +58,7 @@ struct Threefish_Info : public VariableBlockSize<32, 32, 128>
//! \class Threefish
//! \brief Threefish block cipher
-//! \sa Threefish
+//! \sa Threefish
//! \since Crypto++ 6.0
class Threefish : public Threefish_Info, public BlockCipherDocumentation
{
diff --git a/twofish.h b/twofish.h
index d6940f04..388b4468 100644
--- a/twofish.h
+++ b/twofish.h
@@ -20,7 +20,7 @@ struct Twofish_Info : public FixedBlockSize<16>, public VariableKeyLength<16, 16
//! \class Twofish
//! \brief Twofish block cipher
-//~ \sa Twofish
+//~ \sa Twofish
class Twofish : public Twofish_Info, public BlockCipherDocumentation
{
class CRYPTOPP_NO_VTABLE Base : public BlockCipherImpl