Mono.Cecil.CryptoService.CopyStreamChunk C# (CSharp) Method

CopyStreamChunk() static private method

static private CopyStreamChunk ( Stream stream, Stream dest_stream, Array buffer, int length ) : void
stream Stream
dest_stream Stream
buffer Array
length int
return void
		static void CopyStreamChunk (Stream stream, Stream dest_stream, byte [] buffer, int length)
		{
			while (length > 0) {
				int read = stream.Read (buffer, 0, System.Math.Min (buffer.Length, length));
				dest_stream.Write (buffer, 0, read);
				length -= read;
			}
		}

Usage Example

Esempio n. 1
0
        private static byte[] HashStream(Stream stream, ImageWriter writer, out int strong_name_pointer)
        {
            Section       section                      = writer.text;
            int           headerSize                   = (int)writer.GetHeaderSize();
            int           pointerToRawData             = (int)section.PointerToRawData;
            DataDirectory strongNameSignatureDirectory = writer.GetStrongNameSignatureDirectory();

            if (strongNameSignatureDirectory.Size == 0)
            {
                throw new InvalidOperationException();
            }
            strong_name_pointer = (int)((long)pointerToRawData + (ulong)(strongNameSignatureDirectory.VirtualAddress - section.VirtualAddress));
            int         size        = (int)strongNameSignatureDirectory.Size;
            SHA1Managed sHA1Managed = new SHA1Managed();

            byte[] numArray = new byte[8192];
            using (CryptoStream cryptoStream = new CryptoStream(Stream.Null, sHA1Managed, CryptoStreamMode.Write))
            {
                stream.Seek((long)0, SeekOrigin.Begin);
                CryptoService.CopyStreamChunk(stream, cryptoStream, numArray, headerSize);
                stream.Seek((long)pointerToRawData, SeekOrigin.Begin);
                CryptoService.CopyStreamChunk(stream, cryptoStream, numArray, strong_name_pointer - pointerToRawData);
                stream.Seek((long)size, SeekOrigin.Current);
                CryptoService.CopyStreamChunk(stream, cryptoStream, numArray, (int)(stream.Length - (long)(strong_name_pointer + size)));
            }
            return(sHA1Managed.Hash);
        }
All Usage Examples Of Mono.Cecil.CryptoService::CopyStreamChunk