Exemplo n.º 1
0
        public async void RecoverFilesMergeDecryptSeparateFolder(List <string> cidArray)
        {
            //We connect
            var ipfs = new IpfsClient(ipfsServer);

            if (cidArray.Count >= 0)
            {
                // First need to get the right folder. For ease of test, the part of the file are downloaded
                // on a folder filename-extension, i.e. test.txt to blockget/test-txt
                string fileName    = Path.GetFileNameWithoutExtension(cidArray[0]);
                string extensionPt = Path.GetExtension(cidArray[0]);
                //string extension = extensionPt.Skip(1).ToArray();
                string   extension          = extensionPt.Remove(0, 1);
                string   inputFolder        = Globals.BLOCKGET_FILE_FOLDER + fileName + "-" + extension + "\\";
                string[] SplittedFilesArray = new string[Globals.SPLIT_NB];
                string   baseFileName       = Path.GetFileNameWithoutExtension(cidArray[0]);
                int      i = 0;

                foreach (string s in cidArray.Skip(1)) // We want to skip the first (contre intuitive, not 0)
                {
                    try
                    {
                        //SplittedFilesArray[i] = inputFolder + baseFileName + "." +
                        //        i.ToString().PadLeft(5, Convert.ToChar("0")) + extensionPt + ".tmp";
                        SplittedFilesArray[i] = inputFolder + baseFileName + extensionPt + ".aes." +
                                                i.ToString().PadLeft(5, Convert.ToChar("0")) + ".tmp";
                        //We download bytes => File
                        Stream result = await ipfs.FileSystem.ReadFileAsync(s);

                        //We want to save them in the SaveFolder + cidArray folder
                        //Could also try: Stream result = await ipfs.FileSystem.ReadFileAsync(s).Result;
                        using (FileStream DestinationStream = File.Create(SplittedFilesArray[i])) //TODO ERROR: System.IO.DirectoryNotFoundException: 'Could not find a part of the path 'C:\Blockget\ifmalesuperfherodresedlikewomen-jpg\ifmalesuperfherodresedlikewomen.jpg.aes.00000.tmp'.'
                        {
                            await result.CopyToAsync(DestinationStream);
                        }
                        i++;
                    } //System.Net.Http.HttpRequestException: 'invalid path "": path does not begin with '/''
                    catch (HttpRequestException e)
                    {
                        Console.WriteLine(e.Message);
                        Console.WriteLine("FAIL! Don't forget to run IPFS on your computer");
                        break;
                    }
                }
                // We merge
                Split.MergeFile(inputFolder);
                //We decrypt
                //string pathEncryptedFile = inputFolder + fileName + ".aes"; //Globals.BLOCKGET_FILE_FOLDER + "\\" + cidArray[0];
                string pathEncryptedFile = inputFolder + baseFileName + extensionPt + ".aes";
                Encryption.DecryptFile(pathEncryptedFile);
            }
            else
            {
                Console.WriteLine("Problem this entry is empty");
            }
        }
Exemplo n.º 2
0
        //Split and Merge Encrypted Text
        public static void testSplitMergeEncryptedText()
        {
            string encryptedFile = Encryption.EncryptTextFile("C:\\Blockget\\test.txt");

            Console.WriteLine("TEST: Encrypted file: {0}", encryptedFile);
            string[] splittedFiles = Split.SplitFile("C:\\Blockget\\test.txt.aes");
            foreach (string s in splittedFiles)
            {
                Console.WriteLine("TEST: Splitted Files paths are {0}", s);
            }
            string outputMerge = Split.MergeFile("C:\\Blockget\\test-txt\\");

            Console.WriteLine("TEST: Output of merged file is {0}", outputMerge);
            string resultDecrypt = Encryption.DecryptTextFile("C:\\Blockget\\test-txt\\test.txt.aes");

            Console.WriteLine("TEST: Decryped file is {0}", resultDecrypt);
        }
Exemplo n.º 3
0
        /// <summary>
        /// Recover the files from the array of CID and filename: download, merge and decrypt
        /// </summary>
        /// <param name="cidArray"></param>
        private async void RecoverFilesMergeDecrypt(string[] cidArray)
        {
            //We connect
            var ipfs = new IpfsClient(ipfsServer);

            foreach (string s in cidArray.Skip(0))
            {
                //We download
                string result = await ipfs.FileSystem.ReadAllTextAsync(s);

                //We want to save them in the SaveFolder + cidArray folder
            }
            // We merge
            string inputFolder = Globals.BLOCKGET_FILE_FOLDER + "\\" + cidArray[0] + "\\";

            Split.MergeFile(inputFolder);
            //We decrypt
            string pathFile = Globals.BLOCKGET_FILE_FOLDER + "\\" + cidArray[0];

            Encryption.DecryptFile(pathFile + ".aes");
        }
Exemplo n.º 4
0
        private async void RecoverTextMergeDecrypt(List <string> cidArray)
        {
            //We connect
            var ipfs = new IpfsClient(ipfsServer);

            if (cidArray.Count >= 0)
            {
                // First need to get the right folder. For ease of test, the part of the file are downloaded
                // on a folder filename-extension, i.e. test.txt to blockget/test-txt
                string   fileName           = Path.GetFileNameWithoutExtension(cidArray[0]);
                string   extensionPt        = Path.GetExtension(cidArray[0]);
                string   extension          = extensionPt.Remove(0, 1);
                string   inputFolder        = Globals.BLOCKGET_FILE_FOLDER + fileName + "-" + extension + "\\";
                string[] SplittedFilesArray = new string[Globals.SPLIT_NB];
                string   baseFileName       = Path.GetFileNameWithoutExtension(cidArray[0]);
                int      i = 0;

                foreach (string s in cidArray.Skip(1)) // We want to skip the first (contre intuitive, not 0)
                {
                    SplittedFilesArray[i] = inputFolder + baseFileName + extensionPt + ".aes." +
                                            i.ToString().PadLeft(5, Convert.ToChar("0")) + ".tmp";
                    //We download text => string
                    string result = await ipfs.FileSystem.ReadAllTextAsync(s);

                    System.IO.File.WriteAllText(SplittedFilesArray[i], result);
                    i++;
                }
                // We merge
                Split.MergeFile(inputFolder);
                //We decrypt
                string pathEncryptedFile = inputFolder + baseFileName + extensionPt + ".aes";
                Encryption.DecryptFileSeparateFolder(pathEncryptedFile);
            }
            else
            {
                Console.WriteLine("Problem this entry is empty");
            }
        }