VeraCrypt
aboutsummaryrefslogtreecommitdiff
path: root/src/Core
diff options
context:
space:
mode:
authorMounir IDRASSI <mounir.idrassi@idrix.fr>2016-08-17 06:19:43 (GMT)
committerMounir IDRASSI <mounir.idrassi@idrix.fr>2016-08-17 06:36:33 (GMT)
commitd8a7de8ffb54ad98088f1d89cde67c24fe02beea (patch)
tree7c178e14e593abfa56e82f860bba09e8a9d58759 /src/Core
parent7695b8ada0be3013bb880e8e8db8c338e4515961 (diff)
downloadVeraCrypt-d8a7de8ffb54ad98088f1d89cde67c24fe02beea.zip
VeraCrypt-d8a7de8ffb54ad98088f1d89cde67c24fe02beea.tar.gz
Linux: Disable Kernel crypto if volume encrypted using Kuznyechik or Magma
Diffstat (limited to 'src/Core')
-rw-r--r--src/Core/Unix/Linux/CoreLinux.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/Core/Unix/Linux/CoreLinux.cpp b/src/Core/Unix/Linux/CoreLinux.cpp
index eb4545f..5ae29e5 100644
--- a/src/Core/Unix/Linux/CoreLinux.cpp
+++ b/src/Core/Unix/Linux/CoreLinux.cpp
@@ -303,9 +303,12 @@ namespace VeraCrypt
void CoreLinux::MountVolumeNative (shared_ptr <Volume> volume, MountOptions &options, const DirectoryPath &auxMountPoint) const
{
bool xts = (typeid (*volume->GetEncryptionMode()) == typeid (EncryptionModeXTS));
+ bool algoNotSupported = (typeid (*volume->GetEncryptionAlgorithm()) == typeid (GOST89))
+ || (typeid (*volume->GetEncryptionAlgorithm()) == typeid (Kuznyechik));
if (options.NoKernelCrypto
|| !xts
+ || algoNotSupported
|| volume->GetProtectionType() == VolumeProtection::HiddenVolumeReadOnly)
{
throw NotApplicable (SRC_POS);