VeraCrypt
aboutsummaryrefslogtreecommitdiff
path: root/src/Volume/EncryptionAlgorithm.cpp
diff options
context:
space:
mode:
authorMounir IDRASSI <mounir.idrassi@idrix.fr>2018-03-27 13:07:13 +0200
committerMounir IDRASSI <mounir.idrassi@idrix.fr>2018-03-27 16:15:57 +0200
commit7df9724e20005ccdd3e5daaeebf80eb0c5c46083 (patch)
treed08000aff2875a6d68b997bef45a528cd76d98e4 /src/Volume/EncryptionAlgorithm.cpp
parentda69304dc8f98d00b14bfe2de32f14b1c9b7533f (diff)
downloadVeraCrypt-7df9724e20005ccdd3e5daaeebf80eb0c5c46083.tar.gz
VeraCrypt-7df9724e20005ccdd3e5daaeebf80eb0c5c46083.zip
Crypto: Add support for 5 new cascades of cipher algorithms (Camellia-Kuznyechik, Camellia-Serpent, Kuznyechik-AES, Kuznyechik-Serpent-Camellia and Kuznyechik-Twofish)
Diffstat (limited to 'src/Volume/EncryptionAlgorithm.cpp')
-rw-r--r--src/Volume/EncryptionAlgorithm.cpp51
1 files changed, 51 insertions, 0 deletions
diff --git a/src/Volume/EncryptionAlgorithm.cpp b/src/Volume/EncryptionAlgorithm.cpp
index e36b500c..b94f69fa 100644
--- a/src/Volume/EncryptionAlgorithm.cpp
+++ b/src/Volume/EncryptionAlgorithm.cpp
@@ -69,6 +69,11 @@ namespace VeraCrypt
l.push_back (shared_ptr <EncryptionAlgorithm> (new Kuznyechik ()));
l.push_back (shared_ptr <EncryptionAlgorithm> (new AESTwofish ()));
l.push_back (shared_ptr <EncryptionAlgorithm> (new AESTwofishSerpent ()));
+ l.push_back (shared_ptr <EncryptionAlgorithm> (new CamelliaKuznyechik ()));
+ l.push_back (shared_ptr <EncryptionAlgorithm> (new CamelliaSerpent ()));
+ l.push_back (shared_ptr <EncryptionAlgorithm> (new KuznyechikAES ()));
+ l.push_back (shared_ptr <EncryptionAlgorithm> (new KuznyechikSerpentCamellia ()));
+ l.push_back (shared_ptr <EncryptionAlgorithm> (new KuznyechikTwofish ()));
l.push_back (shared_ptr <EncryptionAlgorithm> (new SerpentAES ()));
l.push_back (shared_ptr <EncryptionAlgorithm> (new SerpentTwofishAES ()));
l.push_back (shared_ptr <EncryptionAlgorithm> (new TwofishSerpent ()));
@@ -314,4 +319,50 @@ namespace VeraCrypt
SupportedModes.push_back (shared_ptr <EncryptionMode> (new EncryptionModeXTS ()));
}
+
+ // Kuznyechik-Twofish
+ KuznyechikTwofish::KuznyechikTwofish ()
+ {
+ Ciphers.push_back (shared_ptr <Cipher> (new CipherTwofish ()));
+ Ciphers.push_back (shared_ptr <Cipher> (new CipherKuznyechik ()));
+
+ SupportedModes.push_back (shared_ptr <EncryptionMode> (new EncryptionModeXTS ()));
+ }
+
+ // Kuznyechik-AES
+ KuznyechikAES::KuznyechikAES ()
+ {
+ Ciphers.push_back (shared_ptr <Cipher> (new CipherAES ()));
+ Ciphers.push_back (shared_ptr <Cipher> (new CipherKuznyechik ()));
+
+ SupportedModes.push_back (shared_ptr <EncryptionMode> (new EncryptionModeXTS ()));
+ }
+
+ // Kuznyechik-Serpent-Camellia
+ KuznyechikSerpentCamellia::KuznyechikSerpentCamellia ()
+ {
+ Ciphers.push_back (shared_ptr <Cipher> (new CipherCamellia ()));
+ Ciphers.push_back (shared_ptr <Cipher> (new CipherSerpent ()));
+ Ciphers.push_back (shared_ptr <Cipher> (new CipherKuznyechik ()));
+
+ SupportedModes.push_back (shared_ptr <EncryptionMode> (new EncryptionModeXTS ()));
+ }
+
+ // Camellia-Kuznyechik
+ CamelliaKuznyechik::CamelliaKuznyechik ()
+ {
+ Ciphers.push_back (shared_ptr <Cipher> (new CipherKuznyechik ()));
+ Ciphers.push_back (shared_ptr <Cipher> (new CipherCamellia ()));
+
+ SupportedModes.push_back (shared_ptr <EncryptionMode> (new EncryptionModeXTS ()));
+ }
+
+ // Camellia-Serpent
+ CamelliaSerpent::CamelliaSerpent ()
+ {
+ Ciphers.push_back (shared_ptr <Cipher> (new CipherSerpent ()));
+ Ciphers.push_back (shared_ptr <Cipher> (new CipherCamellia ()));
+
+ SupportedModes.push_back (shared_ptr <EncryptionMode> (new EncryptionModeXTS ()));
+ }
}