Esempio n. 1
0
        /// <summary>
        ///     Decrypt the result received and retrieve it.
        /// </summary>
        /// <param name="idAlgo"></param>
        /// <param name="result"></param>
        /// <param name="key"></param>
        /// <param name="size"></param>
        /// <returns></returns>
        public static string GetDecryptedResultManual(string idAlgo, string result, string key, int size)
        {
            if (result == ClassSeedNodeStatus.SeedNone || result == ClassSeedNodeStatus.SeedError)
            {
                return(result);
            }

            try
            {
                switch (idAlgo)
                {
                case ClassAlgoEnumeration.Rijndael:
                    if (ClassUtils.IsBase64String(result))
                    {
                        return(Rijndael.DecryptStringManual(result, key, size));
                    }

                    break;

                case ClassAlgoEnumeration.Xor:
                    break;
                }
            }
            catch (Exception erreur)
            {
#if DEBUG
                Debug.WriteLine("Error Decrypt of " + result + " with key: " + key + " : " + erreur.Message);
#endif
                return(ClassAlgoErrorEnumeration.AlgoError);
            }

            return(ClassAlgoErrorEnumeration.AlgoError);
        }
Esempio n. 2
0
        /// <summary>
        ///     Decrypt the result received and retrieve it.
        /// </summary>
        /// <param name="idAlgo"></param>
        /// <param name="result"></param>
        /// <param name="size"></param>
        /// <param name="AesIv"></param>
        /// <param name="AesSalt"></param>
        /// <returns></returns>
        public static string GetDecryptedResult(string idAlgo, string result, int size, byte[] AesIv, byte[] AesSalt)
        {
            if (result == ClassSeedNodeStatus.SeedNone || result == ClassSeedNodeStatus.SeedError)
            {
                return(result);
            }

            try
            {
                switch (idAlgo)
                {
                case ClassAlgoEnumeration.Rijndael:
                    if (ClassUtils.IsBase64String(result))
                    {
                        return(Rijndael.DecryptString(result, size, AesIv, AesSalt));
                    }

                    break;

                case ClassAlgoEnumeration.Xor:
                    break;
                }
            }
            catch (Exception erreur)
            {
                return(ClassAlgoErrorEnumeration.AlgoError);
            }

            return(ClassAlgoErrorEnumeration.AlgoError);
        }
        public static string CompressData(string data)
        {
            var byteData = ClassUtils.GetByteArrayFromString(data);

            using (MemoryStream output = new MemoryStream())
            {
                using (DeflateStream dstream = new DeflateStream(output, CompressionMode.Compress))
                {
                    dstream.Write(byteData, 0, byteData.Length);
                }
                return(Convert.ToBase64String(output.ToArray()));
            }
        }
 public static string DecompressData(string data)
 {
     using (MemoryStream input = new MemoryStream(Convert.FromBase64String(data)))
     {
         using (MemoryStream output = new MemoryStream())
         {
             using (DeflateStream dstream = new DeflateStream(input, CompressionMode.Decompress))
             {
                 dstream.CopyTo(output);
             }
             var outputData = output.ToArray();
             return(ClassUtils.GetStringFromByteArray(outputData, outputData.Length));
         }
     }
 }
        public static string ConvertStringtoSHA512(string str)
        {
            var bytes = ClassUtils.GetByteArrayFromString(str);

            using (var hash = SHA512.Create())
            {
                var hashedInputBytes = hash.ComputeHash(bytes);

                var hashedInputStringBuilder = new StringBuilder(128);
                foreach (var b in hashedInputBytes)
                {
                    hashedInputStringBuilder.Append(b.ToString("X2"));
                }

                string hashToReturn = hashedInputStringBuilder.ToString();
                hashedInputStringBuilder.Clear();
                return(hashToReturn);
            }
        }
        public static string FromHex(string hex)
        {
            var ba = ClassUtils.GetByteArrayFromString(hex);

            return(BitConverter.ToString(ba).Replace("-", ""));
        }
Esempio n. 7
0
 /// <summary>
 /// Decrypt string with Rijndael.
 /// </summary>
 /// <param name="cipherText"></param>
 /// <param name="passPhrase"></param>
 /// <param name="keysize"></param>
 /// <returns></returns>
 public static string DecryptStringManual(string cipherText, string passPhrase, int keysize)
 {
     using (PasswordDeriveBytes password = new PasswordDeriveBytes(passPhrase, Encoding.UTF8.GetBytes(ClassUtils.FromHex(passPhrase.Substring(0, 8)))))
     {
         byte[] keyBytes = password.GetBytes(keysize / 8);
         using (var symmetricKey = new AesCryptoServiceProvider()
         {
             Mode = CipherMode.CFB
         })
         {
             byte[] initVectorBytes = password.GetBytes(16);
             symmetricKey.BlockSize = 128;
             symmetricKey.KeySize   = keysize;
             symmetricKey.Padding   = PaddingMode.PKCS7;
             symmetricKey.Key       = keyBytes;
             using (ICryptoTransform decryptor = symmetricKey.CreateDecryptor(keyBytes, initVectorBytes))
             {
                 byte[] cipherTextBytes = Convert.FromBase64String(cipherText);
                 using (MemoryStream memoryStream = new MemoryStream(cipherTextBytes))
                 {
                     using (CryptoStream cryptoStream = new CryptoStream(memoryStream, decryptor, CryptoStreamMode.Read))
                     {
                         byte[] plainTextBytes     = new byte[cipherTextBytes.Length];
                         int    decryptedByteCount = cryptoStream.Read(plainTextBytes, 0, plainTextBytes.Length);
                         return(Encoding.UTF8.GetString(plainTextBytes, 0, decryptedByteCount));
                     }
                 }
             }
         }
     }
 }
Esempio n. 8
0
 /// <summary>
 /// Encrypt string from Rijndael.
 /// </summary>
 /// <param name="plainText"></param>
 /// <param name="passPhrase"></param>
 /// <param name="keysize"></param>
 /// <returns></returns>
 public static string EncryptStringManual(string plainText, string passPhrase, int keysize)
 {
     using (PasswordDeriveBytes password = new PasswordDeriveBytes(passPhrase, Encoding.UTF8.GetBytes(ClassUtils.FromHex(passPhrase.Substring(0, 8)))))
     {
         byte[] keyBytes = password.GetBytes(keysize / 8);
         using (var symmetricKey = new AesCryptoServiceProvider()
         {
             Mode = CipherMode.CFB
         })
         {
             byte[] initVectorBytes = password.GetBytes(16);
             symmetricKey.BlockSize = 128;
             symmetricKey.KeySize   = keysize;
             symmetricKey.Padding   = PaddingMode.PKCS7;
             symmetricKey.Key       = keyBytes;
             using (ICryptoTransform encryptor = symmetricKey.CreateEncryptor(keyBytes, initVectorBytes))
             {
                 using (MemoryStream memoryStream = new MemoryStream())
                 {
                     using (CryptoStream cryptoStream = new CryptoStream(memoryStream, encryptor, CryptoStreamMode.Write))
                     {
                         byte[] plainTextBytes = Encoding.UTF8.GetBytes(plainText);
                         cryptoStream.Write(plainTextBytes, 0, plainTextBytes.Length);
                         cryptoStream.FlushFinalBlock();
                         byte[] cipherTextBytes = memoryStream.ToArray();
                         return(Convert.ToBase64String(cipherTextBytes));
                     }
                 }
             }
         }
     }
 }