Видимо глаз уже настолько замылился что не вижу очевидного или тут все совсем не очевидно?
Ключи везде одинаковые. Padding тоже.
Прошу помощи в определении причины и хотя бы указания вектора, в направлении которого искать решение. Спасибо.
// BinaryFormatter binFormat = new BinaryFormatter();
// List<DataTable> tables;
// [...]
using (Rijndael AES = Rijndael.Create())
{
AES.Padding = PaddingMode.PKCS7;
PasswordDeriveBytes pdb = new PasswordDeriveBytes(TablesController._baseKey, new byte[] { 0x49, 0x76, 0x61, 0x6e, 0x20, 0x4d, 0x65, 0x64, 0x76, 0x65, 0x64, 0x65, 0x76 });
using (FileStream fStream = File.Open(TablesController._baseFileName, FileMode.OpenOrCreate, FileAccess.Write))
{
using (CryptoStream cStream = new CryptoStream(
fStream,
AES.CreateEncryptor(pdb.GetBytes(32), pdb.GetBytes(16)), CryptoStreamMode.Write))
{
binFormat.Serialize(cStream, tables);
}
}
}
using (Rijndael AES = Rijndael.Create())
{
AES.Padding = PaddingMode.PKCS7;
PasswordDeriveBytes pdb = new PasswordDeriveBytes(TablesController._baseKey, new byte[] { 0x49, 0x76, 0x61, 0x6e, 0x20, 0x4d, 0x65, 0x64, 0x76, 0x65, 0x64, 0x65, 0x76 });
using (FileStream fStream = File.OpenRead(TablesController._baseFileName))
{
using (CryptoStream cStream = new CryptoStream(fStream, AES.CreateDecryptor(pdb.GetBytes(32), pdb.GetBytes(16)), CryptoStreamMode.Read))
{
object deserialized = binFormat.Deserialize(cStream);
tables = deserialized as List<DataTable>;
} // System.Security.Cryptography.CryptographicException не обработано
// Message= Padding is invalid and cannot be removed (Заполнение неверно и не может быть удалено.)
}
}