Changes to make ProtectedData.Protect() and ProtectedData.Unprotect() use entropy.
This commit is contained in:
parent
8b6a60e9ab
commit
98c12387a6
@ -678,7 +678,7 @@ namespace sscs.crypto
|
|||||||
fs.Close();
|
fs.Close();
|
||||||
|
|
||||||
baSavedMasterPasscode = new byte[16];
|
baSavedMasterPasscode = new byte[16];
|
||||||
baSavedMasterPasscode = ProtectedData.Unprotect( encryptedMasterPasscode, null, DataProtectionScope.CurrentUser );
|
baSavedMasterPasscode = ProtectedData.Unprotect( encryptedMasterPasscode, RetrieveIV(fileName, new byte[16]), DataProtectionScope.CurrentUser );
|
||||||
}
|
}
|
||||||
catch (CryptographicException e)
|
catch (CryptographicException e)
|
||||||
{
|
{
|
||||||
@ -740,7 +740,7 @@ namespace sscs.crypto
|
|||||||
myRijndael.GenerateKey();
|
myRijndael.GenerateKey();
|
||||||
baPasscode = myRijndael.Key;
|
baPasscode = myRijndael.Key;
|
||||||
|
|
||||||
byte [] encryptedMasterPasscode = ProtectedData.Protect( baPasscode, null, DataProtectionScope.CurrentUser );
|
byte [] encryptedMasterPasscode = ProtectedData.Protect( baPasscode, GenerateAndSaveIV(fileName, null), DataProtectionScope.CurrentUser );
|
||||||
FileStream fs = new FileStream(fileName, FileMode.Create);
|
FileStream fs = new FileStream(fileName, FileMode.Create);
|
||||||
File.SetAttributes(fileName, FileAttributes.Hidden);
|
File.SetAttributes(fileName, FileAttributes.Hidden);
|
||||||
fs.Write(encryptedMasterPasscode, 0, encryptedMasterPasscode.Length);
|
fs.Write(encryptedMasterPasscode, 0, encryptedMasterPasscode.Length);
|
||||||
@ -801,8 +801,18 @@ namespace sscs.crypto
|
|||||||
|
|
||||||
private static byte[] GenerateAndSaveIV(string sFileName, RijndaelManaged theRiManaged)
|
private static byte[] GenerateAndSaveIV(string sFileName, RijndaelManaged theRiManaged)
|
||||||
{
|
{
|
||||||
theRiManaged.GenerateIV();
|
byte[] baIV = null;
|
||||||
byte[] baIV = theRiManaged.IV;
|
if ( theRiManaged != null )
|
||||||
|
{
|
||||||
|
theRiManaged.GenerateIV();
|
||||||
|
baIV = theRiManaged.IV;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
RandomNumberGenerator rng = RandomNumberGenerator.Create ();
|
||||||
|
baIV = new byte [16];
|
||||||
|
rng.GetBytes (baIV);
|
||||||
|
}
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user