Exemple #1
0
        public static Byte[] fromAES(String sPass, Byte[] bMessage)
        {
            // Key mat
            hPickman.AES_KEY_MAT oKeyMat = ComputeSha256KeyMat(sPass);

            // Encrypt
            using (Aes aes = Aes.Create())
            {
                aes.Key = oKeyMat.bKey;
                aes.IV  = oKeyMat.bIV;

                ICryptoTransform dec = aes.CreateDecryptor(aes.Key, aes.IV);
                using (MemoryStream ms = new MemoryStream())
                {
                    using (CryptoStream cs = new CryptoStream(ms, dec, CryptoStreamMode.Write))
                    {
                        using (BinaryWriter sw = new BinaryWriter(cs))
                        {
                            sw.Write(bMessage);
                        }
                        return(ms.ToArray());
                    }
                }
            }
        }
Exemple #2
0
        public static hPickman.AES_KEY_MAT ComputeSha256KeyMat(String sPass)
        {
            hPickman.AES_KEY_MAT oKeyMat = new hPickman.AES_KEY_MAT();
            Encoding             enc     = Encoding.UTF8;

            SHA256 sha256 = new SHA256CryptoServiceProvider();

            oKeyMat.bKey = sha256.ComputeHash(enc.GetBytes(sPass));
            // Hash sPass reverse
            oKeyMat.bIV = sha256.ComputeHash(enc.GetBytes(new String(sPass.Reverse().ToArray())));
            Array.Resize(ref oKeyMat.bIV, 16);

            return(oKeyMat);
        }