VeraCrypt
aboutsummaryrefslogtreecommitdiff
path: root/src/Setup
AgeCommit message (Collapse)AuthorFilesLines
2020-11-29Increment version to 1.24-Update8Mounir IDRASSI4-12/+12
2020-11-29MacOSX: make installer compatible with macFUSE 4.0 and restriction to INTEL ↵Mounir IDRASSI1-47/+4
cpu to support new M1 cpu
2020-08-06Increment internal version to 1.24.23 and update release notesMounir IDRASSI4-6/+6
2020-08-06Windows: Fix crash when using portable 32-bit "VeraCrypt ↵Mounir IDRASSI1-6/+6
Format.exe"/"VeraCrypt.exe" on a 64-bit machine where VeraCrypt is already installed
2020-08-06Increment internal version to 1.24.22 and update release notesMounir IDRASSI4-6/+6
2020-08-03Increment internal version to 1.24.21 and update release notesMounir IDRASSI4-6/+6
2020-07-22Increment internal version to 1.24.20 and update release notesMounir IDRASSI4-6/+6
2020-07-21Windows Setup: Warn about Fast Startup during install if it is enabled and ↵Mounir IDRASSI3-0/+20
propose to disable it at the end of the installation.
2020-07-04Increment internal version to 1.24.19Mounir IDRASSI4-6/+6
2020-06-29Increment internal version to 1.24.18 and update signed Windows drivers.Mounir IDRASSI4-6/+6
2020-06-28Windows: remove unused code targeting Windows 2000.Mounir IDRASSI1-16/+0
2020-06-23Increment version to 1.24-Update7Mounir IDRASSI4-12/+12
2020-03-10Increment version to 1.24-Update6Mounir IDRASSI4-12/+12
2020-02-11Increment version to 1.24-Update5 and update signed Windows drivers.Mounir IDRASSI4-12/+12
2020-01-22Increment version to 1.24-Update4 and update Release NotesMounir IDRASSI4-12/+12
2019-12-16Update version information in preparation for 1.24-Update2 releaseMounir IDRASSI4-6/+6
2019-12-10Increment version to 1.24-Update2Mounir IDRASSI4-12/+12
2019-11-09Linux: during uninstall, output error message to STDERR instead of STDOUT ↵Mounir IDRASSI1-1/+1
for better compatibility with package managers
2019-11-07Increment version to 1.24-Hotfix2Mounir IDRASSI4-12/+12
2019-10-26MacOSX: Update build script and Makefile to correctly build Legacy version ↵Mounir IDRASSI1-22/+81
of VeraCrypt that targets OSX 10.7+.
2019-10-24MacOSX: Add dedicated installer for legacy version that targets OSX 10.7+ ↵Mounir IDRASSI2-27/+1106
and update requirement for new installer to be OSX 10.9+ and 64-bit only.
2019-10-24Increment version to 1.24-Hotfix1Mounir IDRASSI3-9/+9
2019-10-20Increment version to 1.23-Hotfix1-PreviewMounir IDRASSI3-10/+10
2019-10-06Linux/FreeBSD: change location of documentation from ↵Mounir IDRASSI2-0/+2
/usr/share/veracrypt/doc to the standard /usr/share/doc/veracrypt
2019-10-06Increment version to 1.24Mounir IDRASSI3-5/+5
2019-10-02Increment version to 1.24-Beta6Mounir IDRASSI3-10/+10
2019-03-09Increment version to 1.24-Beta5Mounir IDRASSI3-10/+10
2019-03-09Increment version to 1.24-Beta4 and update release notes to clarify that ↵Mounir IDRASSI3-10/+10
password length increase applies only to non-system volumes.
2019-03-03Increment version to 1.24-Beta3. Update Release Notes.Mounir IDRASSI3-10/+10
2019-01-28Increment version to 1.24-Beta2Mounir IDRASSI3-10/+10
2019-01-26Windows: Add a build configuration containing EFI bootloader signed with ↵Mounir IDRASSI6-6/+191
custom SecureBoot key instead
2019-01-15Windows: enhancements to EFI system encryption, like handling of Multi-Boot ↵Mounir IDRASSI1-5/+94
and better compatibility with Windows Upgrade process.
2019-01-14Update Release Notes and language files for version 1.24-Beta1. Add signed ↵Mounir IDRASSI1-2/+2
Windows drivers.
2019-01-14Windows: enhance support of new behavior of favorite service which is now ↵Mounir IDRASSI1-10/+33
always running in case of system encryption
2019-01-14Increment version to 1.24-Beta1Mounir IDRASSI2-8/+8
2018-12-19Increment version to 1.24-Beta0Mounir IDRASSI3-10/+10
2018-12-03Windows: remove unused variable.Mounir IDRASSI1-1/+1
2018-12-03Windows: delete existing uninstall shortcut when performing upgrade/reinstallMounir IDRASSI1-0/+3
2018-12-02Do not create uninstall shortcut in startmenu (#381)csware1-18/+0
Creating such a start menu entry is a leftover of the ancient Win 3.x time where there was no central control panel for removing programs. Also see the Windows guidelines, where creating an uninstall shortcut is discouraged: https://msdn.microsoft.com/en-us/library/ms954377.aspx Signed-off-by: Sven Strickroth <email@cs-ware.de>
2018-10-10Increment version to 1.23-Hotfix-2Mounir IDRASSI3-10/+10
2018-09-21Increment version to 1.23-Hotfix-1Mounir IDRASSI3-10/+10
2018-09-09Increment version to 1.23Mounir IDRASSI3-5/+5
2018-09-03Increment version to 1.23-BETA8 and update release notes.Mounir IDRASSI3-10/+10
2018-09-03Increment version to 1.23-BETA7 and update release notes.Mounir IDRASSI3-10/+10
2018-08-24Increment version to 1.23-BETA6Mounir IDRASSI3-10/+10
2018-08-18Increment version to 1.23-BETA5 and update release notesMounir IDRASSI3-10/+10
2018-08-16Increment version to 1.23-BETA4 and update release notes.Mounir IDRASSI3-10/+10
2018-08-13Windows: code enhancements for language selection mechanism in the installer.Mounir IDRASSI2-9/+23
2018-08-12Increment version to 1.23-BETA3 and update release notes.Mounir IDRASSI3-10/+10
2018-08-12Windows: add language selection dialog to the portable installerMounir IDRASSI1-0/+41
an>; return s.str(); } wstring StringConverter::FromNumber (int64 number) { wstringstream s; s << number; return s.str(); } wstring StringConverter::FromNumber (uint64 number) { wstringstream s; s << number; return s.str(); } string StringConverter::GetTrailingNumber (const string &str) { size_t start = str.find_last_not_of ("0123456789"); if (start == string::npos) return str; string s = str.substr (start + 1); if (s.empty ()) throw ParameterIncorrect (SRC_POS); return s; } string StringConverter::GetTypeName (const type_info &typeInfo) { try { #ifdef _MSC_VER // type_info::name() leaks memory as of MS VC++ 8.0 string rawName (typeInfo.raw_name()); size_t cut1 = (rawName.find (".?A") != string::npos) ? 4 : string::npos; size_t cut2 = rawName.find ("@"); size_t cut3 = rawName.find ("@@"); if (cut1 == string::npos || cut2 == string::npos || cut3 == string::npos) return typeInfo.name(); return rawName.substr (cut2 + 1, cut3 - cut2 - 1) + "::" + rawName.substr (cut1, cut2 - cut1); #elif defined (__GNUC__) int status; char *name = abi::__cxa_demangle (typeInfo.name(), nullptr, nullptr, &status); if (name) { string s (name); free (name); return s; } #endif } catch (...) { } return typeInfo.name(); } wstring StringConverter::QuoteSpaces (const wstring &str) { if (str.find (L' ') == string::npos) return str; wstring escaped (L"'"); foreach (wchar_t c, str) { if (c == L'\'') escaped += L'\''; escaped += c; } return escaped + L'\''; } vector <string> StringConverter::Split (const string &str, const string &separators, bool returnEmptyFields) { vector <string> elements; if (!returnEmptyFields) { size_t p = 0; while ((p = str.find_first_not_of (separators, p)) != string::npos) { size_t end = str.find_first_of (separators, p); if (end == string::npos) { elements.push_back (str.substr (p)); break; } elements.push_back (str.substr (p, end - p)); p = end; } } else { string element; elements.push_back (element); foreach (char c, str) { if (separators.find (c) != string::npos) { element.erase(); elements.push_back (element); } else { elements.back() += c; } } } return elements; } string StringConverter::StripTrailingNumber (const string &str) { size_t start = str.find_last_not_of ("0123456789"); if (start == string::npos) return ""; return str.substr (0, start + 1); } wstring StringConverter::ToExceptionString (const exception &ex) { const SystemException *sysEx = dynamic_cast <const SystemException *> (&ex); if (sysEx) return ToWide (sysEx->what()) + L": " + sysEx->SystemText() + L": " + sysEx->GetSubject(); if (ex.what() && !string (ex.what()).empty()) return ToWide (GetTypeName (typeid (ex)) + ": " + ex.what()); return ToWide (GetTypeName (typeid (ex))); } string StringConverter::ToLower (const string &str) { string s; foreach (char c, str) s += tolower (c, locale()); return s; } string StringConverter::ToSingle (const wstring &wstr, bool noThrow) { string str; ToSingle (wstr, str, noThrow); return str; } void StringConverter::ToSingle (const wstring &wstr, string &str, bool noThrow) { try { mbstate_t mbState; Memory::Zero (&mbState, sizeof (mbState)); const wchar_t *src = wstr.c_str(); size_t size = wcsrtombs (nullptr, &src, 0, &mbState); if (size == (size_t) -1) throw StringConversionFailed (SRC_POS, wstr); vector <char> buf (size + 1); Memory::Zero (&mbState, sizeof (mbState)); if ((size = wcsrtombs (&buf[0], &src, buf.size(), &mbState)) == (size_t) -1) throw StringConversionFailed (SRC_POS, wstr); str.clear(); str.insert (0, &buf.front(), size); burn (&buf.front(), buf.size()); } catch (...) { if (!noThrow) throw; } } uint32 StringConverter::ToUInt32 (const string &str) { uint32 n; stringstream ss (str); ss >> n; if (ss.fail() || n == 0xffffFFFFU) throw ParameterIncorrect (SRC_POS); return n; } uint32 StringConverter::ToUInt32 (const wstring &str) { uint32 n; wstringstream ss (str); ss >> n; if (ss.fail() || n == 0xffffFFFFU) throw ParameterIncorrect (SRC_POS); return n; } int32 StringConverter::ToInt32 (const string &str) { int32 n; stringstream ss (str); ss >> n; if (ss.fail() || n == 0x7fffFFFF || n == -0x7fffFFFF) throw ParameterIncorrect (SRC_POS); return n; } int32 StringConverter::ToInt32 (const wstring &str) { int32 n; wstringstream ss (str); ss >> n; if (ss.fail() || n == 0x7fffFFFF || n == -0x7fffFFFF) throw ParameterIncorrect (SRC_POS); return n; } uint64 StringConverter::ToUInt64 (const string &str) { uint64 n; stringstream ss (str); ss >> n; if (ss.fail() || n == 0xffffFFFFffffFFFFULL) throw ParameterIncorrect (SRC_POS); return n; } uint64 StringConverter::ToUInt64 (const wstring &str) { uint64 n; wstringstream ss (str); ss >> n; if (ss.fail() || n == 0xffffFFFFffffFFFFULL) throw ParameterIncorrect (SRC_POS); return n; } int64 StringConverter::ToInt64 (const string &str) { int64 n; stringstream ss (str); ss >> n; if (ss.fail() || n == 0x7fffFFFFffffFFFFLL || n == -0x7fffFFFFffffFFFFLL) throw ParameterIncorrect (SRC_POS); return n; } int64 StringConverter::ToInt64 (const wstring &str) { int64 n; wstringstream ss (str); ss >> n; if (ss.fail() || n == 0x7fffFFFFffffFFFFLL || n == -0x7fffFFFFffffFFFFLL) throw ParameterIncorrect (SRC_POS); return n; } string StringConverter::ToUpper (const string &str) { string s; foreach (char c, str) s += toupper (c, locale()); return s; } wstring StringConverter::ToWide (const string &str, bool noThrow) { try { mbstate_t mbState; Memory::Zero (&mbState, sizeof (mbState)); const char *src = str.c_str(); size_t size = mbsrtowcs (nullptr, &src, 0, &mbState); if (size == (size_t) -1) throw StringConversionFailed (SRC_POS); vector <wchar_t> buf (size + 1); Memory::Zero (&mbState, sizeof (mbState)); if ((size = mbsrtowcs (&buf[0], &src, buf.size(), &mbState)) == (size_t) -1) throw StringConversionFailed (SRC_POS); wstring s; s.insert (s.begin(), buf.begin(), buf.begin() + size); return s; } catch (...) { if (noThrow) return L""; throw; } } void StringConverter::ToWideBuffer (const wstring &str, wchar_t *buffer, size_t bufferSize) { if (str.length() < 1) { buffer[0] = 0; return; } BufferPtr ( (byte *) buffer, bufferSize).CopyFrom ( ConstBufferPtr ((byte *) (wstring (str).c_str()), (str.length() + 1) * sizeof (wchar_t) ) ); } string StringConverter::Trim (const string &str) { size_t start = 0; size_t end = str.size(); if (end < 1) return str; foreach (char c, str) { if (c > ' ') break; ++start; } foreach_reverse (char c, str) { if (c > ' ') break; --end; } return str.substr (start, end - start); } }