private void RunPass()
        {
            var PM = new PassManager();

            this.pass = new Symbooglix.Transform.OldExprCanonicaliser(/*annotateProceduresAndImplementations=*/ true);
            PM.Add(this.pass);
            PM.Run(prog);
        }
示例#2
0
    protected void bt_valid_Click(object sender, EventArgs e)
    {
        /*
         * https://stackoverflow.com/questions/1054022/best-way-to-store-password-in-database
         * https://stackoverflow.com/questions/4717789/in-a-using-block-is-a-sqlconnection-closed-on-return-or-exception
         * https://stackoverflow.com/questions/15631602/how-to-set-sql-server-connection-string
         * https://www.developpez.net/forums/anocode.php?id=b4319d18e687445ae582f8c36121a722
         * https://stackoverflow.com/questions/23185990/sqlcommand-with-using-statement
         * https://stackoverflow.com/questions/28705515/check-login-credentials-from-a-database
         */

        PassManager pm            = new PassManager();
        String      encryptedPass = pm.EncryptData(tb_mdp.Text);

        System.Diagnostics.Debug.WriteLine("Encrypted Pass : "******"SELECT COUNT(*) FROM UTILISATEUR WHERE LOGIN = @login AND PASSWD = @mdp", con))
            {
                con.Open();
                cmd.Parameters.AddWithValue("@login", tb_util.Text);
                cmd.Parameters.AddWithValue("@mdp", encryptedPass);
                var count = cmd.ExecuteScalar();

                System.Diagnostics.Debug.WriteLine(count);

                // si le couple login/pass existe dans la base, on créer deux variables sessions et on redirige vers le menu
                if (count != null)
                {
                    System.Diagnostics.Debug.WriteLine("OK");
                    Session["user"]   = tb_util.Text;
                    Session["passwd"] = tb_mdp.Text;
                    Response.Redirect("./menu.aspx");
                }
                else
                {
                    System.Diagnostics.Debug.WriteLine("KO");
                    Response.Redirect("./accueil.aspx");
                }
            }
        }



        /*
         * if (this.IsPostBack)
         * {
         *  if ((tb_util.Text == "user") && (tb_mdp.Text == "passwd")){
         *      Session["user"] = tb_util.Text;
         *      Session["passwd"] = tb_mdp.Text;
         *      Response.Redirect("./menu.aspx");
         *  } else {
         *      Response.Redirect("./accueil.aspx");
         *  }
         * }
         */
    }
示例#3
0
        public ActionResult StaffInsert(PersonelDTO personel, UyeDTO uye)
        {
            uye.KullaniciAdi = (personel.Ad + personel.Soyad).Trim().Replace(" ", string.Empty).ToLower();
            uye.Parola       = PassManager.Base64Encrypt(personel.TCNo);
            int id = _uyeService.Insert(uye);

            _personelService.Insert(personel, id);
            return(RedirectToAction("StaffList", "Staff"));
        }
        private List <EmployeeElectronicPass> LoadPass()
        {
            var manager = new PassManager();


            var list = manager.ReadPassRecordFromRemote();

            return(list);
        }
        public void TestCase()
        {
            Prog = SymbooglixTest.LoadProgramFrom("Transforms/programs/AnnotationPass.bpl");

            var pm = new PassManager();

            pm.Add(new Symbooglix.Annotation.InstructionStatisticsAnnotater());
            pm.Run(Prog);

            // Check Axioms
            foreach (var axiom in Prog.TopLevelDeclarations.OfType <Axiom>())
            {
                DoSomethingWithInstructionStatistics(axiom.GetInstructionStatistics());
            }


            // Check Procedures
            foreach (var proc in Prog.TopLevelDeclarations.OfType <Procedure>())
            {
                foreach (var requires in proc.Requires)
                {
                    DoSomethingWithInstructionStatistics(requires.GetInstructionStatistics());
                }

                foreach (var ensures in proc.Ensures)
                {
                    DoSomethingWithInstructionStatistics(ensures.GetInstructionStatistics());
                }
            }

            // Check basic blocks
            foreach (var bb in Prog.Blocks())
            {
                foreach (var cmd in bb.Cmds)
                {
                    DoSomethingWithInstructionStatistics(cmd.GetInstructionStatistics());
                }

                if (bb.TransferCmd is GotoCmd)
                {
                    var gotoCmd    = bb.TransferCmd as GotoCmd;
                    var instrStats = gotoCmd.GetInstructionStatistics() as GotoInstructionStatistics;
                    Assert.AreEqual(0, instrStats.Covered);
                    Assert.AreEqual(0, instrStats.TotalJumps);

                    foreach (var target in gotoCmd.labelTargets)
                    {
                        Assert.AreEqual(0, instrStats.GetJumpsTo(target));
                    }
                }
                else
                {
                    DoSomethingWithInstructionStatistics((bb.TransferCmd as ReturnCmd).GetInstructionStatistics());
                }
            }
        }
        public void TestCase()
        {
            Program program = SymbooglixTest.LoadProgramFrom("Transforms/programs/NestedFunctionsToInline.bpl");

            var PM = new PassManager();

            PM.Add(new FunctionInliningPass());
            PM.Run(program);

            // Check the Expression on the AssertCmd was inlined as expected
            var assert = SymbooglixTest.GetMain(program).Blocks[0].Cmds[0] as AssertCmd;

            Assert.AreEqual("v + 1 + v + 1 + 1 == 12", assert.Expr.ToString());
        }
示例#7
0
        public void InlineExistsWithFreeVariable()
        {
            Program program = SymbooglixTest.LoadProgramFrom("Transforms/programs/InlineExists.bpl");

            var PM = new PassManager();

            PM.Add(new FunctionInliningPass());
            PM.Run(program);

            // Check the requires on strLen
            var strLenProc = program.TopLevelDeclarations.OfType <Procedure>().Where(proc => proc.Name == "strLen").First();

            Assert.AreEqual("(exists x: int :: x >= 0 && s[x] == 0bv8)", strLenProc.Requires[0].Condition.ToString());
        }
        public ActionResult SubscriberInsert(AboneDTO abone, UyeDTO uye, AracDTO arac)
        {
            uye.KullaniciAdi = (abone.Adi + abone.Soyad).Trim().Replace(" ", string.Empty).ToLower();
            uye.Parola       = PassManager.Base64Encrypt(abone.TCNO);
            int uyeID = _uyeService.Insert(uye);
            int aracID;

            aracID = _aracService.GetCar(arac.Plaka);
            if (aracID == 0)
            {
                aracID = _aracService.Insert(arac);
            }
            _aboneService.Insert(abone, uyeID, aracID);
            return(RedirectToAction("SubscriberList", "Subscriber"));
        }
示例#9
0
 public ActionResult Update(EUserDTO user)
 {
     try
     {
         user.Id       = ((SessionContext)Session["SessionContext"]).Id;
         user.Password = PassManager.Base64Encrypt(user.Password);
         _userService.Update(user);
         _uow.SaveChanges();
         return(Json(true, JsonRequestBehavior.AllowGet));
     }
     catch (Exception ex)
     {
         throw new Exception(ex.Message);
     }
 }
示例#10
0
        public ActionResult LoginControl(ELoginDTO login)
        {
            login.Password = PassManager.Base64Encrypt(login.Password);
            var result = _userService.GetUserByUserNameAndPassword(login.UserName, login.Password);

            if (result != null)
            {
                AutoMapper.Mapper.DynamicMap(result, _sessionContext);
                Session["SessionContext"] = _sessionContext;
                return(Json("/profile", JsonRequestBehavior.AllowGet));
            }
            else
            {
                return(Json("", JsonRequestBehavior.AllowGet));
            }
        }
示例#11
0
        public EUserDTO Find(int Id)
        {
            var user = (from u in _userRepository.GetAll()
                        where u.Id == Id
                        select new EUserDTO
            {
                FullName = u.FullName,
                Id = u.Id,
                ImageUrl = u.Image != null ? "/ProfileImageView/" + u.Id : ConstanTypes.profileImage,
                Job = u.Job,
                Password = u.Password,
                UserName = u.UserName
            }).SingleOrDefault();

            user.Password = PassManager.Base64Decrypt(user.Password);
            return(user);
        }
示例#12
0
        public override Value Process(Node n)
        {
            InitTypeMap();

            LLVM.Native.LinkInJIT();
            //LLVM.Native.InitializeNativeTarget(); // Declared in bindings but not exported from the shared library.
            LLVM.Native.InitializeX86TargetInfo();
            LLVM.Native.InitializeX86Target();
            LLVM.Native.InitializeX86TargetMC();

            using (module = new Module("llvm compiler"))
                using (builder = new IRBuilder())
                {
                    execEngine = new ExecutionEngine(module);

                    passManager = new PassManager(module);
                    passManager.AddTargetData(execEngine.GetTargetData());

                    // optimizations
                        #if false
                    passManager.AddBasicAliasAnalysisPass();
                    passManager.AddPromoteMemoryToRegisterPass();
                    passManager.AddInstructionCombiningPass();
                    passManager.AddReassociatePass();
                    passManager.AddGVNPass();
                    passManager.AddCFGSimplificationPass();
                        #endif
                    passManager.Initialize();

                    // main = EmitTestLLVMIR();
                    Value valRet = traverse(n);

                    module.Dump();

                    //	if (valRet.Equals(Value.Null))
                    //		return Value.Null;

                    GenericValue val = execEngine.RunFunction(evalCtx.main, new GenericValue[0]);
                    Console.WriteLine("Evaluated to " + val.ToUInt());
                }

            return(default(Value));
        }
示例#13
0
        public ActionResult Login(LoginDTO uye)
        {
            uye.Parola = PassManager.Base64Encrypt(uye.Parola);//Uye parola şifre çözümü yapıldı.
            var result = _loginService.GetUserInformation(uye.KullaniciAdi, uye.Parola);

            if (result != null)
            {
                //install-package automapper -version:4.1 kurulumu yapılacak.
                AutoMapper.Mapper.DynamicMap(result, _sessionContext);
                Session["SessionContext"] = _sessionContext;
                Session["UyeID"]          = _sessionContext.UyeID;
                Session["KullaniciAdi"]   = _sessionContext.KullaniciAdi;

                return(Json("/DashboardPanel", JsonRequestBehavior.AllowGet));
            }
            else
            {
                return(Json("", JsonRequestBehavior.AllowGet));
            }
        }
示例#14
0
        public void TestCase()
        {
            Program program = SymbooglixTest.LoadProgramFrom("Transforms/programs/simple_function_inline.bpl");

            var PM = new PassManager();

            PM.Add(new FunctionInliningPass());
            PM.Run(program);

            // Now check what we expected to be inlined was inlined

            // Another function that uses foo
            var barFunction = program.TopLevelDeclarations.OfType <Function>().Where(f => f.Name == "bar").First();

            Assert.AreEqual("(if x > 0 then x == 0 else x - 1 == 0)", barFunction.Body.ToString());

            // Axiom
            var axiom = program.TopLevelDeclarations.OfType <Axiom>().First();

            Assert.AreEqual("v == 0", axiom.Expr.ToString());


            var procedure = program.TopLevelDeclarations.OfType <Procedure>().First();

            // Requires
            Assert.AreEqual(1, procedure.Requires.Count);
            Assert.AreEqual("x == 0 && false <==> x == 0", procedure.Requires[0].Condition.ToString());

            // Ensures
            Assert.AreEqual(1, procedure.Ensures.Count);
            Assert.AreEqual("x == 0 <==> x == 0", procedure.Ensures[0].Condition.ToString());

            // Assert statement
            var assertCmd = program.TopLevelDeclarations.OfType <Implementation>().SelectMany(i => i.Blocks).SelectMany(cmd => cmd.Cmds).OfType <AssertCmd>().First();

            Assert.AreEqual("x == 0", assertCmd.Expr.ToString());
        }
示例#15
0
        public void TestCase()
        {
            Prog = SymbooglixTest.LoadProgramFrom("Transforms/programs/AnnotationPass.bpl");

            var pm = new PassManager();

            pm.Add(new Symbooglix.Annotation.ProgramLocationAnnotater());
            pm.Run(Prog);

            // Check Variables (Global and constant)
            foreach (var variable in Prog.TopLevelDeclarations.OfType <Variable>())
            {
                CheckIsNotNullAndString(variable.GetProgramLocation());
                Assert.IsTrue(variable.GetProgramLocation().IsVariable);
            }

            // Check Procedures
            foreach (var proc in Prog.TopLevelDeclarations.OfType <Procedure>())
            {
                // TODO: Should Procedures have an associated ProgramLocation?
                //DoSomethingWithProgramLocation(proc.GetProgramLocation());

                foreach (var requires in proc.Requires)
                {
                    CheckIsNotNullAndString(requires.GetProgramLocation());
                    Assert.IsTrue(requires.GetProgramLocation().IsRequires);
                }

                foreach (var ensures in proc.Ensures)
                {
                    CheckIsNotNullAndString(ensures.GetProgramLocation());
                    Assert.IsTrue(ensures.GetProgramLocation().IsEnsures);
                }

                foreach (var inParam in proc.InParams)
                {
                    CheckIsNotNullAndString(inParam.GetProgramLocation());
                    Assert.IsTrue(inParam.GetProgramLocation().IsVariable);
                }

                foreach (var outParam in proc.OutParams)
                {
                    CheckIsNotNullAndString(outParam.GetProgramLocation());
                    Assert.IsTrue(outParam.GetProgramLocation().IsVariable);
                }

                CheckIsNotNullAndString(proc.GetModSetProgramLocation());
                Assert.IsTrue(proc.GetModSetProgramLocation().IsModifiesSet);
            }

            // Check Implementations
            foreach (var impl in Prog.TopLevelDeclarations.OfType <Implementation>())
            {
                // TODO: Should Implementations have an associated ProgramLocation?
                //DoSomethingWithProgramLocation(impl.GetProgramLocation());

                foreach (var inParam in impl.InParams)
                {
                    CheckIsNotNullAndString(inParam.GetProgramLocation());
                    Assert.IsTrue(inParam.GetProgramLocation().IsVariable);
                }

                foreach (var outParam in impl.OutParams)
                {
                    CheckIsNotNullAndString(outParam.GetProgramLocation());
                    Assert.IsTrue(outParam.GetProgramLocation().IsVariable);
                }

                foreach (var localVariable in impl.LocVars)
                {
                    CheckIsNotNullAndString(localVariable.GetProgramLocation());
                    Assert.IsTrue(localVariable.GetProgramLocation().IsVariable);
                }
            }

            // Check basic blocks
            foreach (var bb in Prog.Blocks())
            {
                foreach (var cmd in bb.Cmds)
                {
                    CheckIsNotNullAndString(cmd.GetProgramLocation());
                    Assert.IsTrue(cmd.GetProgramLocation().IsCmd);
                }

                CheckIsNotNullAndString(bb.TransferCmd.GetProgramLocation());
                Assert.IsTrue(bb.TransferCmd.GetProgramLocation().IsTransferCmd);
            }
        }
示例#16
0
        public BuildTarget CreateBuildTarget(string PlatformIdentifier, AssemblyCreationInfo Info, IDependencyBuilder DependencyBuilder)
        {
            var multiBinder = new MultiBinder(DependencyBuilder.Binder.Environment);

            multiBinder.AddBinder(DependencyBuilder.Binder);

            bool isWholeProgram = DependencyBuilder.Log.Options.GetFlag(
                Flags.WholeProgramFlagName,
                Info.IsExecutable);

            var targetAsm = new LLVMAssembly(
                new SimpleName(Info.Name),
                Info.Version,
                DependencyBuilder.Environment,
                new LLVMAbi(
                    ItaniumMangler.Instance,
                    new ExternalGCDescription(multiBinder, DependencyBuilder.Log),
                    ItaniumCxxEHDescription.Instance),
                AttributeMap.Empty,
                isWholeProgram);

            // -fintegrated-runtime will look in the compiled assembly for runtime types.
            // This flag facilitates building the runtime library.
            if (DependencyBuilder.Log.Options.GetFlag("integrated-runtime", false))
            {
                multiBinder.AddBinder(targetAsm.CreateBinder());
            }

            var extraPasses = new PassManager();

            // Always use -flower-box-unbox-types to lower box/unbox.
            extraPasses.RegisterMethodPass(
                new AtomicPassInfo <BodyPassArgument, IStatement>(
                    BoxUnboxTypePass.Instance,
                    BoxUnboxTypePass.BoxUnboxTypePassName));

            extraPasses.RegisterPassCondition(BoxUnboxTypePass.BoxUnboxTypePassName, UseAlways);

            // Always use -flower-string-concat to lower string concatenation to calls.
            extraPasses.RegisterMethodPass(
                new AtomicPassInfo <BodyPassArgument, IStatement>(
                    StringConcatPass.Instance,
                    StringConcatPass.StringConcatPassName));

            extraPasses.RegisterPassCondition(StringConcatPass.StringConcatPassName, UseAlways);

            // Always use -flower-string-literals to lower string literals to calls.
            extraPasses.RegisterMethodPass(
                new AtomicPassInfo <BodyPassArgument, IStatement>(
                    StringLiteralPass.Instance,
                    StringLiteralPass.StringLiteralPassName));

            extraPasses.RegisterPassCondition(StringLiteralPass.StringLiteralPassName, UseAlways);

            // Always use -fregister-finalizers to setup finalizers.
            extraPasses.RegisterMethodPass(
                new AtomicPassInfo <IStatement, IStatement>(
                    new FinalizerRegistrationPass(targetAsm.Abi.GarbageCollector),
                    FinalizerRegistrationPass.FinalizerRegistrationPassName));

            extraPasses.RegisterPassCondition(FinalizerRegistrationPass.FinalizerRegistrationPassName, UseAlways);

            // Always use -flower-new-struct, for correctness reasons.
            extraPasses.RegisterPassCondition(NewValueTypeLoweringPass.NewValueTypeLoweringPassName, UseAlways);

            // Always use -fexpand-generics-llvm to expand generic definitions.
            extraPasses.RegisterMemberLoweringPass(
                new AtomicPassInfo <MemberLoweringPassArgument, MemberConverter>(
                    new GenericsExpansionPass(NameExpandedType, NameExpandedMethod),
                    GenericsExpansionPass.GenericsExpansionPassName + "-llvm"));

            extraPasses.RegisterPassCondition(
                GenericsExpansionPass.GenericsExpansionPassName + "-llvm",
                UseAlways);

            // Use -finternalize-generics to keep generic definitions from creeping
            // into assemblies that are not compiled with -fwhole-program.
            extraPasses.RegisterSignaturePass(
                new AtomicPassInfo <MemberSignaturePassArgument <IMember>, MemberSignaturePassResult>(
                    GenericsInternalizingPass.Instance,
                    GenericsInternalizingPass.GenericsInternalizingPassName));

            extraPasses.RegisterPassCondition(
                GenericsInternalizingPass.GenericsInternalizingPassName,
                UseAlways);

            // Use -fdeconstruct-cfg-eh to deconstruct exception control-flow graphs
            // if -O2 or higher has been specified (we won't construct a flow graph
            // otherwise)
            extraPasses.RegisterPassCondition(
                new PassCondition(
                    DeconstructExceptionFlowPass.DeconstructExceptionFlowPassName,
                    UseOptimizeNormal));

            // Use -fdeconstruct-cfg to deconstruct control-flow graphs if -O2 or more
            // has been specified (we won't construct a flow graph otherwise)
            extraPasses.RegisterPassCondition(
                new PassCondition(
                    DeconstructFlowGraphPass.DeconstructFlowGraphPassName,
                    UseOptimizeNormal));

            return(new BuildTarget(targetAsm, DependencyBuilder, "ll", true, extraPasses.ToPreferences()));
        }
 private void Awake()
 {
     instance = this;
 }