diff options
Diffstat (limited to 'src/Common')
-rw-r--r-- | src/Common/Crypto.c | 32 | ||||
-rw-r--r-- | src/Common/Crypto.h | 6 |
2 files changed, 25 insertions, 13 deletions
diff --git a/src/Common/Crypto.c b/src/Common/Crypto.c index e9a3da68..f3045d0c 100644 --- a/src/Common/Crypto.c +++ b/src/Common/Crypto.c @@ -73,21 +73,21 @@ static EncryptionAlgorithm EncryptionAlgorithms[] = #ifndef TC_WINDOWS_BOOT - { { 0, 0 }, { 0, 0}, 0 }, // Must be all-zero - { { AES, 0 }, { XTS, 0 }, 1 }, - { { SERPENT, 0 }, { XTS, 0 }, 1 }, - { { TWOFISH, 0 }, { XTS, 0 }, 1 }, - { { CAMELLIA, 0 }, { XTS, 0 }, 1 }, + { { 0, 0 }, { 0, 0}, 0, 0 }, // Must be all-zero + { { AES, 0 }, { XTS, 0 }, 1, 1 }, + { { SERPENT, 0 }, { XTS, 0 }, 1, 1 }, + { { TWOFISH, 0 }, { XTS, 0 }, 1, 1 }, + { { CAMELLIA, 0 }, { XTS, 0 }, 1, 1 }, #if defined(CIPHER_GOST89) - { { GOST89, 0 }, { XTS, 0 }, 1 }, + { { GOST89, 0 }, { XTS, 0 }, 0, 1 }, #endif // defined(CIPHER_GOST89) - { { KUZNYECHIK, 0 }, { XTS, 0 }, 1 }, - { { TWOFISH, AES, 0 }, { XTS, 0 }, 1 }, - { { SERPENT, TWOFISH, AES, 0 }, { XTS, 0 }, 1 }, - { { AES, SERPENT, 0 }, { XTS, 0 }, 1 }, - { { AES, TWOFISH, SERPENT, 0 }, { XTS, 0 }, 1 }, - { { SERPENT, TWOFISH, 0 }, { XTS, 0 }, 1 }, - { { 0, 0 }, { 0, 0}, 0 } // Must be all-zero + { { KUZNYECHIK, 0 }, { XTS, 0 }, 0, 1 }, + { { TWOFISH, AES, 0 }, { XTS, 0 }, 1, 1 }, + { { SERPENT, TWOFISH, AES, 0 }, { XTS, 0 }, 1, 1 }, + { { AES, SERPENT, 0 }, { XTS, 0 }, 1, 1 }, + { { AES, TWOFISH, SERPENT, 0 }, { XTS, 0 }, 1, 1 }, + { { SERPENT, TWOFISH, 0 }, { XTS, 0 }, 1, 1 }, + { { 0, 0 }, { 0, 0}, 0, 0 } // Must be all-zero #else // TC_WINDOWS_BOOT @@ -684,6 +684,12 @@ int EAIsFormatEnabled (int ea) return EncryptionAlgorithms[ea].FormatEnabled; } +#ifndef TC_WINDOWS_BOOT +int EAIsMbrSysEncEnabled (int ea) +{ + return EncryptionAlgorithms[ea].MbrSysEncEnabled; +} +#endif // Returns TRUE if the mode of operation is supported for the encryption algorithm BOOL EAIsModeSupported (int ea, int testedMode) diff --git a/src/Common/Crypto.h b/src/Common/Crypto.h index c4bc4fa9..7d99f233 100644 --- a/src/Common/Crypto.h +++ b/src/Common/Crypto.h @@ -133,6 +133,9 @@ typedef struct { int Ciphers[4]; // Null terminated array of ciphers used by encryption algorithm int Modes[LAST_MODE_OF_OPERATION + 1]; // Null terminated array of modes of operation +#ifndef TC_WINDOWS_BOOT + BOOL MbrSysEncEnabled; +#endif int FormatEnabled; } EncryptionAlgorithm; @@ -348,6 +351,9 @@ int EAGetLastCipher (int ea); int EAGetNextCipher (int ea, int previousCipherId); int EAGetPreviousCipher (int ea, int previousCipherId); int EAIsFormatEnabled (int ea); +#ifndef TC_WINDOWS_BOOT +int EAIsMbrSysEncEnabled (int ea); +#endif BOOL EAIsModeSupported (int ea, int testedMode); |