VeraCrypt
aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Expand)AuthorFilesLines
2014-12-28Linux/MacOSX: Add possibility to choose 1-pass wipe mode without changing the...Mounir IDRASSI2-4/+4
2014-12-28Windows: Add possibility to choose 1-pass wipe mode in all cases without chan...Mounir IDRASSI1-4/+2
2014-12-27Windows: use the correct parent window when changing the password of the encr...Mounir IDRASSI3-8/+8
2014-12-27Windows: implement wait dialog for the backup/restore header operations.Mounir IDRASSI1-16/+62
2014-12-27Windows: use the correct window handle for creating message boxes. This becam...Mounir IDRASSI30-785/+793
2014-12-27Windows: implement wait dialog for the change password operation.Mounir IDRASSI1-38/+65
2014-12-27Windows: make the wait dialog mechanism more generic in order to reuse it mor...Mounir IDRASSI2-29/+65
2014-12-26Windows: workaround freezing of waiting dialog but setting its parent to the ...Mounir IDRASSI4-10/+65
2014-12-26Linux/MacOSX: Implement waiting dialog for lengthy operations in order to hav...Mounir IDRASSI17-18/+791
2014-12-22Windows: resize hot keys dialog to avoid displaying scroll-bars.Mounir IDRASSI1-19/+19
2014-12-22Windows: Solve issue of some dialogs not showing up and that was caused by wr...Mounir IDRASSI2-115/+117
2014-12-21MacOSX: Increment installer version to 1.0f-BETA3VeraCrypt_1.0f-BETA3Mounir IDRASSI1-1/+1
2014-12-20Linux: update the embedded data index inside the installer because the licens...Mounir IDRASSI1-1/+1
2014-12-20Linux: Update license file displayed in the installer.Mounir IDRASSI1-0/+23
2014-12-20Increment version to 1.0f-BETA3 and update language XML files with new fields.Mounir IDRASSI6-21/+21
2014-12-20Linux/MacOSX: Add a donation menu entryMounir IDRASSI4-0/+23
2014-12-20Linux/MacOSX: remove calls to non existent class VolumeLayoutV1HiddenMounir IDRASSI2-4/+4
2014-12-20Reduce time for reporting wrong password by removing support for legacy hidde...Mounir IDRASSI8-103/+5
2014-12-20Windows: Add a donation menu entryMounir IDRASSI4-1/+10
2014-12-20Windows: Add missing PRF selection combobox in password page of Format progra...Mounir IDRASSI1-5/+7
2014-12-19Windows: change command line switch for PRF selection to /hash in order to ma...Mounir IDRASSI1-4/+4
2014-12-19Linux/MacOSX: Enhance performance by implementing the possibility to choose t...Mounir IDRASSI26-36/+160
2014-12-19Correct small typo in language XML file.Mounir IDRASSI1-2/+2
2014-12-17Windows: replace stricmp by _stricmp to remove compilation warningMounir IDRASSI1-4/+4
2014-12-17Windows: in silent mode, don't show the wait dialog during mount operationMounir IDRASSI1-9/+17
2014-12-17Windows: Remove Truecrypt name is error message.Mounir IDRASSI2-3/+3
2014-12-16Windows: Enhance performance by implementing the possibility to choose the co...Mounir IDRASSI32-138/+426
2014-12-16Windows: display a wait dialog during the lengthy opening of a volume. There ...Mounir IDRASSI3-3/+101
2014-12-16Windows: Enable Visual Styles for a modern look-and-feelMounir IDRASSI3-0/+36
2014-12-11Linux/macOSX: always display random gathering dialog/interface before perform...Mounir IDRASSI3-0/+20
2014-12-11Windows: always display random gathering dialog when UserEnrichRandomPool is ...Mounir IDRASSI3-0/+14
2014-12-11Linux/MacOSX: Implement generating more than one keyfile, specifying the size...Mounir IDRASSI8-35/+990
2014-12-11Update license text to show VeraCrypt name while maintaining the TrueCrypt li...Mounir IDRASSI4-161/+475
2014-12-11Correct XML syntax for symbols '<' and '>'Mounir IDRASSI1-1/+1
2014-12-11Windows: Implement specifying the size of the generated keyfiles and also let...Mounir IDRASSI4-18/+77
2014-12-11Implement function RandgetBytesFull that enables generating random bytes of a...Mounir IDRASSI2-21/+55
2014-12-11Windows: correct lock issue in RandgetBytes by releasing critical section in ...Mounir IDRASSI1-0/+1
2014-12-11Windows Driver: change inherited TrueCrypt constants in kernel objects tags b...Mounir IDRASSI5-7/+7
2014-12-07MacOSX/Linux: Solve truncated text in some Wizard windows by defining a large...VeraCrypt_1.0f-BETA2Mounir IDRASSI3-9/+9
2014-12-07Windows: Implement creation of multiple keyfiles at once.Mounir IDRASSI4-43/+206
2014-12-07Windows: implement auto-dismount option when session is lockedMounir IDRASSI4-4/+99
2014-12-04Windows: correct issue in handling "More information on keyfiles" link that c...Mounir IDRASSI1-0/+2
2014-12-04Linux/macOSX: handle project URLs using the new valuesMounir IDRASSI1-38/+107
2014-12-04Windows: put back the tutorial prompt since we now have online documentation.Mounir IDRASSI1-2/+2
2014-12-04Windows: correct issue in displaying PDF of User Guide.Mounir IDRASSI1-2/+2
2014-12-04Windows: update URLs to points to the online documentation. Use a dedicated d...Mounir IDRASSI3-6/+106
2014-12-01Update VeraCrypt User GuideMounir IDRASSI1-0/+0
2014-12-01Add test vectors for HMAC-SHA256 and PBKDF2-HMAC-SHA256Mounir IDRASSI1-0/+71
2014-11-11Windows: Avoid calling RegCloseKey on an invalid handle.Mounir IDRASSI1-6/+7
2014-11-10Windows: close file handle if the call to GetFileSize fails.Mounir IDRASSI1-0/+3
ss="p">; DWORD type; if (RegOpenKeyEx (HKEY_LOCAL_MACHINE, subKey, 0, KEY_READ, &hkey) != ERROR_SUCCESS) return FALSE; if (RegQueryValueEx (hkey, name, NULL, &type, (BYTE *) value, size) != ERROR_SUCCESS) { RegCloseKey (hkey); return FALSE; } RegCloseKey (hkey); return type == REG_MULTI_SZ; } BOOL ReadLocalMachineRegistryString (const char *subKey, char *name, char *str, DWORD *size) { HKEY hkey = 0; DWORD type; if (RegOpenKeyEx (HKEY_LOCAL_MACHINE, subKey, 0, KEY_READ, &hkey) != ERROR_SUCCESS) return FALSE; if (RegQueryValueEx (hkey, name, NULL, &type, (BYTE *) str, size) != ERROR_SUCCESS) { RegCloseKey (hkey); return FALSE; } RegCloseKey (hkey); return type == REG_SZ; } BOOL ReadLocalMachineRegistryStringNonReflected (const char *subKey, char *name, char *str, DWORD *size, BOOL b32bitApp) { HKEY hkey = 0; DWORD type; if (RegOpenKeyEx (HKEY_LOCAL_MACHINE, subKey, 0, KEY_READ | (b32bitApp? KEY_WOW64_32KEY: KEY_WOW64_64KEY), &hkey) != ERROR_SUCCESS) return FALSE; if (RegQueryValueEx (hkey, name, NULL, &type, (BYTE *) str, size) != ERROR_SUCCESS) { RegCloseKey (hkey); return FALSE; } RegCloseKey (hkey); return type == REG_SZ; } int ReadRegistryInt (char *subKey, char *name, int defaultValue) { HKEY hkey = 0; DWORD value, size = sizeof (DWORD); if (RegOpenKeyEx (HKEY_CURRENT_USER, subKey, 0, KEY_READ, &hkey) != ERROR_SUCCESS) return defaultValue; if (RegQueryValueEx (hkey, name, 0, 0, (LPBYTE) &value, &size) != ERROR_SUCCESS) value = defaultValue; RegCloseKey (hkey); return value; } char *ReadRegistryString (char *subKey, char *name, char *defaultValue, char *str, int maxLen) { HKEY hkey = 0; char value[MAX_PATH*4]; DWORD size = sizeof (value); str[maxLen-1] = 0; StringCbCopyA (str, maxLen, defaultValue); ZeroMemory (value, sizeof value); if (RegOpenKeyEx (HKEY_CURRENT_USER, subKey, 0, KEY_READ, &hkey) == ERROR_SUCCESS) if (RegQueryValueEx (hkey, name, 0, 0, (LPBYTE) value, &size) == ERROR_SUCCESS) StringCbCopyA (str, maxLen,value); if (hkey) RegCloseKey (hkey); return str; } DWORD ReadRegistryBytes (char *path, char *name, char *value, int maxLen) { HKEY hkey = 0; DWORD size = maxLen; BOOL success = FALSE; if (RegOpenKeyEx (HKEY_CURRENT_USER, path, 0, KEY_READ, &hkey) != ERROR_SUCCESS) return 0; success = (RegQueryValueEx (hkey, name, 0, 0, (LPBYTE) value, &size) == ERROR_SUCCESS); RegCloseKey (hkey); return success ? size : 0; } void WriteRegistryInt (char *subKey, char *name, int value) { HKEY hkey = 0; DWORD disp; if (RegCreateKeyEx (HKEY_CURRENT_USER, subKey, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, &hkey, &disp) != ERROR_SUCCESS) return; RegSetValueEx (hkey, name, 0, REG_DWORD, (BYTE *) &value, sizeof value); RegCloseKey (hkey); } BOOL WriteLocalMachineRegistryDword (char *subKey, char *name, DWORD value) { HKEY hkey = 0; DWORD disp; LONG status; if ((status = RegCreateKeyEx (HKEY_LOCAL_MACHINE, subKey, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, &hkey, &disp)) != ERROR_SUCCESS) { SetLastError (status); return FALSE; } if ((status = RegSetValueEx (hkey, name, 0, REG_DWORD, (BYTE *) &value, sizeof value)) != ERROR_SUCCESS) { RegCloseKey (hkey); SetLastError (status); return FALSE; } RegCloseKey (hkey); return TRUE; } BOOL WriteLocalMachineRegistryDwordW (WCHAR *subKey, WCHAR *name, DWORD value) { HKEY hkey = 0; DWORD disp; LONG status; if ((status = RegCreateKeyExW (HKEY_LOCAL_MACHINE, subKey, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, &hkey, &disp)) != ERROR_SUCCESS) { SetLastError (status); return FALSE; } if ((status = RegSetValueExW (hkey, name, 0, REG_DWORD, (BYTE *) &value, sizeof value)) != ERROR_SUCCESS) { RegCloseKey (hkey); SetLastError (status); return FALSE; } RegCloseKey (hkey); return TRUE; } BOOL WriteLocalMachineRegistryMultiString (char *subKey, char *name, char *multiString, DWORD size) { HKEY hkey = 0; DWORD disp; LONG status; if ((status = RegCreateKeyEx (HKEY_LOCAL_MACHINE, subKey, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, &hkey, &disp)) != ERROR_SUCCESS) { SetLastError (status); return FALSE; } if ((status = RegSetValueEx (hkey, name, 0, REG_MULTI_SZ, (BYTE *) multiString, size)) != ERROR_SUCCESS) { RegCloseKey (hkey); SetLastError (status); return FALSE; } RegCloseKey (hkey); return TRUE; } BOOL WriteLocalMachineRegistryString (char *subKey, char *name, char *str, BOOL expandable) { HKEY hkey = 0; DWORD disp; LONG status; if ((status = RegCreateKeyEx (HKEY_LOCAL_MACHINE, subKey, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, &hkey, &disp)) != ERROR_SUCCESS) { SetLastError (status); return FALSE; } if ((status = RegSetValueEx (hkey, name, 0, expandable ? REG_EXPAND_SZ : REG_SZ, (BYTE *) str, (DWORD) strlen (str) + 1)) != ERROR_SUCCESS) { RegCloseKey (hkey); SetLastError (status); return FALSE; } RegCloseKey (hkey); return TRUE; } void WriteRegistryString (char *subKey, char *name, char *str) { HKEY hkey = 0; DWORD disp; if (RegCreateKeyEx (HKEY_CURRENT_USER, subKey, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, &hkey, &disp) != ERROR_SUCCESS) return; RegSetValueEx (hkey, name, 0, REG_SZ, (BYTE *) str, (DWORD) strlen (str) + 1); RegCloseKey (hkey); } BOOL WriteRegistryBytes (char *path, char *name, char *str, DWORD size) { HKEY hkey = 0; DWORD disp; BOOL res; if (RegCreateKeyEx (HKEY_CURRENT_USER, path, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, &hkey, &disp) != ERROR_SUCCESS) return FALSE; res = RegSetValueEx (hkey, name, 0, REG_BINARY, (BYTE *) str, size); RegCloseKey (hkey); return res == ERROR_SUCCESS; } BOOL DeleteLocalMachineRegistryKey (char *parentKey, char *subKeyToDelete) { LONG status; HKEY hkey = 0; if ((status = RegOpenKeyEx (HKEY_LOCAL_MACHINE, parentKey, 0, KEY_WRITE, &hkey)) != ERROR_SUCCESS) { SetLastError (status); return FALSE; } if ((status = RegDeleteKey (hkey, subKeyToDelete)) != ERROR_SUCCESS) { RegCloseKey (hkey); SetLastError (status); return FALSE; } RegCloseKey (hkey); return TRUE; } void DeleteRegistryValue (char *subKey, char *name) { HKEY hkey = 0; if (RegOpenKeyEx (HKEY_CURRENT_USER, subKey, 0, KEY_WRITE, &hkey) != ERROR_SUCCESS) return; RegDeleteValue (hkey, name); RegCloseKey (hkey); } void GetStartupRegKeyName (char *regk, size_t cbRegk) { // The string is split in order to prevent some antivirus packages from falsely reporting // TrueCrypt.exe to contain a possible Trojan horse because of this string (heuristic scan). StringCbPrintfA (regk, cbRegk,"%s%s", "Software\\Microsoft\\Windows\\Curren", "tVersion\\Run"); }