Средства разработки приложений


Класс AcedMemoryReader - часть 2


Если после дешифрования данных оказывается, что рассчитанное значение цифровой сигнатуры RipeMD-160 для данных потока не совпадает со значением сигнатуры, сохраненным в начале массива данных, возникает исключение AcedWrongDecryptionKeyException, которое является потомком от класса AcedDataCorruptedException.

Пример использования класса AcedMemoryReader: private void GetData(byte[] dataBytes, out byte[] bytes, out short n, out string s, out int[] otherValues) { AcedMemoryReader r = new AcedMemoryReader(dataBytes,
0, dataBytes.Length); /* AcedMemoryReader r = new AcedMemoryReader(dataBytes,
0, dataBytes.Length, new Guid("CA761232-ED42-11CE-BACD-00AA0057B223")); */ bytes = r.ReadByteArray(); n = r.ReadInt16(); otherValues = new int[120]; r.Read(otherValues, 10, 100); s = r.ReadString(); }

Предполагается, что массив байт, передаваемый параметром dataBytes в функцию GetData(), получен как результат функции PutData(), код которой приведен выше в разделе, описывающем класс AcedMemoryWriter. Используемый здесь конструктор класса AcedMemoryReader предполагает, что данные в бинарном потоке не зашифрованы. Закомментированный фрагмент кода содержит вызов конструктора с передачей в него ключа шифра, соответствующего варианту 3 функции PutData().


Начало  Назад  Вперед



Книжный магазин