From fc37cc4a02ed13d1a73b941a9f80975600fd1b99 Mon Sep 17 00:00:00 2001 From: David Foerster Date: Tue, 10 May 2016 20:20:14 +0200 Subject: Normalize all line terminators --- src/Common/Wipe.c | 396 +++++++++++++++++++++++++++--------------------------- 1 file changed, 198 insertions(+), 198 deletions(-) (limited to 'src/Common/Wipe.c') diff --git a/src/Common/Wipe.c b/src/Common/Wipe.c index 0dce3ace..83099547 100644 --- a/src/Common/Wipe.c +++ b/src/Common/Wipe.c @@ -1,198 +1,198 @@ -/* - Derived from source code of TrueCrypt 7.1a, which is - Copyright (c) 2008-2012 TrueCrypt Developers Association and which is governed - by the TrueCrypt License 3.0. - - Modifications and additions to the original source code (contained in this file) - and all other portions of this file are Copyright (c) 2013-2016 IDRIX - and are governed by the Apache License 2.0 the full text of which is - contained in the file License.txt included in VeraCrypt binary and source - code distribution packages. -*/ - -#include "Tcdefs.h" -#include "Wipe.h" - - -static BOOL Wipe1PseudoRandom (int pass, byte *buffer, size_t size) -{ - return FALSE; -} - - -// Fill buffer with wipe patterns defined in "National Industrial Security Program Operating Manual", US DoD 5220.22-M. -// Return: FALSE = buffer must be filled with random data - -static BOOL Wipe3Dod5220 (int pass, byte *buffer, size_t size) -{ - byte wipeChar; - - switch (pass) - { - case 1: - wipeChar = 0; - break; - - case 2: - wipeChar = 0xff; - break; - - default: - return FALSE; - } - - memset (buffer, wipeChar, size); - return TRUE; -} - - -static BOOL Wipe7Dod5220 (int pass, byte randChars[TC_WIPE_RAND_CHAR_COUNT], byte *buffer, size_t size) -{ - byte wipeChar; - - switch (pass) - { - case 1: - wipeChar = randChars[0]; - break; - - case 2: - wipeChar = ~randChars[0]; - break; - - case 4: - wipeChar = randChars[1]; - break; - - case 5: - wipeChar = randChars[2]; - break; - - case 6: - wipeChar = ~randChars[2]; - break; - - default: - return FALSE; - } - - memset (buffer, wipeChar, size); - return TRUE; -} - - -// Fill the buffer with wipe patterns defined in the paper "Secure Deletion of Data from Magnetic and Solid-State Memory" by Peter Gutmann. -// Return: FALSE = buffer must be filled with random data - -static BOOL Wipe35Gutmann (int pass, byte *buffer, size_t size) -{ - byte wipePat3[] = { 0x92, 0x49, 0x24 }; - int wipePat3Pos; - size_t i; - - switch (pass) - { - case 5: - memset (buffer, 0x55, size); - break; - - case 6: - memset (buffer, 0xaa, size); - break; - - case 7: - case 26: - case 29: - wipePat3Pos = 0; - goto wipe3; - - case 8: - case 27: - case 30: - wipePat3Pos = 1; - goto wipe3; - - case 9: - case 28: - case 31: - wipePat3Pos = 2; - goto wipe3; - -wipe3: - if (pass >= 29) - { - wipePat3[0] = ~wipePat3[0]; - wipePat3[1] = ~wipePat3[1]; - wipePat3[2] = ~wipePat3[2]; - } - - for (i = 0; i < size; ++i) - { - buffer[i] = wipePat3[wipePat3Pos++ % 3]; - } - break; - - default: - if (pass >= 10 && pass <= 25) - memset (buffer, (pass - 10) * 0x11, size); - else - return FALSE; - } - - return TRUE; -} - - -int GetWipePassCount (WipeAlgorithmId algorithm) -{ - switch (algorithm) - { - case TC_WIPE_1_RAND: - return 1; - - case TC_WIPE_3_DOD_5220: - return 3; - - case TC_WIPE_7_DOD_5220: - return 7; - - case TC_WIPE_35_GUTMANN: - return 35; - - case TC_WIPE_256: - return 256; - } - - return -1; // Prevent compiler warnings -} - - -BOOL WipeBuffer (WipeAlgorithmId algorithm, byte randChars[TC_WIPE_RAND_CHAR_COUNT], int pass, byte *buffer, size_t size) -{ - switch (algorithm) - { - case TC_WIPE_1_RAND: - case TC_WIPE_256: - return Wipe1PseudoRandom (pass, buffer, size); - - case TC_WIPE_3_DOD_5220: - return Wipe3Dod5220 (pass, buffer, size); - - case TC_WIPE_7_DOD_5220: - return Wipe7Dod5220 (pass, randChars, buffer, size); - - case TC_WIPE_35_GUTMANN: - return Wipe35Gutmann (pass, buffer, size); - - /* we will never reach here because all calls to WipeBuffer are preceeded - * by a call to GetWipePassCount that already checks the same algorithm - * parameters and in case of unsupported value an error is returned before - * calling WipeBuffer - */ - /* - default: - TC_THROW_FATAL_EXCEPTION;*/ - } - - return FALSE; // Prevent compiler warnings -} +/* + Derived from source code of TrueCrypt 7.1a, which is + Copyright (c) 2008-2012 TrueCrypt Developers Association and which is governed + by the TrueCrypt License 3.0. + + Modifications and additions to the original source code (contained in this file) + and all other portions of this file are Copyright (c) 2013-2016 IDRIX + and are governed by the Apache License 2.0 the full text of which is + contained in the file License.txt included in VeraCrypt binary and source + code distribution packages. +*/ + +#include "Tcdefs.h" +#include "Wipe.h" + + +static BOOL Wipe1PseudoRandom (int pass, byte *buffer, size_t size) +{ + return FALSE; +} + + +// Fill buffer with wipe patterns defined in "National Industrial Security Program Operating Manual", US DoD 5220.22-M. +// Return: FALSE = buffer must be filled with random data + +static BOOL Wipe3Dod5220 (int pass, byte *buffer, size_t size) +{ + byte wipeChar; + + switch (pass) + { + case 1: + wipeChar = 0; + break; + + case 2: + wipeChar = 0xff; + break; + + default: + return FALSE; + } + + memset (buffer, wipeChar, size); + return TRUE; +} + + +static BOOL Wipe7Dod5220 (int pass, byte randChars[TC_WIPE_RAND_CHAR_COUNT], byte *buffer, size_t size) +{ + byte wipeChar; + + switch (pass) + { + case 1: + wipeChar = randChars[0]; + break; + + case 2: + wipeChar = ~randChars[0]; + break; + + case 4: + wipeChar = randChars[1]; + break; + + case 5: + wipeChar = randChars[2]; + break; + + case 6: + wipeChar = ~randChars[2]; + break; + + default: + return FALSE; + } + + memset (buffer, wipeChar, size); + return TRUE; +} + + +// Fill the buffer with wipe patterns defined in the paper "Secure Deletion of Data from Magnetic and Solid-State Memory" by Peter Gutmann. +// Return: FALSE = buffer must be filled with random data + +static BOOL Wipe35Gutmann (int pass, byte *buffer, size_t size) +{ + byte wipePat3[] = { 0x92, 0x49, 0x24 }; + int wipePat3Pos; + size_t i; + + switch (pass) + { + case 5: + memset (buffer, 0x55, size); + break; + + case 6: + memset (buffer, 0xaa, size); + break; + + case 7: + case 26: + case 29: + wipePat3Pos = 0; + goto wipe3; + + case 8: + case 27: + case 30: + wipePat3Pos = 1; + goto wipe3; + + case 9: + case 28: + case 31: + wipePat3Pos = 2; + goto wipe3; + +wipe3: + if (pass >= 29) + { + wipePat3[0] = ~wipePat3[0]; + wipePat3[1] = ~wipePat3[1]; + wipePat3[2] = ~wipePat3[2]; + } + + for (i = 0; i < size; ++i) + { + buffer[i] = wipePat3[wipePat3Pos++ % 3]; + } + break; + + default: + if (pass >= 10 && pass <= 25) + memset (buffer, (pass - 10) * 0x11, size); + else + return FALSE; + } + + return TRUE; +} + + +int GetWipePassCount (WipeAlgorithmId algorithm) +{ + switch (algorithm) + { + case TC_WIPE_1_RAND: + return 1; + + case TC_WIPE_3_DOD_5220: + return 3; + + case TC_WIPE_7_DOD_5220: + return 7; + + case TC_WIPE_35_GUTMANN: + return 35; + + case TC_WIPE_256: + return 256; + } + + return -1; // Prevent compiler warnings +} + + +BOOL WipeBuffer (WipeAlgorithmId algorithm, byte randChars[TC_WIPE_RAND_CHAR_COUNT], int pass, byte *buffer, size_t size) +{ + switch (algorithm) + { + case TC_WIPE_1_RAND: + case TC_WIPE_256: + return Wipe1PseudoRandom (pass, buffer, size); + + case TC_WIPE_3_DOD_5220: + return Wipe3Dod5220 (pass, buffer, size); + + case TC_WIPE_7_DOD_5220: + return Wipe7Dod5220 (pass, randChars, buffer, size); + + case TC_WIPE_35_GUTMANN: + return Wipe35Gutmann (pass, buffer, size); + + /* we will never reach here because all calls to WipeBuffer are preceeded + * by a call to GetWipePassCount that already checks the same algorithm + * parameters and in case of unsupported value an error is returned before + * calling WipeBuffer + */ + /* + default: + TC_THROW_FATAL_EXCEPTION;*/ + } + + return FALSE; // Prevent compiler warnings +} -- cgit v1.2.3