public string Encrypt(T source, string salt)
 {
     var e = Encoding.UTF8;
         var rawData = e.GetBytes(JsonConvert.SerializeObject(source));
         var cipherData = AESThenHMAC.SimpleEncryptWithPassword(rawData, salt);
         return Convert.ToBase64String(cipherData);
 }
Example #2
0
        public virtual void Insert(TEntity entity)
        {
            try
            {
                if (typeof(TEntity) == typeof(AdminRe))
                {
                    var    admin       = entity as AdminRe;
                    string encryptPass = AESThenHMAC.SimpleEncryptWithPassword(admin.Pass, "itcomma_luuductrung");
                    admin.Pass = encryptPass;
                }
                else
                {
                    if (typeof(TEntity) == typeof(Employee))
                    {
                        var    emp         = entity as Employee;
                        string encryptPass = AESThenHMAC.SimpleEncryptWithPassword(emp.Pass, "itcomma_luuductrung");
                        string encryptCode = AESThenHMAC.SimpleEncryptWithPassword(emp.EmpCode, "itcomma_luuductrung");
                        emp.Pass    = encryptPass;
                        emp.EmpCode = encryptCode;
                    }
                }


                dbSet.Add(AutoGeneteId_DBAsowell(entity));
            }
            catch (System.Data.Entity.Core.EntityCommandExecutionException ex)
            {
                Insert(entity);
            }
        }
Example #3
0
        public void EncryptJsonToFile <T>(string filePath, T obj, string encryptKey)
        {
            var json = Json.Serialize(obj);
            var raw  = AESThenHMAC.SimpleEncryptWithPassword(json, encryptKey);

            WriteTextFile(raw, filePath);
        }
Example #4
0
        internal static void Rewrite(string newCfgjson, string configKey)
        {
            var pwd  = GetPassword(configKey);
            var encr = AESThenHMAC.SimpleEncryptWithPassword(newCfgjson, pwd);
            var path = GetPath(configKey);

            Directory.CreateDirectory(Path.GetDirectoryName(path));
            File.WriteAllText(path, encr);
        }
        public void SimpleEncryptWithPassword_RightPassword_CanBeDecrypted()
        {
            var secret        = "test";
            var password      = "******";
            var encryptedText = AESThenHMAC.SimpleEncryptWithPassword(secret, password);
            var decryptedText = AESThenHMAC.SimpleDecryptWithPassword(encryptedText, password);

            Assert.Equal(secret, decryptedText);
        }
Example #6
0
        public void TestEncryption()
        {
            string email     = "*****@*****.**";
            string encrypted = AESThenHMAC.SimpleEncryptWithPassword(email, key);

            Assert.NotEqual(encrypted, email);
            string decrypted = AESThenHMAC.SimpleDecryptWithPassword(encrypted, key);

            Assert.Equal(decrypted, email);
        }
        public void EncryptDecryptTestWithPassword()
        {
            var data = "some random data here";
            var pass = "******";

            var encryptedResult = AESThenHMAC.SimpleEncryptWithPassword(data, pass);
            var decryptedResult = AESThenHMAC.SimpleDecryptWithPassword(encryptedResult, pass);

            Assert.AreEqual(data, decryptedResult);
        }
        public void SimpleEncryptWithPassword_WrongPassword_CannotBeDecrypted()
        {
            var secret        = "test";
            var password      = "******";
            var wrongPassword = "******";
            var encryptedText = AESThenHMAC.SimpleEncryptWithPassword(secret, password);
            var decryptedText = AESThenHMAC.SimpleDecryptWithPassword(encryptedText, wrongPassword);

            Assert.NotEqual(secret, decryptedText);
        }
Example #9
0
        private async Task SaveUnsaved(object arg)
        {
            StartBeingBusy("Saving config text ...");

            var encryptd = AESThenHMAC.SimpleEncryptWithPassword(UnsavedText, _key);
            await _hub.RewriteConfigFile(encryptd, _sess.ConnectionId);

            //if (hash != UnsavedText.SHA1ForUTF8())
            //    throw new InvalidOperationException("Client may not have correctly rewritten the config file.");

            //await _hub.RequestClientState(_sess.ConnectionId);

            CloseUI();
        }
        public void SimpleEncryptWithPassword_CiphertextModified_CannotBeDecrypted()
        {
            var secret                 = "test";
            var password               = "******";
            var encryptedText          = AESThenHMAC.SimpleEncryptWithPassword(secret, password);
            var modifiedCharacterArray = encryptedText.ToCharArray();

            modifiedCharacterArray[5] = 'a';
            var modifiedText  = new String(modifiedCharacterArray);
            var decryptedText = AESThenHMAC.SimpleDecryptWithPassword(modifiedText, password);

            Assert.NotEqual(secret, decryptedText);
            Assert.Null(decryptedText);
        }
        public void PerformanceTest()
        {
            var reallyLongString = "";
            var password         = "******";

            for (var i = 0; i < 30000; i++)
            {
                reallyLongString += "Lorem ipsum dolor sit amet";
            }

            var encryptedText = AESThenHMAC.SimpleEncryptWithPassword(reallyLongString, password);
            var decryptedText = AESThenHMAC.SimpleDecryptWithPassword(encryptedText, password);

            Assert.Equal(reallyLongString, decryptedText);
        }
Example #12
0
        protected void Button1_Click(object sender, EventArgs e)
        {
            if (String.IsNullOrEmpty(TextBox1.Text))
            {
                Response.Redirect(@"\LOGIN\UI\signIn.aspx");
            }
            // HashBasic pBuffer = new HashBasic();
            Securehash sBuffer = new Securehash();
            //Securehash sbuf;
            //new Securehash();
            Register key  = new Register();
            string   keyA = key.AKeyFsequence().Tables[0].Rows[0][0].ToString();
            string   keyB = sBuffer.Guid(TextBox5.Text);

            if (keyA.Equals(keyB, StringComparison.Ordinal))
            //if (key.AKeyFsequence().Tables[0].Rows[0][0].ToString().Equals(sBuffer.Guid(TextBox5.Text), StringComparison.Ordinal))//comparison {DATABSEphaseaKEY & Akey}
            {
                if (key.KeyFsequenceAll(TextBox1.Text).Tables[0].Rows.Count != 0)
                {
                    if (key.KeyFsequenceAll(TextBox1.Text).Tables[0].Rows[0][1].ToString().Equals(TextBox1.Text, StringComparison.Ordinal))
                    {
                        //returns ture when username exist.
                        TextBox1.ForeColor = Color.Red;
                        Button1.Text       = "R E L O A D";
                    }
                }
                else
                {
                    string passphase = sBuffer.Guid(TextBox4.Text);
                    string stream    = AESThenHMAC.SimpleEncryptWithPassword(TextBox4.Text, passphase);

                    if ((key.KeyManagerInsertQ(TextBox1.Text, TextBox2.Text, TextBox3.Text, stream)).Equals(1))
                    {
                        Response.Redirect(@"\LOGIN\UI\signIn.aspx");
                    }
                    else
                    {
                        Button1.Text = "I -E R R O R.";    //@non-updation
                    }
                }
            }
            else
            {
                Button1.Text = "permission denied";
            }
        }
Example #13
0
        public static void It_works()
        {
            {
                var secretMessage = "Cryptography is hard.";
                var password      = Guid.NewGuid().ToString();
                var encrypted     = AESThenHMAC.SimpleEncryptWithPassword(secretMessage, password);
                var decrypted     = AESThenHMAC.SimpleDecryptWithPassword(encrypted, password);
                Assert.Equal(secretMessage, decrypted);
            }

            {
                var secretMessage = "Cryptography is hard.";
                var password      = Guid.NewGuid().ToString();
                var encrypted     = AESThenHMAC.SimpleEncryptWithPassword(secretMessage, password);
                var decrypted     = AESThenHMAC.SimpleDecryptWithPassword(encrypted, "wrong password");
                Assert.NotEqual(secretMessage, decrypted);
            }
        }
        private void Save_Click(object sender, RoutedEventArgs e)
        {
            var dlg = new SaveFileDialog();

            dlg.FileName   = "MyJournal";
            dlg.DefaultExt = ".osj";
            dlg.Filter     = "Open Secure Journal Files (.osj)|*.osj";

            var result = dlg.ShowDialog();

            if (result == true)
            {
                var filename = dlg.FileName;

                var journalText   = ActiveJournalService.MainControl.GetJournalText();
                var encryptedText = AESThenHMAC.SimpleEncryptWithPassword(journalText, ActiveJournalService.Password);
                File.WriteAllText(filename, encryptedText);
            }
        }
Example #15
0
        protected override string ReadSettingsFile()
        {
            var contnt = base.ReadSettingsFile();

            if (contnt.IsBlank())
            {
                return("");
            }

            DeleteOldConfigs();
            var pwd = ComposePassword();

            if (contnt.Trim().Substring(0, 1) == "{")
            {
                var encryptd = AESThenHMAC.SimpleEncryptWithPassword(contnt, pwd);
                RewriteLockedFile(encryptd);
                return(contnt);
            }
            return(AESThenHMAC.SimpleDecryptWithPassword(contnt, pwd));
        }
Example #16
0
        public virtual void Update(TEntity entityToUpdate)
        {
            try
            {
                if (typeof(TEntity) == typeof(AdminRe))
                {
                    var admin = entityToUpdate as AdminRe;

                    //check the password change
                    try
                    {
                        string decryptPass = AESThenHMAC.SimpleDecryptWithPassword(admin.Pass, "itcomma_luuductrung");
                        if (decryptPass.Equals(admin.DecryptedPass))
                        {
                            admin.Pass = admin.DecryptedPass;
                        }
                    }
                    catch (Exception ex)
                    {
                        //occur when the admin.Pass is not a encrypt password
                    }

                    string encryptPass = AESThenHMAC.SimpleEncryptWithPassword(admin.Pass, "itcomma_luuductrung");
                    admin.Pass = encryptPass;
                }
                else
                {
                    if (typeof(TEntity) == typeof(Employee))
                    {
                        var emp = entityToUpdate as Employee;

                        //check the password change
                        try
                        {
                            string decryptPass = AESThenHMAC.SimpleDecryptWithPassword(emp.Pass, "itcomma_luuductrung");
                            string decryptCode =
                                AESThenHMAC.SimpleDecryptWithPassword(emp.EmpCode, "itcomma_luuductrung");
                            if (decryptPass.Equals(emp.DecryptedPass))
                            {
                                emp.Pass = emp.DecryptedPass;
                            }
                            if (decryptCode.Equals(emp.EmpCode))
                            {
                                emp.EmpCode = emp.DecryptedCode;
                            }
                        }
                        catch (Exception ex)
                        {
                            //occur when the emp.Pass is not a encrypt password
                        }


                        string encryptPass = AESThenHMAC.SimpleEncryptWithPassword(emp.Pass, "itcomma_luuductrung");
                        string encryptCode = AESThenHMAC.SimpleEncryptWithPassword(emp.EmpCode, "itcomma_luuductrung");
                        emp.Pass    = encryptPass;
                        emp.EmpCode = encryptCode;
                    }
                }


                dbSet.Attach(entityToUpdate);
                context.Entry(entityToUpdate).State = EntityState.Modified;
            }
            catch (System.Data.Entity.Core.EntityCommandExecutionException ex)
            {
                Update(entityToUpdate);
            }
        }
Example #17
0
        public static void Main(string[] args)
        {
            byte[] key256 = new byte[32];
            for (int i = 0; i < 32; i++)
            {
                key256[i] = Convert.ToByte(i % 256);
            }

            string message  = "Hello World";
            string password = "******";

            byte[] nonSecretOrg = Encoding.UTF8.GetBytes("Pay Bob Zero Dollars");
            byte[] nonSecretMod = Encoding.UTF8.GetBytes("Pay Bob $ 1,000,000.");

            // Encrypt with associated data
            //string encrypted = AESGCM.SimpleEncrypt(message, key256, nonSecretOrg);
            string encrypted = AESThenHMAC.SimpleEncryptWithPassword(message, password, nonSecretOrg);

            Console.WriteLine("AESThenHMAC Encrypted: {0}", encrypted);

            // Decrypt with original associated data
            //string decrypted = AESGCM.SimpleDecrypt(encrypted, key256, nonSecretOrg.Length);
            string decrypted = AESThenHMAC.SimpleDecryptWithPassword(encrypted, password, nonSecretOrg.Length);

            Console.WriteLine("AESThenHMAC Decrypted: {0}", decrypted);
            //Console.WriteLine("Auth cleartext: {0}", Encoding.UTF8.GetString(nonSecretOrg));

            Console.WriteLine();
            Console.WriteLine();
            Console.WriteLine();


            var secret = AESCBC.EncryptString(password, message);

            //Console.WriteLine("AESCBC Encrypted: {0}", BitConverter.ToString(secret));
            Console.WriteLine("AESCBC Encrypted: {0}", Convert.ToBase64String(secret));

            var recovered = AESCBC.DecryptString(password, secret);

            Console.WriteLine("AESCBC Decrypted: {0}", recovered);

            Console.WriteLine();
            Console.WriteLine();
            Console.WriteLine();

            Rijndael.Inputkey = password;

            encrypted = Rijndael.EncryptRijndael(message, "12345678");
            //Console.WriteLine("AESCBC Encrypted: {0}", BitConverter.ToString(secret));
            Console.WriteLine("Rijndael Encrypted: {0}", encrypted);

            decrypted = Rijndael.DecryptRijndael(encrypted, "12345678");
            Console.WriteLine("Rijndael Decrypted: {0}", decrypted);


            Console.WriteLine();
            Console.WriteLine();
            Console.WriteLine();


            string passPhrase         = "Pas5pr@se";        // can be any string
            string saltValue          = "12345678";         //"s@1tValue";        // can be any string
            string hashAlgorithm      = "SHA1";             // can be "MD5"
            int    passwordIterations = 10000;              // can be any number
            string initVector         = "@1B2c3D4e5F6g7H8"; // must be 16 bytes
            int    keySize            = 128;                // 256;                // can be 192 or 128

            string cipherText = RijndaelSimple.Encrypt
                                (
                message,
                passPhrase,
                saltValue,
                hashAlgorithm,
                passwordIterations,
                initVector,
                keySize
                                );

            Console.WriteLine(String.Format("RijndaelSimple Encrypted : {0}", cipherText));

            message = RijndaelSimple.Decrypt
                      (
                cipherText,
                passPhrase,
                saltValue,
                hashAlgorithm,
                passwordIterations,
                initVector,
                keySize
                      );

            Console.WriteLine(String.Format("RijndaelSimple Decrypted : {0}", message));

            Console.ReadLine();
        }
Example #18
0
 private string Encrypt(string data, AXMLSerializationSettings opt)
 {
     return(AESThenHMAC.SimpleEncryptWithPassword(data, ENCRYPTION_KEY, opt));
 }
Example #19
0
 private void EncryptUnsaved() => UnsavedText
     = AESThenHMAC.SimpleEncryptWithPassword(UnsavedText, _key);
        private void BtnSalvar_Click(object sender, RoutedEventArgs e)
        {
            ParametroDB paramdbNew = new ParametroDB();
            Processos   proc       = new Processos();

            if (TxbHost.Text != "" && TxbPort.Text != "" && TxbServiceName.Text != "" && TxbUser.Text != "" && PwbSenha.Password != "" && CboDriver.SelectedIndex != -1 && CboConexao.SelectedIndex != -1 && TxbDescr.Text != "" && TxbGrupo.Text != "" && TxbToken.Text != "")
            {
                if (proc.VerificaConexaoBanco(TxbHost.Text, TxbPort.Text, TxbServiceName.Text, TxbUser.Text, PwbSenha.Password, (string)CboDriver.SelectedItem) == true)
                {
                    if (lastIndex != 0)
                    {
                        if (CboDriver.SelectedIndex == 0)
                        {
                            paramDB[lastIndex - 1].Driver = "oracle";
                        }
                        else
                        {
                            paramDB[lastIndex - 1].Driver = "sqlserver";
                        }
                        paramDB[lastIndex - 1].Descr        = TxbDescr.Text;
                        paramDB[lastIndex - 1].Host         = TxbHost.Text;
                        paramDB[lastIndex - 1].Port         = TxbPort.Text;
                        paramDB[lastIndex - 1].ServiceName  = TxbServiceName.Text;
                        paramDB[lastIndex - 1].User         = TxbUser.Text;
                        paramDB[lastIndex - 1].Password     = AESThenHMAC.SimpleEncryptWithPassword(PwbSenha.Password, proc.GetMacAdress());
                        paramDB[lastIndex - 1].Trusted_Conn = "True";
                        paramDB[lastIndex - 1].Token        = TxbToken.Text;
                        try
                        {
                            paramDB[lastIndex - 1].Grupo = Convert.ToInt64(TxbGrupo.Text);
                            salvaDB(paramDB[lastIndex - 1]);
                        }
                        catch (Exception error)
                        {
                            System.Windows.MessageBox.Show("Campo Grupo deve ser numerico", "Atenção", MessageBoxButton.OK, MessageBoxImage.Warning);
                            return;
                        }
                    }
                    else
                    {
                        if (CboDriver.SelectedIndex == 0)
                        {
                            paramdbNew.Driver = "oracle";
                        }
                        else
                        {
                            paramdbNew.Driver = "sqlserver";
                        }
                        paramdbNew.Descr        = TxbDescr.Text;
                        paramdbNew.Host         = TxbHost.Text;
                        paramdbNew.Port         = TxbPort.Text;
                        paramdbNew.ServiceName  = TxbServiceName.Text;
                        paramdbNew.User         = TxbUser.Text;
                        paramdbNew.Password     = AESThenHMAC.SimpleEncryptWithPassword(PwbSenha.Password, proc.GetMacAdress());
                        paramdbNew.Trusted_Conn = "True";
                        paramdbNew.Token        = TxbToken.Text;
                        try
                        {
                            paramdbNew.Grupo = Convert.ToInt64(TxbGrupo.Text);
                            salvaDB(paramdbNew);
                        }
                        catch (Exception error)
                        {
                            System.Windows.MessageBox.Show("Campo Grupo deve ser numerico", "Atenção", MessageBoxButton.OK, MessageBoxImage.Warning);
                            return;
                        }
                    }

                    cleanScreen();
                    lastIndex = -1;
                }
                else if (proc.VerificaConexaoBanco(TxbHost.Text, TxbPort.Text, TxbServiceName.Text, TxbUser.Text, PwbSenha.Password, (string)CboDriver.SelectedItem, "False") == true)
                {
                    if (lastIndex != 0)
                    {
                        if (CboDriver.SelectedIndex == 0)
                        {
                            paramDB[lastIndex - 1].Driver = "oracle";
                        }
                        else
                        {
                            paramDB[lastIndex - 1].Driver = "sqlserver";
                        }
                        paramDB[lastIndex - 1].Descr        = TxbDescr.Text;
                        paramDB[lastIndex - 1].Host         = TxbHost.Text;
                        paramDB[lastIndex - 1].Port         = TxbPort.Text;
                        paramDB[lastIndex - 1].ServiceName  = TxbServiceName.Text;
                        paramDB[lastIndex - 1].User         = TxbUser.Text;
                        paramDB[lastIndex - 1].Password     = AESThenHMAC.SimpleEncryptWithPassword(PwbSenha.Password, proc.GetMacAdress());
                        paramDB[lastIndex - 1].Trusted_Conn = "False";
                        paramDB[lastIndex - 1].Token        = TxbToken.Text;
                        try
                        {
                            paramDB[lastIndex - 1].Grupo = Convert.ToInt64(TxbGrupo.Text);
                            salvaDB(paramDB[lastIndex - 1]);
                        }
                        catch (Exception error)
                        {
                            System.Windows.MessageBox.Show("Campo Grupo deve ser numerico", "Atenção", MessageBoxButton.OK, MessageBoxImage.Warning);
                            return;
                        }
                    }
                    else
                    {
                        if (CboDriver.SelectedIndex == 0)
                        {
                            paramdbNew.Driver = "oracle";
                        }
                        else
                        {
                            paramdbNew.Driver = "sqlserver";
                        }
                        paramdbNew.Descr        = TxbDescr.Text;
                        paramdbNew.Host         = TxbHost.Text;
                        paramdbNew.Port         = TxbPort.Text;
                        paramdbNew.ServiceName  = TxbServiceName.Text;
                        paramdbNew.User         = TxbUser.Text;
                        paramdbNew.Password     = AESThenHMAC.SimpleEncryptWithPassword(PwbSenha.Password, proc.GetMacAdress());
                        paramdbNew.Trusted_Conn = "False";
                        StaticParametersDB.SetListBanco(paramdbNew);
                        paramdbNew.Token = TxbToken.Text;
                        try
                        {
                            paramdbNew.Grupo = Convert.ToInt64(TxbGrupo.Text);
                            salvaDB(paramdbNew);
                        }
                        catch (Exception error)
                        {
                            System.Windows.MessageBox.Show("Campo Grupo deve ser numerico", "Atenção", MessageBoxButton.OK, MessageBoxImage.Warning);
                            return;
                        }
                    }

                    cleanScreen();
                    lastIndex = -1;
                }
            }
            else
            {
                System.Windows.MessageBox.Show("Preencha todos os campos antes de continuar", "Atenção", MessageBoxButton.OK, MessageBoxImage.Warning);
            }
        }
 public static string GeneratePublicKey <T>(T credentials)
     where T : FirebaseCredentials
 => AESThenHMAC.SimpleEncryptWithPassword
     (credentials.ToJson(), GeneratePrivateKey());
 private static string Encrypt(string content, string password)
 => AESThenHMAC.SimpleEncryptWithPassword(content, password);
        private async Task GrantResourceOwnerCredentialsFromFacebookToken(OAuthGrantResourceOwnerCredentialsContext context)
        {
            //Find External Token
            var facebookToken = getExternalToken(context);

            if (facebookToken == null)
            {
                throw new Exception("ExternalToken is null");
            }

            //Get User Using FacebookToken
            var fb = new FacebookClient(facebookToken);

            Facebook.Me me = fb.Get <Facebook.Me>("me", new { fields = "id, name, email, gender, birthday, picture.type(large)" });

            var User = userManager.FindByEmail(me.email);

            if (User == null)
            {
                var AccCtrl = new AccountController(HttpContext.Current.GetOwinContext().GetUserManager <ApplicationUserManager>(), HttpContext.Current.GetOwinContext().GetUserManager <ApplicationSignInManager>());
                User = await AccCtrl.CreateUser("User", me.email, me.email, null);
            }

            //Save fbtoken to db
            var db = new SoLoudContext();

            //We need to refetch from db in order to be able to edit/add claims. If we dont the context is not tracking the Claim entities and changes will not save
            User = db.Users.Include("Claims").FirstOrDefault(x => x.Id == User.Id);
            var fbTokenClaim = User.Claims.FirstOrDefault(x => x.ClaimType == SoloudClaimTypes.FacebookAccessToken.ToString());

            if (fbTokenClaim == null)
            {
                fbTokenClaim = new Microsoft.AspNet.Identity.EntityFramework.IdentityUserClaim()
                {
                    ClaimType = SoloudClaimTypes.FacebookAccessToken.ToString()
                };
                User.Claims.Add(fbTokenClaim);
            }
            fbTokenClaim.ClaimValue = AESThenHMAC.SimpleEncryptWithPassword(facebookToken, ConfigurationManager.AppSettings["EncryptionKey"].ToString());
            db.SaveChanges();

            //Create Token and return
            var identity = new ClaimsIdentity(context.Options.AuthenticationType);

            identity.AddClaim(new Claim("UserName", User.UserName));
            identity.AddClaim(new Claim("UserId", User.Id));
            identity.AddClaim(new Claim(SoloudClaimTypes.FacebookAccessToken.ToString(), facebookToken));

            //find user roles
            var UserRoles = User.Roles.Join(db.Roles, x => x.RoleId, r => r.Id, (x, r) => r.Name);

            if (UserRoles != null && UserRoles.Count() > 0)
            {
                identity.AddClaim(new Claim("Roles", UserRoles.Aggregate((acc, cur) => acc += "," + cur)));
            }

            var props = new AuthenticationProperties(new Dictionary <string, string>
            {
                { "User", JsonConvert.SerializeObject(User) }
            });

            var ticket = new AuthenticationTicket(identity, props);

            context.Validated(ticket);

            return;
        }