Exemple #1
0
        private Exception CreateSignature(string filePath, string signaturePath)
        {
            var fileIn  = new FileStream(filePath, FileMode.Open, FileAccess.Read);
            var fileOut = new FileStream(signaturePath, FileMode.OpenOrCreate, FileAccess.Write);

            Librsync.ComputeSignature(fileIn).CopyTo(fileOut);
            fileOut.Close();
            fileIn.Close();
            return(new Exception());
        }
Exemple #2
0
        public string SignFile(string Blob)
        {
            byte[] fileData     = Convert.FromBase64CharArray(Blob.ToCharArray(), 0, Blob.Length);
            Stream sig          = Librsync.ComputeSignature(new MemoryStream(fileData));
            var    memoryStream = new MemoryStream();

            sig.CopyTo(memoryStream);
            byte[] sigBytes = memoryStream.ToArray();
            return(System.Convert.ToBase64String(sigBytes));
        }
Exemple #3
0
        private void CreateDelta(string filePath, string signaturePath, string deltaPath)
        {
            var baseSignatureFileIn = new FileStream(signaturePath, FileMode.Open, FileAccess.Read);
            var fileIn   = new FileStream(filePath, FileMode.Open, FileAccess.Read);
            var deltaOut = new FileStream(deltaPath, FileMode.OpenOrCreate, FileAccess.ReadWrite);

            Librsync.ComputeDelta(baseSignatureFileIn, fileIn).CopyTo(deltaOut);
            baseSignatureFileIn.Close();
            fileIn.Close();
            deltaOut.Close();
        }
Exemple #4
0
        private void NullDeltaTest(byte[] deltas, byte[] expected)
        {
            var nullStream = new MemoryStream();

            using (var deltaStream = new MemoryStream(deltas))
            {
                var result    = Librsync.ApplyDelta(nullStream, deltaStream);
                var resultMem = new MemoryStream();
                result.CopyTo(resultMem);

                Assert.IsTrue(expected.SequenceEqual(resultMem.ToArray()));
            }
        }
Exemple #5
0
 public static void ComputeSignature(string FilePath, string SignatureOutputPath)
 {
     using (FileStream file = new FileStream(FilePath, FileMode.Open))
     {
         using (var signature = Librsync.ComputeSignature(file))
         {
             using (var signatureFile = File.Create(SignatureOutputPath))
             {
                 signature.Seek(0, SeekOrigin.Begin);
                 signature.CopyTo(signatureFile);
             }
         }
     }
 }
Exemple #6
0
 public static void ApplyDelta(string OriginalFilePath, string DeltaPath, string NewFileOutputPath)
 {
     using (var originalFile = new FileStream(OriginalFilePath, FileMode.Open))
     {
         using (var delta = new FileStream(DeltaPath, FileMode.Open))
         {
             using (var resultStream = Librsync.ApplyDelta(originalFile, delta))
             {
                 using (var newFile = File.Create(NewFileOutputPath))
                 {
                     newFile.Seek(0, SeekOrigin.Begin);
                     resultStream.CopyTo(newFile);
                 }
             }
         }
     }
 }
Exemple #7
0
 public static void ComputeDelta(string NewFilePath, string SignaturePath, string DeltaOutputPath)
 {
     using (var file = new FileStream(NewFilePath, FileMode.Open))
     {
         using (var signature = new FileStream(SignaturePath, FileMode.Open))
         {
             using (var delta = Librsync.ComputeDelta(signature, file))
             {
                 using (var deltaFile = File.Create(DeltaOutputPath))
                 {
                     //delta.Seek(0, SeekOrigin.Begin);
                     delta.CopyTo(deltaFile);
                 }
             }
         }
     }
 }
Exemple #8
0
        public void RunIteration()
        {
            var file    = MakeRandomFile();
            var newFile = file;

            for (int i = 0; i < 10; i++)
            {
                newFile = ApplyChange(newFile);

                var signature = Librsync.ComputeSignature(new MemoryStream(file));
                var delta     = Librsync.ComputeDelta(signature, new MemoryStream(newFile));
                var deltaMem  = new MemoryStream();
                delta.CopyTo(deltaMem);
                deltaMem.Seek(0, SeekOrigin.Begin);
                var regenerated = Librsync.ApplyDelta(new MemoryStream(file), deltaMem);

                var regeneratedMem = new MemoryStream();
                regenerated.CopyTo(regeneratedMem);
                Assert.IsTrue(newFile.SequenceEqual(regeneratedMem.ToArray()));
            }
        }
Exemple #9
0
        public void PatchSeekTest()
        {
            var file      = MakeRandomFile();
            var newFile   = ApplyChange(file);
            var signature = Librsync.ComputeSignature(new MemoryStream(file));
            var delta     = Librsync.ComputeDelta(signature, new MemoryStream(newFile));
            var deltaMem  = new MemoryStream();

            delta.CopyTo(deltaMem);
            deltaMem.Seek(0, SeekOrigin.Begin);
            var regenerated = Librsync.ApplyDelta(new MemoryStream(file), deltaMem);

            var regeneratedMem = new MemoryStream();

            regenerated.CopyTo(regeneratedMem);

            Assert.AreEqual(regeneratedMem.Length, regenerated.Length);
            for (int i = 0; i < regeneratedMem.Length; i++)
            {
                regeneratedMem.Seek(i, SeekOrigin.Begin);
                regenerated.Seek(i, SeekOrigin.Begin);
                Assert.AreEqual(regeneratedMem.ReadByte(), regenerated.ReadByte());
            }
        }