private static Stream CreateHmacDataStream(Gost_28147_89_SymmetricAlgorithmBase sharedKey, Stream dataStream) { // Создание объекта для вычисления HMAC using (var hmac = new Gost_R3411_94_HMAC(sharedKey)) { // Вычисление HMAC для потока данных var hmacValue = hmac.ComputeHash(dataStream); // Запись HMAC в начало выходного потока данных var hmacDataStream = new MemoryStream(); hmacDataStream.Write(hmacValue, 0, hmacValue.Length); // Копирование исходного потока данных в выходной поток dataStream.Position = 0; dataStream.CopyTo(hmacDataStream); hmacDataStream.Position = 0; return(hmacDataStream); } }