- Bug 169353. Prompt user for Desktop Password when Master Password is not present.
This commit is contained in:
@@ -179,7 +179,10 @@ namespace sscs.crypto
|
||||
{
|
||||
//Get an encryptor.
|
||||
RijndaelManaged myRijndael = new RijndaelManaged();
|
||||
ICryptoTransform encryptor = myRijndael.CreateEncryptor(key, GenerateAndSaveIV(fileName, myRijndael));
|
||||
byte[] baIV = GenerateAndSaveIV(fileName, myRijndael);
|
||||
|
||||
|
||||
ICryptoTransform encryptor = myRijndael.CreateEncryptor(key, baIV);
|
||||
|
||||
//Encrypt the data to a file
|
||||
fsEncrypt = new FileStream(fileName, FileMode.Create);
|
||||
@@ -235,7 +238,10 @@ namespace sscs.crypto
|
||||
|
||||
//Get a decryptor that uses the same key and IV as the encryptor.
|
||||
RijndaelManaged myRijndael = new RijndaelManaged();
|
||||
ICryptoTransform decryptor = myRijndael.CreateDecryptor(key, RetrieveIV(fileName, key));
|
||||
|
||||
byte[] baIV = RetrieveIV(fileName, IV);
|
||||
|
||||
ICryptoTransform decryptor = myRijndael.CreateDecryptor(key, baIV);
|
||||
#if LINUX
|
||||
UnixFileInfo fsTest = new UnixFileInfo (fileName);
|
||||
if((fsTest == null) || !(fsTest.Exists) || fsTest.IsSymbolicLink)
|
||||
@@ -268,6 +274,7 @@ namespace sscs.crypto
|
||||
for(int i = 0 ; i < bytesRead; i++ )
|
||||
tmpEncrypt[i] = fromEncrypt[i];
|
||||
|
||||
|
||||
SHA256 sha = new SHA256Managed();
|
||||
byte[] newHash = sha.ComputeHash(tmpEncrypt);
|
||||
|
||||
@@ -300,13 +307,27 @@ namespace sscs.crypto
|
||||
{
|
||||
CSSSLogger.DbgLog(e.ToString());
|
||||
}
|
||||
|
||||
if (csDecrypt != null)
|
||||
{
|
||||
csDecrypt.Close();
|
||||
try
|
||||
{
|
||||
csDecrypt.Close();
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
if( fsDecrypt != null )
|
||||
{
|
||||
fsDecrypt.Close();
|
||||
try
|
||||
{
|
||||
fsDecrypt.Close();
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
@@ -419,7 +440,7 @@ namespace sscs.crypto
|
||||
//Get an encryptor.
|
||||
RijndaelManaged myRijndael = new RijndaelManaged();
|
||||
ICryptoTransform encryptor;
|
||||
encryptor = myRijndael.CreateEncryptor(baKey, baKey);
|
||||
encryptor = myRijndael.CreateEncryptor(baKey, GenerateAndSaveIV(fileName, myRijndael));
|
||||
|
||||
//Encrypt the data to a file
|
||||
fsEncrypt = new FileStream(fileName,FileMode.Create);
|
||||
@@ -647,8 +668,11 @@ namespace sscs.crypto
|
||||
|
||||
try
|
||||
{
|
||||
if (File.Exists(sFileName + ".IV"))
|
||||
File.Delete(sFileName + ".IV");
|
||||
|
||||
// now save this
|
||||
FileStream fs = new FileStream(sFileName + ".IV", FileMode.Create);
|
||||
FileStream fs = new FileStream(sFileName + ".IV", FileMode.Create);
|
||||
fs.Write(baIV, 0, 16);
|
||||
fs.Flush();
|
||||
fs.Close();
|
||||
@@ -670,7 +694,7 @@ namespace sscs.crypto
|
||||
// check for file existence
|
||||
try
|
||||
{
|
||||
FileStream fs = new FileStream(sFileName + ".IV", FileMode.Open);
|
||||
FileStream fs = new FileStream(sFileName + ".IV", FileMode.Open);
|
||||
fs.Read(IV, 0, 16);
|
||||
fs.Close();
|
||||
return IV;
|
||||
@@ -679,7 +703,29 @@ namespace sscs.crypto
|
||||
{
|
||||
CSSSLogger.DbgLog(e.ToString());
|
||||
}
|
||||
return (byte[])baOrigValue.Clone();
|
||||
|
||||
// original IV size was 16 bytes, copy that much
|
||||
if (baOrigValue.Length == 16)
|
||||
{
|
||||
return (byte[])baOrigValue.Clone();
|
||||
}
|
||||
else
|
||||
{
|
||||
for (int i=0; i<16; i++)
|
||||
{
|
||||
IV[i] = baOrigValue[i];
|
||||
}
|
||||
return IV;
|
||||
}
|
||||
}
|
||||
|
||||
private static void DumpIV(byte[] iv)
|
||||
{
|
||||
for (int i=0; i<iv.Length; i++)
|
||||
{
|
||||
Console.Write(iv[i] + " ");
|
||||
}
|
||||
Console.WriteLine("\r\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user