Пример #1
0
        public void Write()
        {
            if (IsEmbedded)
            {
                return;
            }

            WritePdbFile();

            if (final_stream.value != null)
            {
                writer.BaseStream.Seek(0, SeekOrigin.Begin);
                var buffer = new byte [8192];
                CryptoService.CopyStreamChunk(writer.BaseStream, final_stream.value, buffer, (int)writer.BaseStream.Length);
            }
        }
Пример #2
0
        void ComputeChecksumAndPdbId()
        {
            var buffer = new byte [8192];

            // Compute the has of the entire file - PDB ID is zeroes still
            writer.BaseStream.Seek(0, SeekOrigin.Begin);
            var sha256 = SHA256.Create();

            using (var crypto_stream = new CryptoStream(Stream.Null, sha256, CryptoStreamMode.Write)) {
                CryptoService.CopyStreamChunk(writer.BaseStream, crypto_stream, buffer, (int)writer.BaseStream.Length);
            }

            pdb_checksum = sha256.Hash;

            var hashBytes = new ByteBuffer(pdb_checksum);

            pdb_id_guid  = new Guid(hashBytes.ReadBytes(16));
            pdb_id_stamp = hashBytes.ReadUInt32();
        }