public string Upload(string path, string filename, string key, int alg)
        {
            try
            {
                byte[]     f  = File.ReadAllBytes(path);
                StoredFile sf = new StoredFile();
                sf.username = Username;
                sf.filename = filename;
                sf.hash     = MD5.HashString(f);
                switch (alg)
                {
                case 0:
                    sf.data = DoubleTransposition.Encrypt(f, key, sf.hash);
                    sf.size = sf.data.Length;
                    break;

                case 1:
                    sf.data = XTEA.Encrypt(f, key, sf.hash);
                    sf.size = sf.data.Length;
                    break;

                default: throw new Exception("You have not chosen an algorithm.");
                }

                svc.Upload(Username, sf, Token);
                Refresh();
                return("File successfuly uploaded.");
            }
            catch (Exception e)
            {
                return(e.Message);
            }
        }
        public void XTEAEcnryption(FileInfo file, FormModel model)
        {
            bool threadSuccesfull = false;
            var  timeStarted      = DateTime.Now;

            try
            {
                //OutputFileName
                string outputFileName = FileNameCreator.CreateFileEncryptedName(
                    model.Folders.OutputFolder,
                    file.Name,
                    model.AlgorithmName);

                //Log
                loggerController.Add(" ! File enc: " + file.Name + ", Alg: " + model.AlgorithmName);

                //Read a file char by char, and encrypt it
                using (FileStream fsw = new FileStream(outputFileName, FileMode.Create))
                {
                    using (BinaryWriter bw = new BinaryWriter(fsw, new ASCIIEncoding()))
                    {
                        //Writing the extension
                        char[] extension       = file.Extension.Substring(1, file.Extension.Length - 1).ToCharArray();
                        char   extensionLength = (char)extension.Length;
                        bw.Write(extensionLength);
                        for (var k = 0; k < extension.Length; k++)
                        {
                            bw.Write(extension[k]);
                        }

                        //Reading and encrypting files
                        var readedValue    = File.ReadAllBytes(file.FullName);
                        var encryptedValue = XTEA.Encrypt(readedValue);
                        bw.Write(encryptedValue);

                        if (LoadedFilesController._END_OF_ENC_DEC_THREADS)
                        {
                            bw.Dispose();
                            fsw.Dispose();

                            File.Delete(outputFileName);
                            Thread.CurrentThread.Abort();
                        }
                    }
                }
                threadSuccesfull = true;
                Thread.Sleep(250);
            }
            catch (Exception ex)
            {
                loggerController.Add(" ? Enc exception: " + ex.Message);
                threadSuccesfull = false;
            }
            finally
            {
                this.ThreadEnds(file, threadSuccesfull, timeStarted);
            }
        }
        /// <summary>
        /// Stores the user's credentials in PlayerPrefs.
        /// </summary>
        /// <param name="username">The username to store.</param>
        /// <param name="token">The token to store.</param>
        /// <returns>Whether the operations was successfull.</returns>
        public bool RememberUserCredentials(string username, string token)
        {
            if (string.IsNullOrEmpty(UserCredentialsPreferences) || string.IsNullOrEmpty(Settings.EncryptionKey) ||
                string.IsNullOrEmpty(username) || string.IsNullOrEmpty(token))
            {
                return(false);
            }
            var credentials = XTEA.Encrypt(username, Settings.EncryptionKey) + "#" + XTEA.Encrypt(token, Settings.EncryptionKey);

            PlayerPrefs.SetString(UserCredentialsPreferences, credentials);
            PlayerPrefs.Save();
            return(true);
        }
Example #4
0
 /// <summary>
 ///   Sends a packet to the client
 /// </summary>
 /// <param name="packet"> The Packet </param>
 internal void SendPacket(IPacket packet)
 {
     try
     {
         _stream.Write(_needToDecrypt ? XTEA.Encrypt(packet.Data, Config.Pong) : packet.Data, 0,
                       packet.Data.Length);
     }
     catch (IOException e)
     {
         _log.Error("Error with client: " + _ip + " Exception: " + e);
         Drop("IOException: " + e.Message);
     }
 }
        public void XTEABMPEcnryption(FileInfo file, FormModel model)
        {
            bool threadSuccesfull = false;
            var  timeStarted      = DateTime.Now;

            try
            {
                if (!file.Extension.Contains("bmp"))
                {
                    throw new Exception("File is not bmp!");
                }
                //OutputFileName
                string outputFileName = FileNameCreator.CreateFileEncryptedNameBMP(
                    model.Folders.OutputFolder,
                    file.Name,
                    model.AlgorithmName);

                //Log
                loggerController.Add(" ! File enc: " + file.Name + ", Alg: " + model.AlgorithmName);

                //Read a file char by char, and encrypt it
                using (FileStream fsw = new FileStream(outputFileName, FileMode.Create))
                {
                    using (BinaryWriter bw = new BinaryWriter(fsw, new ASCIIEncoding()))
                    {
                        //Reading and encrypting files
                        var readedValue = File.ReadAllBytes(file.FullName);

                        long   pos    = readedValue[10] + 256 * (readedValue[11] + 256 * (readedValue[12] + 256 * readedValue[13]));
                        byte[] header = new byte[pos];
                        for (int i = 0; i < header.Length; i++)
                        {
                            header[i] = readedValue[i];
                        }

                        byte[] data = readedValue.Skip(header.Length).ToArray();

                        var encryptedValue = XTEA.Encrypt(data);
                        encryptedValue = header.Concat(encryptedValue).ToArray();
                        bw.Write(encryptedValue);

                        if (LoadedFilesController._END_OF_ENC_DEC_THREADS)
                        {
                            bw.Dispose();
                            fsw.Dispose();
                            File.Delete(outputFileName);
                            Thread.CurrentThread.Abort();
                        }
                    }
                }
                threadSuccesfull = true;
                Thread.Sleep(250);
            }
            catch (Exception ex)
            {
                loggerController.Add(" ? Enc exception: " + ex.Message);
                threadSuccesfull = false;
            }
            finally
            {
                this.ThreadEnds(file, threadSuccesfull, timeStarted);
            }
        }