VeraCrypt
aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Expand)AuthorFilesLines
2016-01-18Windows: solve Expander GUI issues caused by latest Unicode modifications.Mounir IDRASSI4-20/+20
2016-01-17MacOSX: Ensure that time-stamping is always activated when performing code si...Mounir IDRASSI1-2/+2
2016-01-17Windows: avoid leaking location of selected keyfiles by clearing global varia...Mounir IDRASSI1-0/+5
2016-01-17Cryptography: Divide mount and boot times by 2 using a pre-computation of val...Mounir IDRASSI1-106/+259
2016-01-17Windows: Add SHA-256 EV Code Signing using the new GlobalSign certificate on ...Mounir IDRASSI7-10/+106
2016-01-11MacOSX: use native OSX byte swapping routines used in hash functions to impro...Mounir IDRASSI1-3/+10
2016-01-10Linux/MacOSX: Show better error message when the PKCS#11 library can't be loadedMounir IDRASSI1-3/+5
2016-01-10Windows: Avoid wrong update of configuration XML file caused by not using the...Mounir IDRASSI5-12/+12
2016-01-10Windows: Don't show disconnected network drives in the list of available driv...Mounir IDRASSI12-42/+109
2016-01-04Windows: increase the size of the field IDC_PREF_CACHE_PIM in the preferences...Mounir IDRASSI1-1/+1
.highlight .hll { background-color: #ffffcc } .highlight .c { color: #888888 } /* Comment */ .highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */ .highlight .k { color: #008800; font-weight: bold } /* Keyword */ .highlight .ch { color: #888888 } /* Comment.Hashbang */ .highlight .cm { color: #888888 } /* Comment.Multiline */ .highlight .cp { color: #cc0000; font-weight: bold } /* Comment.Preproc */ .highlight .cpf { color: #888888 } /* Comment.PreprocFile */ .highlight .c1 { color: #888888 } /* Comment.Single */ .highlight .cs { color: #cc0000; font-weight: bold; background-color: #fff0f0 } /* Comment.Special */ .highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */ .highlight .ge { font-style: italic } /* Generic.Emph */ .highlight .gr { color: #aa0000 } /* Generic.Error */ .highlight .gh { color: #333333 } /* Generic.Heading */ .highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */ .highlight .go { color: #888888 } /* Generic.Output */ .highlight .gp { color: #555555 } /* Generic.Prompt */ .highlight .gs { font-weight: bold } /* Generic.Strong */ .highlight .gu { color: #666666 } /* Generic.Subheading */ .highlight .gt { color: #aa0000 } /* Generic.Traceback */ .highlight .kc { color: #008800; font-weight: bold } /* Keyword.Constant */ .highlight .kd { color: #008800; font-weight: bold } /* Keyword.Declaration */ .highlight .kn { color: #008800; font-weight: bold } /* Keyword.Namespace */ .highlight .kp { color: #008800 } /* Keyword.Pseudo */ .highlight .kr { color: #008800; font-weight: bold } /* Keyword.Reserved */ .highlight .kt { color: #888888; font-weight: bold } /* Keyword.Type */ .highlight .m { color: #0000DD; font-weight: bold } /* Literal.Number */ .highlight .s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */ .highlight .na { color: #336699 } /* Name.Attribute */ .highlight .nb { color: #003388 } /* Name.Builtin */ .highlight .nc { color: #bb0066; font-weight: bold } /* Name.Class */ .highlight .no { color: #003366; font-weight: bold } /* Name.Constant */ .highlight .nd { color: #555555 } /* Name.Decorator */ .highlight .ne { color: #bb0066; font-weight: bold } /* Name.Exception */ .highlight .nf { color: #0066bb; font-weight: bold } /* Name.Function */ .highlight .nl { color: #336699; font-style: italic } /* Name.Label */ .highlight .nn { color: #bb0066; font-weight: bold } /* Name.Namespace */ .highlight .py { color: #336699; font-weight: bold } /* Name.Property */ .highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */ .highlight .nv { color: #336699 } /* Name.Variable */ .highlight .ow { color: #008800 } /* Operator.Word */ .highlight .w { color: #bbbbbb } /* Text.Whitespace */ .highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */ .highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */ .highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */ .highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */ .highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */ .highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */ .highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */ .highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */ .highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */ .highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ .highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
/*
 Legal Notice: Some portions of the source code contained in this file were
 derived from the source code of TrueCrypt 7.1a, which is 
 Copyright (c) 2003-2012 TrueCrypt Developers Association and which is 
 governed by the TrueCrypt License 3.0, also from the source code of
 Encryption for the Masses 2.02a, which is Copyright (c) 1998-2000 Paul Le Roux
 and which is governed by the 'License Agreement for Encryption for the Masses' 
 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 "Crypto.h"
#include "Fat.h"
#include "Volumes.h"
#include "Apidrvr.h"
#include "Common.h"
#include "Cache.h"

Password CachedPasswords[CACHE_SIZE];
int	 CachedPim[CACHE_SIZE];
int cacheEmpty = 1;
static int nPasswordIdx = 0;

int ReadVolumeHeaderWCache (BOOL bBoot, BOOL bCache, BOOL bCachePim, char *header, Password *password, int pkcs5_prf, int pim, BOOL truecryptMode, PCRYPTO_INFO *retInfo)
{
	int nReturnCode = ERR_PASSWORD_WRONG;
	int i, effectivePim;

	/* Attempt to recognize volume using mount password */
	if (password->Length > 0)
	{
		nReturnCode = ReadVolumeHeader (bBoot, header, password, pkcs5_prf, pim, truecryptMode, retInfo, NULL);

		/* Save mount passwords back into cache if asked to do so */
		if (bCache && (nReturnCode == 0 || nReturnCode == ERR_CIPHER_INIT_WEAK_KEY))
		{
			for (i = 0; i < CAC
61-3026/+3027
2015-11-26Windows Bootloader: Avoid displaying empty new line between password and PIM ...Mounir IDRASSI1-1/+4
2015-11-26Windows Driver: solve compilation error in Debug build caused by a missing va...Mounir IDRASSI1-0/+6
2015-11-08Language XML files: harmonize XML language files ad solve few issues.Mounir IDRASSI1-14/+14
2015-10-27Windows: workaround to solve false positive detection by some anti-virus soft...Mounir IDRASSI3-2/+12
2015-10-27Windows: fix wrong translation for "Reset" button in hotkeys dialogMounir IDRASSI1-3/+3
2015-10-18Language XML files: add some missing fieldsMounir IDRASSI1-0/+2
2015-10-18Windows: Ensure focus is always set to the drive list upon startupMounir IDRASSI1-0/+4
2015-10-18Language XML files: remove unused ID.Mounir IDRASSI1-1/+0
2015-10-15Windows: Solve lost focus for application after displaying the waiting dialogMounir IDRASSI3-9/+47
2015-10-15Windows Rescue Disk: compress bootloader for rescue disk in several more case...Mounir IDRASSI1-2/+2
2015-10-15Windows Bootloader: Protect password/PIM length by filling the fields to thei...Mounir IDRASSI2-4/+22
2015-10-15Windows: resize some GUI fields to avoid text truncation with non US language...Mounir IDRASSI2-19/+18
2015-10-15Windows: Set bPrebootPasswordDlgMode to FALSE at the correct code location.Mounir IDRASSI1-4/+2
ffectivePim, truecryptMode, retInfo, NULL); if (nReturnCode != ERR_PASSWORD_WRONG) break; } } } return nReturnCode; } void AddPasswordToCache (Password *password, int pim) { int i; for (i = 0; i < CACHE_SIZE; i++) { if (memcmp (&CachedPasswords[i], password, sizeof (Password)) == 0) return; } CachedPasswords[nPasswordIdx] = *password; CachedPim[nPasswordIdx] = pim > 0? pim : 0; nPasswordIdx = (nPasswordIdx + 1) % CACHE_SIZE; cacheEmpty = 0; } void WipeCache () { burn (CachedPasswords, sizeof (CachedPasswords)); burn (CachedPim, sizeof (CachedPim)); nPasswordIdx = 0; cacheEmpty = 1; }