Example #1
0
 public virtual string GenerateIV()
 {
     if (this.Encryption)
     {
         return(RijndaelCryptograph.GenerateIV());
     }
     return(string.Empty);
 }
Example #2
0
        IResources CreateResources()
        {
            IResources resources = null;

#if UNITY_EDITOR
            if (SimulationSetting.IsSimulationMode)
            {
                Debug.Log("Use SimulationResources. Run In Editor");

                /* Create a PathInfoParser. */
                //IPathInfoParser pathInfoParser = new SimplePathInfoParser("@");
                IPathInfoParser pathInfoParser = new SimulationAutoMappingPathInfoParser();

                /* Create a BundleManager */
                IBundleManager manager = new SimulationBundleManager();

                /* Create a BundleResources */
                resources = new SimulationResources(pathInfoParser, manager);
            }
            else
#endif
            {
                /* Create a BundleManifestLoader. */
                IBundleManifestLoader manifestLoader = new BundleManifestLoader();

                /* Loads BundleManifest. */
                BundleManifest manifest = manifestLoader.Load(BundleUtil.GetReadOnlyDirectory() + BundleSetting.ManifestFilename);

                //manifest.ActiveVariants = new string[] { "", "sd" };
                manifest.ActiveVariants = new string[] { "", "hd" };

                /* Create a PathInfoParser. */
                //IPathInfoParser pathInfoParser = new SimplePathInfoParser("@");
                IPathInfoParser pathInfoParser = new AutoMappingPathInfoParser(manifest);

                /* Create a BundleLoaderBuilder */
                //ILoaderBuilder builder = new WWWBundleLoaderBuilder(new Uri(BundleUtil.GetReadOnlyDirectory()), false);

                /* AES128_CBC_PKCS7 */
                RijndaelCryptograph rijndaelCryptograph = new RijndaelCryptograph(128, Encoding.ASCII.GetBytes(this.key), Encoding.ASCII.GetBytes(this.iv));

                /* Use a custom BundleLoaderBuilder */
                ILoaderBuilder builder = new CustomBundleLoaderBuilder(new Uri(BundleUtil.GetReadOnlyDirectory()), false, rijndaelCryptograph);

                /* Create a BundleManager */
                IBundleManager manager = new BundleManager(manifest, builder);

                /* Create a BundleResources */
                resources = new BundleResources(pathInfoParser, manager);
            }
            return(resources);
        }
Example #3
0
        protected virtual List <IBundleModifier> CreateBundleModifierChain()
        {
            List <IBundleModifier> bundleModifierChain = new List <IBundleModifier>();

            bundleModifierChain.Add(new PublishBundleModifier(bundleInfo => true));

            if (this.Encryption)
            {
                Func <BundleInfo, bool> filter = null;
                switch (this.FilterType)
                {
                case EncryptionFilterType.All:
                    filter = bundle =>
                    {
                        return(true);
                    };
                    break;

                case EncryptionFilterType.RegularExpression:
                    filter = bundle =>
                    {
                        return(Regex.IsMatch(bundle.FullName, this.filterExpression));
                    };
                    break;

                case EncryptionFilterType.BundleNameList:
                    string[] bundles = Regex.Split(this.bundleNames, @"(\s)", RegexOptions.IgnorePatternWhitespace);
                    filter = bundle =>
                    {
                        return(Array.IndexOf(bundles, bundle.FullName) >= 0);
                    };
                    break;
                }

                RijndaelCryptograph rijndaelCryptograph = this.GetRijndaelCryptograph();
                bundleModifierChain.Add(new CryptographBundleModifier(rijndaelCryptograph, filter));
            }

            if (this.useHashFilename)
            {
                bundleModifierChain.Add(new HashFilenameBundleModifier());
            }

            return(bundleModifierChain);
        }
Example #4
0
        public virtual string GenerateKey()
        {
            if (this.Encryption)
            {
                int keySize = 16;
                switch (this.Algorithm)
                {
                case Algorithm.AES128_CBC_PKCS7:
                    keySize = 16;
                    break;

                case Algorithm.AES192_CBC_PKCS7:
                    keySize = 24;
                    break;

                case Algorithm.AES256_CBC_PKCS7:
                    keySize = 32;
                    break;
                }
                return(RijndaelCryptograph.GenerateKey(keySize));
            }
            return(string.Empty);
        }