全部!
我正在使用 CryptoStream 类,使用 memoryStream 进行测试。将来,我们将使用网络数据,因此流将是只读的并且 CanSeek = false。
测试数据约为 750 字节。前 250 个字节是标头,可以正常读取。第二个 250 字节是“真实”数据。第三个 250 字节是包含验证值的尾部,例如流的 hmac。
这是代码的剪辑。我在位置 250 并要求 CryptoStream.Read 获取 250 个字节。返回 250 个字节,但输入位置现在位于流的末尾。有任何想法吗?
byteCount = cs.Read(outputBuffer, 0, bytesToRead)
00005001 inStream.Position = 256
00005002 inStream.Length = 768
00005003 bytesToRead = 256
00005004 bytesLeft = 256
00005010 Invoking cs.Read(outputBuffer, 0, bytesToRead)
00005011 inStream.Position = 768
00005012 inStream.Length = 768
00005013 bytesToRead = 256
00005014 bytesLeft = 0
00005015 byteCount = 256
在此先感谢您的帮助!