VeraCrypt
aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMounir IDRASSI <mounir.idrassi@idrix.fr>2017-07-21 13:21:13 (GMT)
committerMounir IDRASSI <mounir.idrassi@idrix.fr>2017-07-21 22:30:19 (GMT)
commitff871511af79fd8fb7a09d3ed42220830e6ddcd6 (patch)
tree100728bb821d4fe1b7622eedd1174920302459e8
parent0fb2befe3ab57696d5b4c9de6fee344bfd520bf6 (diff)
downloadVeraCrypt-ff871511af79fd8fb7a09d3ed42220830e6ddcd6.zip
VeraCrypt-ff871511af79fd8fb7a09d3ed42220830e6ddcd6.tar.gz
Windows: reduce size of MBR bootloader by removing unused functions in each build type.
-rw-r--r--src/Boot/Windows/BootConsoleIo.cpp6
-rw-r--r--src/Boot/Windows/BootDiskIo.cpp6
-rw-r--r--src/Common/Crc.c2
-rw-r--r--src/Common/Crypto.c68
-rw-r--r--src/Common/Crypto.h2
-rw-r--r--src/Common/Endian.c14
-rw-r--r--src/Common/Endian.h3
-rw-r--r--src/Common/Pkcs5.c12
8 files changed, 36 insertions, 77 deletions
diff --git a/src/Boot/Windows/BootConsoleIo.cpp b/src/Boot/Windows/BootConsoleIo.cpp
index 6a5a159..b03098f 100644
--- a/src/Boot/Windows/BootConsoleIo.cpp
+++ b/src/Boot/Windows/BootConsoleIo.cpp
@@ -19,17 +19,19 @@
static int ScreenOutputDisabled = 0;
+#if defined(TC_TRACE_INT13) || !defined(TC_WINDOWS_BOOT_RESCUE_DISK_MODE)
void DisableScreenOutput ()
{
++ScreenOutputDisabled;
}
+#endif
-
+#ifdef TC_TRACE_INT13
void EnableScreenOutput ()
{
--ScreenOutputDisabled;
}
-
+#endif
void PrintChar (char c)
{
diff --git a/src/Boot/Windows/BootDiskIo.cpp b/src/Boot/Windows/BootDiskIo.cpp
index a36b2b7..ea808dd 100644
--- a/src/Boot/Windows/BootDiskIo.cpp
+++ b/src/Boot/Windows/BootDiskIo.cpp
@@ -157,6 +157,7 @@ BiosResult ReadWriteSectors (bool write, uint16 bufferSegment, uint16 bufferOffs
return result;
}
+#ifdef TC_WINDOWS_BOOT_RESCUE_DISK_MODE
BiosResult ReadWriteSectors (bool write, byte *buffer, byte drive, const ChsAddress &chs, byte sectorCount, bool silent)
{
@@ -165,18 +166,19 @@ BiosResult ReadWriteSectors (bool write, byte *buffer, byte drive, const ChsAddr
return ReadWriteSectors (write, codeSeg, (uint16) buffer, drive, chs, sectorCount, silent);
}
-
BiosResult ReadSectors (byte *buffer, byte drive, const ChsAddress &chs, byte sectorCount, bool silent)
{
return ReadWriteSectors (false, buffer, drive, chs, sectorCount, silent);
}
-
+#if 0
BiosResult WriteSectors (byte *buffer, byte drive, const ChsAddress &chs, byte sectorCount, bool silent)
{
return ReadWriteSectors (true, buffer, drive, chs, sectorCount, silent);
}
+#endif
+#endif
static BiosResult ReadWriteSectors (bool write, BiosLbaPacket &dapPacket, byte drive, const uint64 &sector, uint16 sectorCount, bool silent)
{
diff --git a/src/Common/Crc.c b/src/Common/Crc.c
index 295bf8d..7e18cb4 100644
--- a/src/Common/Crc.c
+++ b/src/Common/Crc.c
@@ -121,6 +121,7 @@ unsigned __int32 GetCrc32 (unsigned char *data, int length)
return r ^ 0xFFFFFFFFUL;
}
+#if 0
BOOL crc32_selftests ()
{
unsigned __int8 testData[32];
@@ -131,5 +132,6 @@ BOOL crc32_selftests ()
return GetCrc32 (testData, sizeof (testData)) == 0x91267E8AUL;
}
+#endif
#endif // TC_MINIMIZE_CODE_SIZE
diff --git a/src/Common/Crypto.c b/src/Common/Crypto.c
index c0e7792..c7b0c73 100644
--- a/src/Common/Crypto.c
+++ b/src/Common/Crypto.c
@@ -393,17 +393,13 @@ const wchar_t *CipherGetName (int cipherId)
Cipher* pCipher = CipherGet (cipherId);
return pCipher? pCipher -> Name : L"";
}
-#endif
int CipherGetBlockSize (int cipherId)
{
-#ifdef TC_WINDOWS_BOOT
- return CipherGet (cipherId) -> BlockSize;
-#else
Cipher* pCipher = CipherGet (cipherId);
return pCipher? pCipher -> BlockSize : 0;
-#endif
}
+#endif
int CipherGetKeySize (int cipherId)
{
@@ -451,6 +447,7 @@ int EAGetFirst ()
return 1;
}
+#ifndef TC_WINDOWS_BOOT
// Returns number of EAs
int EAGetCount (void)
{
@@ -462,6 +459,7 @@ int EAGetCount (void)
}
return count;
}
+#endif
int EAGetNext (int previousEA)
{
@@ -593,6 +591,8 @@ int EAGetKeySize (int ea)
}
+#ifndef TC_WINDOWS_BOOT
+
// Returns the first mode of operation of EA
int EAGetFirstMode (int ea)
{
@@ -612,9 +612,6 @@ int EAGetNextMode (int ea, int previousModeId)
return 0;
}
-
-#ifndef TC_WINDOWS_BOOT
-
// Returns the name of the mode of operation of the whole EA
wchar_t *EAGetModeName (int ea, int mode, BOOL capitalLetters)
{
@@ -645,38 +642,7 @@ int EAGetKeyScheduleSize (int ea)
return size;
}
-
-// Returns the largest key size needed by an EA for the specified mode of operation
-int EAGetLargestKeyForMode (int mode)
-{
- int ea, key = 0;
-
- for (ea = EAGetFirst (); ea != 0; ea = EAGetNext (ea))
- {
- if (!EAIsModeSupported (ea, mode))
- continue;
-
- if (EAGetKeySize (ea) >= key)
- key = EAGetKeySize (ea);
- }
- return key;
-}
-
-
-// Returns the largest key needed by any EA for any mode
-int EAGetLargestKey ()
-{
- int ea, key = 0;
-
- for (ea = EAGetFirst (); ea != 0; ea = EAGetNext (ea))
- {
- if (EAGetKeySize (ea) >= key)
- key = EAGetKeySize (ea);
- }
-
- return key;
-}
-
+#ifndef TC_WINDOWS_BOOT
// Returns number of ciphers in EA
int EAGetCipherCount (int ea)
@@ -687,6 +653,7 @@ int EAGetCipherCount (int ea)
return i - 1;
}
+#endif
int EAGetFirstCipher (int ea)
{
@@ -732,18 +699,16 @@ int EAGetPreviousCipher (int ea, int previousCipherId)
return 0;
}
-
+#ifndef TC_WINDOWS_BOOT
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)
@@ -758,7 +723,6 @@ BOOL EAIsModeSupported (int ea, int testedMode)
return FALSE;
}
-#ifndef TC_WINDOWS_BOOT
Hash *HashGet (int id)
{
int i;
@@ -810,6 +774,22 @@ BOOL HashForSystemEncryption (int hashId)
}
+// Returns the largest key size needed by an EA for the specified mode of operation
+int EAGetLargestKeyForMode (int mode)
+{
+ int ea, key = 0;
+
+ for (ea = EAGetFirst (); ea != 0; ea = EAGetNext (ea))
+ {
+ if (!EAIsModeSupported (ea, mode))
+ continue;
+
+ if (EAGetKeySize (ea) >= key)
+ key = EAGetKeySize (ea);
+ }
+ return key;
+}
+
// Returns the maximum number of bytes necessary to be generated by the PBKDF2 (PKCS #5)
int GetMaxPkcs5OutSize (void)
{
diff --git a/src/Common/Crypto.h b/src/Common/Crypto.h
index 6f9d65e..1d0c96e 100644
--- a/src/Common/Crypto.h
+++ b/src/Common/Crypto.h
@@ -354,8 +354,8 @@ int EAGetFirstCipher (int ea);
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 EAIsFormatEnabled (int ea);
int EAIsMbrSysEncEnabled (int ea);
#endif
BOOL EAIsModeSupported (int ea, int testedMode);
diff --git a/src/Common/Endian.c b/src/Common/Endian.c
index 46f6e1b..cea24d0 100644
--- a/src/Common/Endian.c
+++ b/src/Common/Endian.c
@@ -43,17 +43,3 @@ uint64 MirrorBytes64 (uint64 x)
}
#endif
-void
-LongReverse (unsigned __int32 *buffer, unsigned byteCount)
-{
- unsigned __int32 value;
-
- byteCount /= sizeof (unsigned __int32);
- while (byteCount--)
- {
- value = *buffer;
- value = ((value & 0xFF00FF00L) >> 8) | \
- ((value & 0x00FF00FFL) << 8);
- *buffer++ = (value << 16) | (value >> 16);
- }
-}
diff --git a/src/Common/Endian.h b/src/Common/Endian.h
index ef242ba..000395f 100644
--- a/src/Common/Endian.h
+++ b/src/Common/Endian.h
@@ -139,8 +139,7 @@ unsigned __int16 MirrorBytes16 (unsigned __int16 x);
unsigned __int32 MirrorBytes32 (unsigned __int32 x);
#ifndef TC_NO_COMPILER_INT64
uint64 MirrorBytes64 (uint64 x);
-#endif
-void LongReverse ( unsigned __int32 *buffer , unsigned byteCount );
+#endif
#if defined(__cplusplus)
}
diff --git a/src/Common/Pkcs5.c b/src/Common/Pkcs5.c
index 28df35d..93e748a 100644
--- a/src/Common/Pkcs5.c
+++ b/src/Common/Pkcs5.c
@@ -36,18 +36,6 @@
#include "Pkcs5.h"
#include "Crypto.h"
-void hmac_truncate
- (
- char *d1, /* data to be truncated */
- char *d2, /* truncated data */
- int len /* length in bytes to keep */
-)
-{
- int i;
- for (i = 0; i < len; i++)
- d2[i] = d1[i];
-}
-
#if !defined(TC_WINDOWS_BOOT) || defined(TC_WINDOWS_BOOT_SHA2)
typedef struct hmac_sha256_ctx_struct