Esempio n. 1
0
            public static HassiumList decryptfilebytes(VirtualMachine vm, HassiumObject self, SourceLocation location, params HassiumObject[] args)
            {
                byte[]      key  = ListToByteArr(vm, location, args[0].ToList(vm, args[0], location));
                byte[]      iv   = ListToByteArr(vm, location, args[1].ToList(vm, args[1], location));
                HassiumFile file = args[2] is HassiumFile ? (args[2] as HassiumFile) : new HassiumFile(args[2].ToString(vm, args[2], location).String);

                byte[] data = (HassiumFile.FileTypeDef.readallbytes(vm, file, location) as HassiumByteArray).Values.ToArray();

                return(new HassiumByteArray(decrypt(key, iv, data), new HassiumObject[0]));
            }
Esempio n. 2
0
            public static HassiumList encryptfilebytes(VirtualMachine vm, HassiumObject self, SourceLocation location, params HassiumObject[] args)
            {
                byte[]      key  = ListToByteArr(vm, location, args[0].ToList(vm, args[0], location));
                byte[]      iv   = ListToByteArr(vm, location, args[1].ToList(vm, args[1], location));
                HassiumFile file = args[2] is HassiumFile ? (args[2] as HassiumFile) : new HassiumFile(args[2].ToString(vm, args[2], location).String);

                using (var memStream = new MemoryStream())
                {
                    using (var cryptoStream = new CryptoStream(memStream, new RijndaelManaged().CreateEncryptor(key, iv), CryptoStreamMode.Write))
                    {
                        while (file.Reader.BaseStream.Position < file.Reader.BaseStream.Length)
                        {
                            byte[] buff = new byte[(byte)(HassiumFile.FileTypeDef.readbyte(vm, file, location) as HassiumChar).Char];
                            cryptoStream.Write(buff, 0, 1);
                        }
                    }
                    return(new HassiumByteArray(memStream.ToArray(), new HassiumObject[0]));
                }
            }