Decrypt() публичный Метод

public Decrypt ( byte payload ) : byte[]
payload byte
Результат byte[]
		public void FunkyPasswords() {
			Crypto c = new Crypto();
			{
				const string source = "antonida";
				string s = c.Encrypt(source);
				Assert.AreNotEqual(source, s);
				Assert.AreEqual(source, c.Decrypt(s));
			}
			{
				const string source = "привет мир";
				string s = c.Encrypt(source);
				Assert.AreNotEqual(source, s);
				Assert.AreEqual(source, c.Decrypt(s));
			}
			{
				const string source = @">rL`Fpbgr>_1j^?];cK5U>/!fm;&736puCLZeql=b-,-}rOdeR";
				string s = c.Encrypt(source);
				Assert.AreNotEqual(source, s);
				Assert.AreEqual(source, c.Decrypt(s));
			}
			{
				for (int i = 0; i < 1000; i++) {
					string source = RandomString(Math.Min(i + 1, 50));
					string s = c.Encrypt(source);
					Assert.AreNotEqual(source, s);
					Assert.AreEqual(source, c.Decrypt(s));
				}
			}
		}
		public void UseCustomKey() {
			const string S = "WqJCvfqa6JKiSXFm6t9MSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==";

			Crypto c = new Crypto("my secret key");
			string s = c.Encrypt("hello world");
			Assert.AreNotEqual("hello world", s);
			Assert.AreEqual("hello world", c.Decrypt(s));
			Assert.AreEqual("hello world", c.Decrypt(S));
		}
    void ReplaceOldMechanisms()
    {
        List <object> allLevels = Json.Deserialize(Crypto.Decrypt(File.ReadAllText("LevelData"))) as List <object>;
        string        decompressedMechanismLayout = "";
        string        newLayout = "";

        for (int i = 0; i < allLevels.Count; i++)
        {
            decompressedMechanismLayout = Crypto.Decompress((string)((Dictionary <string, object>)allLevels[i])["mechanismlayer"]);

            for (int j = 0; j < decompressedMechanismLayout.Length; j++)
            {
                if (decompressedMechanismLayout[j] == 'C')
                {
                    newLayout += 'A';
                }
                else if (decompressedMechanismLayout[j] == 'D')
                {
                    newLayout += 'B';
                }
                else
                {
                    newLayout += decompressedMechanismLayout[j];
                }
            }
            ((Dictionary <string, object>)allLevels[i])["mechanismlayer"] = Crypto.Compress(newLayout);
        }

        File.WriteAllText("LevelDataRAW", Json.Serialize(allLevels));
    }
Пример #4
0
        /// <summary>
        /// Loads settings from App.config and populates the form.
        /// </summary>
        public void LoadFromConfig()
        {
            try
            {
                string apiDocsUrl = config.Get <string>("healthchecks-api-docs");
                Uri    apiDocsUri;
                if (Uri.TryCreate(apiDocsUrl, UriKind.Absolute, out apiDocsUri))
                {
                    apiDocsLink.NavigateUri = apiDocsUri;
                }

                apiUrl.Text         = config.Get <string>("healthchecks-api-url");
                refreshSeconds.Text = config.Get <string>("refresh-seconds");

                string salt = config.Get <string>("healthtray-salt");
                if (!string.IsNullOrWhiteSpace(salt))
                {
                    apiKey.Text = Crypto.Decrypt(config.Get <string>("healthchecks-api-key"), salt);
                }
            }
            catch (Exception ex) when(ex is CryptographicException || ex is FormatException)
            {
                MessageBox.Show("Something went wrong decrypting your API key. :(\n\nCould you please supply a new one?\n\nThe error was: " +
                                ex.GetType() + ": " + ex.Message, "HealthTray - Error Decrypting API Key", MessageBoxButton.OK, MessageBoxImage.Error);
                apiKey.Clear();
                apiKey.Focus();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error loading settings", MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
Пример #5
0
        public virtual IEnumerable <Alert> GetAccountAlerts(string accountNumber, int customerID)
        {
            BankContext         context = new BankContext();
            IEnumerable <Alert> alerts  = new List <Alert>();

            try
            {
                Crypto crypto = new Crypto();
                accountNumber = crypto.Encrypt(accountNumber);
                Account account = context.CheckingAccounts.Where(c => c.accountNumber == accountNumber && c.customerID == customerID).FirstOrDefault <Account>();
                if (account != null)
                {
                    alerts = context.Alerts.Where(a => a.accountNumber == accountNumber).AsEnumerable <Alert>();
                    foreach (Alert alert in alerts)
                    {
                        // Decrypt the account number before returning to the UI
                        alert.accountNumber = crypto.Decrypt(alert.accountNumber);
                    }
                }
            }
            catch (Exception)
            {
                throw new Exception("Error getting the account alerts.");
            }

            return(alerts);
        }
Пример #6
0
        public async Task <bool> AddData(accounttbl obj)
        {
            try
            {
                using (var context = new smlpobDB())
                {
                    var isExist = (from x in context.accounttbls
                                   where x.username == obj.username
                                   select x).SingleOrDefault();

                    if (isExist != null)
                    {
                        return(false);
                    }

                    context.accounttbls.Add(obj);
                    await context.SaveChangesAsync();

                    Membership.CreateUser(obj.username, Crypto.Decrypt(obj.password), obj.username);
                    Roles.AddUserToRole(obj.username, obj.roleName);
                    return(true);
                }
            }
            catch (Exception ex)
            {
                LogHelpers.source  = this.GetType().Name;
                LogHelpers.message = ex.InnerException.ToString();
                LogHelpers.user    = "";
                LogHelpers.WriteLog();
            }

            return(false);
        }
Пример #7
0
        // DeleteUser -->GET: api/User?username=elad&passwordOrRank=123456&mod=delete
        //mode: delete  | register
        public string Get(string username, string passwordOrRank, string mode, string token)
        {
            try
            {
                switch (mode)
                {
                case "delete":
                    Server.CheckToken(token);
                    Server.UserFacade.DeleteUser(Crypto.Decrypt(username), Crypto.Decrypt(passwordOrRank));
                    break;

                case "register":
                    Server.UserFacade.Register(Crypto.Decrypt(username), Crypto.Decrypt(passwordOrRank));
                    break;

                default:
                    throw new Exception("comunication error: unkown mode");
                }
            }
            catch (Exception e)
            {
                return(e.Message);
            }
            return("");
        }
Пример #8
0
        // logout -->GET: api/User?username=elad&mode=logout
        //mode: logout | isloggedin
        public string Get(string username, string mode, string token)
        {
            try
            {
                Server.CheckToken(token);
                switch (mode)
                {
                case "logout":
                    if (Server.UserFacade.Logout(Crypto.Decrypt(username)))
                    {
                        Server.GuidDic.Remove(token);
                    }
                    break;

                case "isloggedin":
                    Server.UserFacade.IsUserLoggedInn(Crypto.Decrypt(username));
                    break;

                default:
                    throw new Exception("comunication error: unkown mode");
                }
            }
            catch (Exception e)
            {
                if (e.Message.Equals("you are logged in too long, please log out"))
                {
                    if (Server.UserFacade.Logout(Crypto.Decrypt(username)))
                    {
                        Server.GuidDic.Remove(token);
                    }
                }
                return(e.Message);
            }
            return("");
        }
Пример #9
0
 public static bool VerifyCheckSumByjson(string masterKey, string json, string checkSum)
 {
     CheckSum.ValidateVerifyCheckSumInput(masterKey, checkSum);
     try
     {
         string str1 = Crypto.Decrypt(checkSum, masterKey);
         if (str1 == null || str1.Length < 4)
         {
             return(false);
         }
         string str2 = str1.Substring(str1.Length - 4, 4);
         MessageConsole.WriteLine("Salt:::: " + str2);
         MessageConsole.WriteLine();
         MessageConsole.WriteLine("Input CheckSum:::: " + checkSum);
         string str3 = json;
         MessageConsole.WriteLine();
         MessageConsole.WriteLine("GeneratedCheckSum String:::: " + str3);
         string inputValue = str3 + "|" + str2;
         MessageConsole.WriteLine();
         MessageConsole.WriteLine("GeneratedCheckSum String with Salt:::: " + inputValue);
         string hashedString = SecurityUtils.GetHashedString(inputValue);
         MessageConsole.WriteLine();
         MessageConsole.WriteLine("HashedGeneratedCheckSum String:::: " + hashedString);
         string str4 = hashedString + str2;
         MessageConsole.WriteLine();
         MessageConsole.WriteLine("HashedGeneratedCheckSum String with Salt:::: " + str4);
         return(str4.Equals(str1));
     }
     catch (System.Exception ex)
     {
         throw new CryptoException("Exception occurred while verifying CheckSum. " + ex.Message);
     }
 }
Пример #10
0
        /// <summary>
        /// Carrega as informações do xml
        /// </summary>
        /// <returns>Retorna o arquivo de configuração</returns>
        public static ConfiguracaoXml CarregarConfiguracao()
        {
            if (!Directory.Exists(Folder)) //Se o diretório não existir...
            {
                //Criamos um com o nome folder
                Directory.CreateDirectory(Folder);
            }

            string       path = string.Format("{0}/{1}/{2}", Environment.CurrentDirectory, Folder, File);
            StreamReader sR   = null;

            try
            {
                XmlSerializer serializer = new XmlSerializer(typeof(ConfiguracaoXml));
                sR = new StreamReader(path);
                ConfiguracaoXml config = (ConfiguracaoXml)serializer.Deserialize(sR);
                sR.Close();
                config.Senha = Crypto.Decrypt(config.Senha, Key);
                return(config);
            }
            catch (Exception)
            {
                if (sR != null)
                {
                    sR.Close();
                }

                ConfiguracaoXml nova = new ConfiguracaoXml();

                nova.GravarConfiguracao();
                return(nova);
            }
        }
Пример #11
0
        public void TestNewCryptoObjectWithSaltError()
        {
            var c1     = new Crypto();
            var target = "Bart is the biatch.";

            var crypted = c1.Encrypt(target);

            Assert.AreNotEqual <string>(target, crypted, "Should be different strings");

            var salt = Crypto.StringToBytes(c1.SystemSalt);

            salt[0] = (byte)~salt[0];
            var key = Crypto.StringToBytes(c1.Key);
            var iv  = Crypto.StringToBytes(c1.IV);

            var c2     = new Crypto(key, iv, salt);
            var actual = c2.Decrypt(crypted);

            Assert.IsNull(actual, "Should be NULL with a bad Salt.");

            salt[0] = (byte)~salt[0];
            var c3 = new Crypto(key, iv, salt);

            actual = c3.Decrypt(crypted);
            Assert.AreEqual <string>(target, actual, "Should be equal again");
        }
        public bool IsAuthenticated(string domain, string username, SecureString EncryptedPass, string Key)
        {
            string         domainUser = domain + @"\" + username;
            DirectoryEntry entry      = new DirectoryEntry(this._path, domainUser, Crypto.Decrypt(EncryptedPass, Key, Algorithm.Rijndael));

            try
            {
                object obj = entry.NativeObject;

                DirectorySearcher search = new DirectorySearcher(entry);

                search.Filter = "(SAMAccountName=" + username + ")";
                search.PropertiesToLoad.Add("cn");
                SearchResult result = search.FindOne();

                if (null == result)
                {
                    return(false);
                }

                this._path            = result.Path;
                this._filterAttribute = (string)result.Properties["cn"][0];
            }
            catch (Exception ex)
            {
                throw new Exception("Error authenticating user. " + ex.Message);
            }
            return(true);
        }
        public void TestsUserAccounts_Security_Encrypt_Decrypt()
        {
            var code = Crypto.Encrypt("rubbish");
            var dec  = Crypto.Decrypt(code);

            Assert.IsTrue("rubbish" == dec);
        }
        private string Decrypt(DecryptCommand command)
        {
            string rtn    = string.Empty;
            Bitmap bmp    = null;
            var    tokens = Token.Tokens();

            byte[] imageBytes = Convert.FromBase64String(command.EncryptedPicture);
            using (MemoryStream memoryStream = new MemoryStream(imageBytes))
            {
                memoryStream.Position = 0;
                bmp = (Bitmap)Bitmap.FromStream(memoryStream);
            }

            if (bmp != null)
            {
                rtn = tokens.ReplaceTokens(
                    Obfuscation.Unobfuscate(
                        Zip.Decompress(
                            Convert.FromBase64String(
                                Crypto.Decrypt(
                                    Zip.Decompress(
                                        Convert.FromBase64String(
                                            Brilliance.Decompress(bmp))))))));
            }

            return(rtn);
        }
Пример #15
0
        public bool CheckCookies()
        {
            HttpCookie cookie = Request.Cookies["User"];

            if (cookie != null)
            {
                string   InputEnc  = Request.Cookies["User"]["Enc"];
                string   ouputEnc  = Crypto.Decrypt(InputEnc.ToString());
                string[] Key       = ouputEnc.Split(new string[] { "||" }, StringSplitOptions.None);
                string   KeyId     = Key[0];
                string   KeyAuth   = Key[1];
                int      Usercount = _context.Users.Where(c => c.UserId.ToString() == KeyId && c.AuthKey.ToString() == KeyAuth).Count();
                if (Usercount == 1)
                {
                    var user = _context.Users.Single(c => c.UserId.ToString() == KeyId);
                    ViewData["Id"]        = user.UserId;
                    ViewData["FirstName"] = user.FirstName;
                    ViewData["LastName"]  = user.LastName;
                    ViewData["FullName"]  = user.FirstName + " " + user.LastName;
                    ViewData["Email"]     = user.Email;
                    ViewData["Role"]      = user.AspRoleId.ToString();
                    ViewData["Level"]     = user.AspStudentLvlId.ToString();
                    ViewData["Key"]       = InputEnc;
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            else
            {
                return(false);
            }
        }
Пример #16
0
        public void Should_encrypt_and_decrypt_object()
        {
            var encryptedOject  = _crypto.Encrypt("ohh hai");
            var decryptedObject = _crypto.Decrypt(encryptedOject);

            decryptedObject.Should().BeEquivalentTo("ohh hai");
        }
 public ActionResult AccountVerification_POST(string p)
 {
     ViewBag.EncryptedEmail = p;
     if (!string.IsNullOrEmpty(p))
     {
         string     Email                  = Crypto.Decrypt(p);
         string     ValidationKey          = null;
         User       userDetail             = db.Users.FirstOrDefault(x => x.Email == Email && x.IsEmailVerified != true && x.IsActive != true);
         MailSender sendVarificationEmail  = new Common.MailSender();
         Random     randonNumberValidation = new Random(655);
         if (userDetail != null)
         {
             if (!string.IsNullOrEmpty(userDetail.ValidationKey))
             {
                 ValidationKey = userDetail.ValidationKey;
             }
             else
             {
                 ValidationKey            = Guid.NewGuid() + DateTime.Now.ToString("ddmmyyhhmmss") + db.Users.Count() + Guid.NewGuid() + randonNumberValidation.Next(5659, 656588);
                 userDetail.ValidationKey = ValidationKey;
                 db.SaveChanges();
             }
             string Message = string.Format(@"Hi! <br /> <br /> Your ooladata.com account has been created. <br /> <br/ >
                                             Please Click on following link to confirm your account<br /> <br >
                                             <a href='{1}'>Confirm email address</a> {2}", "", "http://ooladata.com/Account/Verify?u=" + ValidationKey,
                                            "<br /><br /> Thanks, <br /> OolaData Team");
             sendVarificationEmail.SendEmail("OolaData Account Verification", Email, Message);
             TempData["Msg"] = "A verification email has been send to your email <b>" + Email + "</b> <br/> Please Check your email to Verify account. Thanks!";
             return(View());
         }
     }
     return(HttpNotFound());
 }
Пример #18
0
        internal static async Task <bool> Verify(string token, string hostName)
        {
            httpClient.DefaultRequestHeaders.Accept.Clear();
            httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

            //            IConfigurationSection config = Startup.Configuration.GetSection("hcb");
            //            string secret = config.GetValue<string>("reCaptchaSecret");
            string secret = Environment.GetEnvironmentVariable("hcb:reCaptchaSecret");
            FormUrlEncodedContent formContent = new FormUrlEncodedContent(new[]
            {
                new KeyValuePair <string, string>("secret", Crypto.Decrypt(secret)),
                new KeyValuePair <string, string>("response", token)
            });
            HttpResponseMessage responseMsg = await httpClient.PostAsync(" https://www.google.com/recaptcha/api/siteverify", formContent);

            if (responseMsg.IsSuccessStatusCode == false)
            {
                return(false);
            }
            string response = await responseMsg.Content.ReadAsStringAsync();

            ReCaptchaResponse reCaptchaResponse = JsonConvert.DeserializeObject <ReCaptchaResponse>(response);

            if (reCaptchaResponse.Success == false)
            {
                return(false);
            }
            if (reCaptchaResponse.TokenHostName != hostName)
            {
                return(false);
            }
            return(true);
        }
Пример #19
0
        //editUser --> POST: api/User?username=elad
        public UserData Post([FromBody] UserData value, string username, string token)
        {
            var ret = new UserData();

            try
            {
                Server.CheckToken(token);
                var u = Server.UserFacade.EditUser(Crypto.Decrypt(username), Crypto.Decrypt(value.Username),
                                                   Crypto.Decrypt(value.Password), value.AvatarPath, Crypto.Decrypt(value.Email));
                if (u != null)
                {
                    ret.AvatarPath = u.AvatarPath;
                    ret.Chips      = u.ChipsAmount;
                    ret.Email      = Crypto.Encrypt(u.Email);
                    ret.Password   = Crypto.Encrypt(u.Password);
                    ret.Rank       = u.League;
                    ret.Username   = Crypto.Encrypt(u.Username);
                    ret.Wins       = u.Wins;
                }
            }
            catch (Exception e)
            {
                ret.Message = e.Message;
            }

            return(ret);
        }
Пример #20
0
        public async Task <bool> UpdateData(string id, accounttbl obj)
        {
            try
            {
                if (id != obj.accountNo.ToString())
                {
                    return(false);
                }

                using (var context = new smlpobDB())
                {
                    context.accounttbls.Attach(obj);
                    context.Entry(obj).Property(x => x.username).IsModified = true;
                    context.Entry(obj).Property(x => x.password).IsModified = true;
                    context.Entry(obj).Property(x => x.roleName).IsModified = true;
                    context.Entry(obj).Property(x => x.modBy).IsModified    = true;
                    context.Entry(obj).Property(x => x.modDate).IsModified  = true;
                    await context.SaveChangesAsync();

                    MembershipUser ms = Membership.GetUser(obj.username);
                    ms.ChangePassword(ms.ResetPassword(), Crypto.Decrypt(obj.password));

                    return(true);
                }
            }
            catch (Exception ex)
            {
                LogHelpers.source  = this.GetType().Name;
                LogHelpers.message = ex.InnerException.ToString();
                LogHelpers.user    = "";
                LogHelpers.WriteLog();
            }

            return(false);
        }
Пример #21
0
        // login -->POST: api/User
        public UserData Post([FromBody] UserData value)
        {
            var ret = new UserData();

            try
            {
                var u = Server.UserFacade.Login(Crypto.Decrypt(value.Username), Crypto.Decrypt(value.Password));
                ret.AvatarPath = u.AvatarPath;
                ret.Chips      = u.ChipsAmount;
                ret.Email      = Crypto.Encrypt(u.Email);
                ret.Password   = Crypto.Encrypt(u.Password);
                ret.Rank       = u.League;
                ret.Username   = Crypto.Encrypt(u.Username);
                ret.Wins       = u.Wins;
                var g = Guid.NewGuid();
                while (g.ToString().Contains('&') || g.ToString().Contains('+') || g.ToString().Contains('=') ||
                       g.ToString().Contains(':') ||
                       g.ToString().Contains('/') || g.ToString().Contains('?') || g.ToString().Contains('#') ||
                       g.ToString().Contains('@') || g.ToString().Contains('!') ||
                       g.ToString().Contains('$') || g.ToString().Contains('\'') || g.ToString().Contains('(') ||
                       g.ToString().Contains(')') ||
                       g.ToString().Contains('*') || g.ToString().Contains(',') || g.ToString().Contains(';'))
                {
                    g = Guid.NewGuid();
                }
                ret.token = g.ToString();
                Server.GuidDic.Add(g.ToString(), new Tuple <string, DateTime>(value.Username, DateTime.Now));
            }
            catch (Exception e)
            {
                ret.Message = e.Message;
            }

            return(ret);
        }
Пример #22
0
        /// <summary>
        /// Determine whether the captca image is correct based on the
        /// 1. user input text
        /// 2. hidden encoded captcha text.
        /// </summary>
        /// <returns></returns>
        public bool IsCorrect(string userInput, string encodedText)
        {
            string captchText = Crypto.Decrypt(encodedText);
            bool   isMatch    = string.Compare(captchText, userInput, !Settings.IsCaseSensitive) == 0;

            return(isMatch);
        }
Пример #23
0
        private void ReadCallback(IAsyncResult ar)
        {
            var state         = ar.AsyncState as StateObject;
            var bytesReceived = state.workStream.EndRead(ar);

            if (bytesReceived > 0)
            {
                var dataReceived = state.buffer.TrimBytes();

                if (Crypto.VerifyHMAC(dataReceived))
                {
                    var messages = Crypto.Decrypt <List <AgentMessage> >(dataReceived);

                    if (messages != null)
                    {
                        foreach (var message in messages)
                        {
                            if (!string.IsNullOrEmpty(message.Data.Module))
                            {
                                InboundC2Data.Enqueue(message);
                            }
                        }
                    }
                }
            }

            state.workStream.Close();
            state.workClient.Close();
        }
Пример #24
0
        /// <summary>
        /// Generate a new BitMap using the encoded random text supplied in the url.
        /// </summary>
        /// <param name="urlParamName"></param>
        /// <returns></returns>
        public Bitmap GenerateFromUrl()
        {
            string encodedRandomText = HttpContext.Current.Request.Params[_urlParam];
            string randomText        = Crypto.Decrypt(encodedRandomText);

            return(Generate(randomText));
        }
Пример #25
0
 public void TestDecrypt()
 {
     Assert.AreEqual("1233skjv", Crypto.Decrypt("1233skjv", "мама")); //сообщение не должно измениться, если оно состоит не из букв русского алфавита
     Assert.AreEqual(null, Crypto.Decrypt("мама", "скорпион"));       //должно вернуться null, если длина ключа больше длины сообщения
     Assert.AreEqual(null, Crypto.Decrypt("мама", "sк0r"));           //должно вернуться null, если в ключе есть символ(-ы) не из русского алфавита
     Assert.AreEqual("поздравляю", Crypto.Decrypt("бщцфаирщри", "скорпион"));
 }
Пример #26
0
        public object Post([FromBody] object ciphertext, [FromServices] AccessManager accessManager)
        {
            dynamic json = JsonConvert.DeserializeObject(ciphertext.ToString());
            string  msg  = json.ciphertext;

            byte[] crypt    = Convert.FromBase64String(msg);
            byte[] keybytes = Encoding.UTF8.GetBytes("8080808080808080");
            byte[] iv       = Encoding.UTF8.GetBytes("8080808080808080");

            // Decrypt
            var decripted = Crypto.Decrypt(crypt, keybytes, iv);

            //Enviar para o login
            User   user   = JsonConvert.DeserializeObject <User>(decripted);
            object obj    = Login(user, accessManager);
            string output = JsonConvert.SerializeObject(obj);

            // Encrypt
            byte[] encrypted = Crypto.Encrypt(output, keybytes, iv);

            return(new
            {
                Message = encrypted
            });
        }
Пример #27
0
        public void DecryptTest()
        {
            string clearText = "this is a string test";

            Assert.AreEqual(clearText, Crypto.Decrypt(Crypto.Encrypt(clearText)));
            clearText = "thi\"\"\"\"s is a string\"@#$%#@\"#23'2''2 \"\"test";
            Assert.AreEqual(clearText, Crypto.Decrypt(Crypto.Encrypt(clearText)));
            clearText = "3412341212423412342342341234211234";
            Assert.AreEqual(clearText, Crypto.Decrypt(Crypto.Encrypt(clearText)));
            clearText = "3412341212423412342342341\\\n\n\t\t234211234";
            Assert.AreEqual(clearText, Crypto.Decrypt(Crypto.Encrypt(clearText)));
            clearText = @"3asdcasdc
sad
c
asdcasdLorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diem nonummy nibh euismod tincidunt ut lacreet dolore magna aliguam erat volutpat. Ut wisis enim ad minim veniam, quis nostrud exerci tution ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis te feugifacilisi. Duis autem dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zril delenit au gue duis dolore te feugat nulla facilisi. Ut wisi enim ad minim veniam, quis nostrud exerci taion ullamcorper suscipit lobortis nisl ut aliquip ex en commodo consequat. Duis te feugifacilisi per suscipit lobortis nisl ut aliquip ex en commodo consequat. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diem nonummy nibh euismod tincidunt ut lacreet dolore magna aliguam erat volutpat. Ut wisis enim ad minim veniam, quis nostrud exerci tution ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis te feugifacilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diem nonummy nibh euismod tincidunt ut lacreet dolore magna aliguam erat volutpat. Ut wisis enim ad minim veniam, quis nostrud exerci tution ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis te feugifacilisi. Duis autem dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zril delenit au gue duis dolore te feugat nulla facilisi.Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diem nonummy nibh euismod tincidunt ut lacreet dolore magna aliguam erat volutpat. Ut wisis enim ad minim veniam, quis nostrud exerci tution ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis te feugifacilisi. Duis autem dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zril delenit au gue duis dolore te feugat nulla facilisi. Ut wisi enim ad minim veniam, quis nostrud exerci taion ullamcorper suscipit lobortis nisl ut aliquip ex en commodo consequat. Duis te feugifacilisi per suscipit lobortis nisl ut aliquip ex en commodo consequat. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diem nonummy nibh euismod tincidunt ut lacreet dolore magna aliguam erat volutpat. Ut wisis enim ad minim veniam, quis nostrud exerci tution ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis te feugifacilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diem nonummy nibh euismod tincidunt ut lacreet dolore magna aliguam erat volutpat. Ut wisis enim ad minim veniam, quis nostrud exerci tution ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis te feugifacilisi. Duis autem dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zril delenit au gue duis dolore te feugat nulla facilisi.

Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diem nonummy nibh euismod tincidunt ut lacreet dolore magna aliguam erat volutpat. Ut wisis enim ad minim veniam, quis nostrud exerci tution ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis te feugifacilisi. Duis autem dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zril delenit au gue duis dolore te feugat nulla facilisi. Ut wisi enim ad minim veniam, quis nostrud exerci taion ullamcorper suscipit lobortis nisl ut aliquip ex en commodo consequat. Duis te feugifacilisi per suscipit lobortis nisl ut aliquip ex en commodo consequat. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diem nonummy nibh euismod tincidunt ut lacreet dolore magna aliguam erat volutpat. Ut wisis enim ad minim veniam, quis nostrud exerci tution ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis te feugifacilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diem nonummy nibh euismod tincidunt ut lacreet dolore magna aliguam erat volutpat. Ut wisis enim ad minim veniam, quis nostrud exerci tution ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis te feugifacilisi. Duis autem dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zril delenit au gue duis dolore te feugat nulla facilisi.
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diem nonummy nibh euismod tincidunt ut lacreet dolore magna aliguam erat volutpat. Ut wisis enim ad minim veniam, quis nostrud exerci tution ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis te feugifacilisi. Duis autem dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zril delenit au gue duis dolore te feugat nulla facilisi. Ut wisi enim ad minim veniam, quis nostrud exerci taion ullamcorper suscipit lobortis nisl ut aliquip ex en commodo consequat. Duis te feugifacilisi per suscipit lobortis nisl ut aliquip ex en commodo consequat. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diem nonummy nibh euismod tincidunt ut lacreet dolore magna aliguam erat volutpat. Ut wisis enim ad minim veniam, quis nostrud exerci tution ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis te feugifacilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diem nonummy nibh euismod tincidunt ut lacreet dolore magna aliguam erat volutpat. Ut wisis enim ad minim veniam, quis nostrud exerci tution ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis te feugifacilisi. Duis autem dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zril delenit au gue duis dolore te feugat nulla facilisi.
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diem nonummy nibh euismod tincidunt ut lacreet dolore magna aliguam erat volutpat. Ut wisis enim ad minim veniam, quis nostrud exerci tution ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis te feugifacilisi. Duis autem dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zril delenit au gue duis dolore te feugat nulla facilisi. Ut wisi enim ad minim veniam, quis nostrud exerci taion ullamcorper suscipit lobortis nisl ut aliquip ex en commodo consequat. Duis te feugifacilisi per suscipit lobortis nisl ut aliquip ex en commodo consequat. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diem nonummy nibh euismod tincidunt ut lacreet dolore magna aliguam erat volutpat. Ut wisis enim ad minim veniam, quis nostrud exerci tution ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis te feugifacilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diem nonummy nibh euismod tincidunt ut lacreet dolore magna aliguam erat volutpat. Ut wisis enim ad minim veniam, quis nostrud exerci tution ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis te feugifacilisi. Duis autem dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zril delenit au gue duis dolore te feugat nulla facilisi.
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diem nonummy nibh euismod tincidunt ut lacreet dolore magna aliguam erat volutpat. Ut wisis enim ad minim veniam, quis nostrud exerci tution ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis te feugifacilisi. Duis autem dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zril delenit au gue duis dolore te feugat nulla facilisi. Ut wisi enim ad minim veniam, quis nostrud exerci taion ullamcorper suscipit lobortis nisl ut aliquip ex en commodo consequat. Duis te feugifacilisi per suscipit lobortis nisl ut aliquip ex en commodo consequat. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diem nonummy nibh euismod tincidunt ut lacreet dolore magna aliguam erat volutpat. Ut wisis enim ad minim veniam, quis nostrud exerci tution ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis te feugifacilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diem nonummy nibh euismod tincidunt ut lacreet dolore magna aliguam erat volutpat. Ut wisis enim ad minim veniam, quis nostrud exerci tution ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis te feugifacilisi. Duis autem dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zril delenit au gue duis dolore te feugat nulla facilisi.
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diem nonummy nibh euismod tincidunt ut lacreet dolore magna aliguam erat volutpat. Ut wisis enim ad minim veniam, quis nostrud exerci tution ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis te feugifacilisi. Duis autem dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zril delenit au gue duis dolore te feugat nulla facilisi. Ut wisi enim ad minim veniam, quis nostrud exerci taion ullamcorper suscipit lobortis nisl ut aliquip ex en commodo consequat. Duis te feugifacilisi per suscipit lobortis nisl ut aliquip ex en commodo consequat. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diem nonummy nibh euismod tincidunt ut lacreet dolore magna aliguam erat volutpat. Ut wisis enim ad minim veniam, quis nostrud exerci tution ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis te feugifacilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diem nonummy nibh euismod tincidunt ut lacreet dolore magna aliguam erat volutpat. Ut wisis enim ad minim veniam, quis nostrud exerci tution ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis te feugifacilisi. Duis autem dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zril delenit au gue duis dolore te feugat nulla facilisi.
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diem nonummy nibh euismod tincidunt ut lacreet dolore magna aliguam erat volutpat. Ut wisis enim ad minim veniam, quis nostrud exerci tution ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis te feugifacilisi. Duis autem dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zril delenit au gue duis dolore te feugat nulla facilisi. Ut wisi enim ad minim veniam, quis nostrud exerci taion ullamcorper suscipit lobortis nisl ut aliquip ex en commodo consequat. Duis te feugifacilisi per suscipit lobortis nisl ut aliquip ex en commodo consequat. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diem nonummy nibh euismod tincidunt ut lacreet dolore magna aliguam erat volutpat. Ut wisis enim ad minim veniam, quis nostrud exerci tution ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis te feugifacilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diem nonummy nibh euismod tincidunt ut lacreet dolore magna aliguam erat volutpat. Ut wisis enim ad minim veniam, quis nostrud exerci tution ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis te feugifacilisi. Duis autem dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zril delenit au gue duis dolore te feugat nulla facilisi.
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diem nonummy nibh euismod tincidunt ut lacreet dolore magna aliguam erat volutpat. Ut wisis enim ad minim veniam, quis nostrud exerci tution ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis te feugifacilisi. Duis autem dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zril delenit au gue duis dolore te feugat nulla facilisi. Ut wisi enim ad minim veniam, quis nostrud exerci taion ullamcorper suscipit lobortis nisl ut aliquip ex en commodo consequat. Duis te feugifacilisi per suscipit lobortis nisl ut aliquip ex en commodo consequat. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diem nonummy nibh euismod tincidunt ut lacreet dolore magna aliguam erat volutpat. Ut wisis enim ad minim veniam, quis nostrud exerci tution ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis te feugifacilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diem nonummy nibh euismod tincidunt ut lacreet dolore magna aliguam erat volutpat. Ut wisis enim ad minim veniam, quis nostrud exerci tution ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis te feugifacilisi. Duis autem dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zril delenit au gue duis dolore te feugat nulla facilisi.
asdc
asd

sdcaaaaaaaaaaaaaaasdacasdc


412341212423412342342341\\\n\n\t\t234211234";
            Assert.AreEqual(clearText, Crypto.Decrypt(Crypto.Encrypt(clearText)));
        }
Пример #28
0
        public override string Get(string key)
        {
            try
            {
                key = key.ToLower();
                if (string.IsNullOrEmpty(key))
                {
                    return(null);
                }

                SecStatusCode code;
                SecRecord     queryRec = new SecRecord(SecKind.GenericPassword)
                {
                    Service = serviceId, Label = serviceId, Account = key, Synchronizable = false
                };
                queryRec = SecKeyChain.QueryAsRecord(queryRec, out code);

                if (code == SecStatusCode.Success && queryRec != null && queryRec.Generic != null)
                {
                    string value = NSString.FromData(queryRec.Generic, NSStringEncoding.UTF8);
                    value = Crypto.Decrypt(value, "KeyChainService_iOS");
                    return(value);
                }

                return(null);
            }
            catch (Exception)
            {
                return(null);
            }
        }
Пример #29
0
        //обработать входящее от клиента сообщение
        private async void HandleMessage(string message, ClientObject fromClient)
        {
            if (message.Length == 0)
            {
                return;
            }
            string decryptedMessage = await Crypto.Decrypt(message);

            if (ProcessMessageCommand(decryptedMessage, fromClient).Result)
            {
                return;
            }

            if (!decryptedMessage.StartsWith(ChatSyntax.ImageDiv))
            {
                onServerInform?.Invoke($"{fromClient.UserLogin}: {decryptedMessage}");
                onServerInform?.Invoke($"{fromClient.UserLogin}: {message}");
            }

            NotifyClients(decryptedMessage, fromClient);
            if (!await Database.AddMessage(decryptedMessage, fromClient, fromClient.ActiveChatRoom.Name))
            {
                onServerInform($"Ошибка сохранения сообщения от клиента {fromClient.UserLogin} из комнаты {fromClient.ActiveChatRoom.Name} в базе.\nСообщение: {decryptedMessage}");
            }
        }
Пример #30
0
        private bool CheckDefaultPasswordExist()
        {
            string  path        = AppDomain.CurrentDomain.BaseDirectory + "\\Credential\\LoginCredential.xml";
            DataSet ds          = new DataSet();
            bool    Is_Validate = false;

            try
            {
                ds.ReadXml(path);
                var dt = ds.Tables["LoginCredential"];
                if (dt != null)
                {
                    var getPass_Decrypt = Crypto.Decrypt(dt.Rows[0][1].ToString());

                    if (getPass_Decrypt == "adminadmin")
                    {
                        Is_Validate = true;
                    }
                }
            }
            catch (Exception ex)
            {
                SentrySdk.CaptureException(ex);
                MessageBox.Show(ex.Message);
            }
            return(Is_Validate);
        }
Пример #31
0
        public void Crypto_SymmetricKey()
        {
            SymmetricKey key = Crypto.GenerateSymmetricKey(CryptoAlgorithm.AES, 256);
            SymmetricKey copy;
            string       inputString;

            byte[] inputBytes;

            copy = new SymmetricKey(key.ToString());
            Assert.AreEqual(key.Algorithm, copy.Algorithm);
            CollectionAssert.AreEqual(key.Key, copy.Key);
            CollectionAssert.AreEqual(key.IV, copy.IV);

            inputString = "Hello World!";
            Assert.AreEqual(inputString, Crypto.DecryptString(Crypto.EncryptString(inputString, key), key));
            Assert.AreEqual(inputString, Crypto.DecryptStringWithSalt4(Crypto.EncryptStringWithSalt4(inputString, key), key));
            Assert.AreEqual(inputString, Crypto.DecryptStringWithSalt8(Crypto.EncryptStringWithSalt8(inputString, key), key));

            inputBytes = new byte[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
            CollectionAssert.AreEqual(inputBytes, Crypto.Decrypt(Crypto.Encrypt(inputBytes, key), key));
            CollectionAssert.AreEqual(inputBytes, Crypto.DecryptWithSalt4(Crypto.EncryptWithSalt4(inputBytes, key), key));
            CollectionAssert.AreEqual(inputBytes, Crypto.DecryptWithSalt8(Crypto.EncryptWithSalt8(inputBytes, key), key));

            key = new SymmetricKey("plaintext");
            Assert.AreEqual(CryptoAlgorithm.PlainText, key.Algorithm);
            CollectionAssert.AreEqual(new byte[0], key.Key);
            CollectionAssert.AreEqual(new byte[0], key.IV);
            Assert.AreEqual("PLAINTEXT", key.ToString());
        }
Пример #32
0
        public bool DecryptHeader(string password, bool checkonly = false)
        {
            ReadHeader();

            if (_header == null)
            {
                throw new InvalidOperationException("Header not decrypted");
            }
            DEBUG.Print(GetType(), "unlock");
            string d = Crypto.Decrypt(this._header, EnhancePassword(password));

            if (d == null)
            {
                return(false);
            }
            if (_headerRegex.IsMatch(d))
            {
                if (!checkonly)
                {
                    this._decryptedheader = d;
                }
                return(true);
            }
            return(false);
        }
        public void TestEncryptionAES()
        {
            var c = new Crypto();
            string userKey = "4b236698-ebbb-4d3d-9513-961c5603d431";
            string keySalt = "0000000001";
            string text = "hello";
            string cypher = c.Encrypt(text, userKey, keySalt);
            Console.WriteLine(cypher);

            string textdec = c.Decrypt(cypher, userKey, keySalt);
            Assert.AreEqual(text, textdec);
        }
Пример #34
0
 private void DecryptButton_Click(object sender, EventArgs e)
 {
     if (string.IsNullOrWhiteSpace(KeyBox.Text))
     {
         MessageBox.Show("You must enter a key!");
     }
     else
     {
         var crypto = new Crypto(KeyBox.Text);
         OutputBox.Text = crypto.Decrypt(InputBox.Text);
     }
 }
Пример #35
0
        public static string Decrypt(string string_to_decrypt)
        {
            if (string.IsNullOrWhiteSpace(string_to_decrypt)) return string.Empty;

            try
            {
                Crypto c = new Crypto(Crypto.CryptoTypes.encTypeTripleDES);
                return c.Decrypt(string_to_decrypt);
            }
            catch (Exception ex)
            {
                LogHelper.logError("Security.cs", "Unable to decrypt " + string_to_decrypt + " " + ex.Message + " " + ex.StackTrace);
                return "";
            }
        }
Пример #36
0
        public void OnAuthorization(AuthorizationContext filterContext)
        {
            if (!filterContext.ActionDescriptor.ControllerDescriptor.IsDefined(typeof(AllowAnonymousAttribute), true))
            {
                // ?token=XtsMJRrUtGiytKZ2b6H0eBgVzfNS5hr73kapmZiA4GDENdrRNRXSlis7BFrp4mtr
                string tokenStatus = "ok";
                string token = "";

                if (HttpContext.Current.Request["token"] != null)
                {
                    string encryptedToken = HttpContext.Current.Request["token"].ToString();
                    try
                    {
                        Crypto crypto = new Crypto(true);
                        token = crypto.Decrypt(HttpContext.Current.Server.HtmlEncode(encryptedToken));
                        char[] spaceSeparator = { ' ' };
                        string[] a = token.Split(spaceSeparator);
                        var timestamp = new DateTime(long.Parse(a[0]));
                        if (timestamp.AddMinutes(120) < DateTime.Now)
                        {
                            tokenStatus = "Expired token";
                            token = "";
                        }
                        else
                            HttpContext.Current.Session["token"] = token;
                    }
                    catch (Exception ex)
                    {
                        tokenStatus = ex.Message;
                    }
                }
                else
                {
                    if (HttpContext.Current.Session["token"] != null)
                        token = HttpContext.Current.Session["token"].ToString();
                    else
                        tokenStatus = "Missing token";
                }

                if (tokenStatus != "ok")
                {
                    filterContext.Result = new RedirectToRouteResult(
                        new RouteValueDictionary { { "action", "Index" }, { "controller", "Unauthorized" }, { "tokenStatus", tokenStatus } }
                    );
                }
            }
        }
Пример #37
0
 private void DecryptFileButton_Click(object sender, EventArgs e)
 {
     if (string.IsNullOrWhiteSpace(KeyBoxFile.Text) || string.IsNullOrWhiteSpace(FilePathBox.Text))
     {
         MessageBox.Show("You must enter a key!");
     }
     else
     {
         ResultsTextBox.AppendText("Decrypting...\n");
         var crypto = new Crypto(KeyBoxFile.Text);
         string fileContents;
         string extractedHash;
         string decryptedHash;
         using (StreamReader sr = new StreamReader(FilePathBox.Text))
         {
             fileContents = sr.ReadToEnd();
         }
         extractedHash = Hasher.ExtractHash(fileContents);
         ExtractedHashBox.Text = extractedHash;
         fileContents = fileContents.Substring(0, fileContents.Length - 24);
         var utf8WithBom = new UTF8Encoding(true);
         using (
                 StreamWriter sw =
                     new StreamWriter(Path.Combine(Path.GetDirectoryName(FilePathBox.Text),
                             Path.GetFileNameWithoutExtension(FilePathBox.Text) + "Decrypted" + ".txt"), false, utf8WithBom))
         {
             sw.Write(crypto.Decrypt(fileContents));
         }
         using (StreamReader sr = new StreamReader(Path.Combine(Path.GetDirectoryName(FilePathBox.Text), Path.GetFileNameWithoutExtension(FilePathBox.Text) + "Decrypted" + ".txt")))
         {
             fileContents = sr.ReadToEnd();
         }
         decryptedHash = Hasher.GenerateBase64Hash(MD5.Create(), fileContents);
         ResultsTextBox.AppendText("Decryption complete.\n");
         ResultsTextBox.AppendText(string.Format("Decrypted Hash: {0}\n", decryptedHash));
         ResultsTextBox.AppendText(string.Format("Extracted Hash: {0}\n", extractedHash));
         if (Hasher.VerifyHash(decryptedHash, extractedHash))
         {
             ResultsTextBox.AppendText("Hashes match!  Successful decryption.\n");
         }
         else
         {
             ResultsTextBox.AppendText("Hashes do not match!  Unsuccessful decryption.\n");
         }
     }
 }
Пример #38
0
    public static void Main(string[] args)
    {
        string serverHost;
        int serverPort;
        int httpPort;
        int payloadSize;
        int uint16Size = 2;
        int uint32Size = 4;
        int packetSize;
        uint cmdId = 1;
        uint seq = 100;
        uint stopSymbol = 1550998638;
        byte[] msg;
        byte[] packet;

        Console.WriteLine("Enter server host name:");

        serverHost = Console.ReadLine();

        Console.WriteLine("Enter HTTP server port:");

        httpPort = int.Parse(Console.ReadLine());

        var request = (HttpWebRequest)WebRequest.Create("http://" + serverHost + ":" + httpPort + "/auth");
                var postData = "thing1=hello";
                postData += "&thing2=world";
                var data = Encoding.ASCII.GetBytes(postData);
                request.Method = "POST";
                request.ContentType = "application/x-www-form-urlencoded";
                request.ContentLength = data.Length;
                var hstream = request.GetRequestStream();
                hstream.Write(data, 0, data.Length);
                var response = (HttpWebResponse)request.GetResponse();
                var authRes = new StreamReader(response.GetResponseStream()).ReadToEnd();

                Console.WriteLine("Auth response:{0}", authRes);

                JSONNode auth = JSON.Parse(authRes);

                Console.WriteLine("Session ID is {0}", auth["sessionId"]);
                Console.WriteLine(
                        "Cipher Key, Nonce, and MacKey:{0}, {1}, {2}",
                        auth["cipherData"]["base64"]["cipherKey"],
                        auth["cipherData"]["base64"]["cipherNonce"],
                        auth["cipherData"]["base64"]["macKey"]
                );

        Console.WriteLine("Enter TCP server port number:");

        serverPort = int.Parse(Console.ReadLine());

        TcpClient client = new TcpClient(serverHost, serverPort);
        NetworkStream stream = client.GetStream();

        msg = Encoding.UTF8.GetBytes("{ \"message\":\"Hello\"}");

        // prepare encryption
                Guid sid = new Guid(auth["sessionId"]);
                byte[] cipherKey = System.Convert.FromBase64String(auth["cipherData"]["base64"]["cipherKey"]);
                byte[] cipherNonce = System.Convert.FromBase64String(auth["cipherData"]["base64"]["cipherNonce"]);
                byte[] macKey = System.Convert.FromBase64String(auth["cipherData"]["base64"]["macKey"]);
                var crypto = new Crypto(sid, cipherKey, cipherNonce, macKey);

        // encrypt
        msg = crypto.Encrypt(msg);

        // create gracenode RPC command packet
        payloadSize = IPAddress.HostToNetworkOrder(msg.Length);
        byte[] payloadSizeBytes = BitConverter.GetBytes(payloadSize);
        packetSize = uint32Size + (uint16Size * 2) + msg.Length + uint32Size;
        packet = new byte[packetSize];

        Console.WriteLine("payload size is {0}", msg.Length);
        Console.WriteLine("packet size is {0}", packetSize);

        // RPC protocol version 0
        packet[0] = 0x0;

        // add payload size at the offset of 0: payload size if utin32 4 bytes
        Buffer.BlockCopy(payloadSizeBytes, 0, packet, 0, uint32Size);

        // add command ID at the offset of 4: command ID is uint16 2 bytes
        byte[] cmd = BitConverter.GetBytes(IPAddress.HostToNetworkOrder((short)cmdId));
        Buffer.BlockCopy(cmd, 0, packet, 4, uint16Size);

        // add seq at the offset of 6: seq is uint16 2 bytes
        byte[] seqBytes = BitConverter.GetBytes(IPAddress.HostToNetworkOrder((short)seq));
        Buffer.BlockCopy(seqBytes, 0, packet, 6, uint16Size);

        // add payload at the offset of 8
        Buffer.BlockCopy(msg, 0, packet, 8, msg.Length);

        // add magic stop symbol: magic stop symbol is uint 32 4 bytes
        int stop = IPAddress.HostToNetworkOrder(Convert.ToInt32(stopSymbol));
        byte[] stopBytes = BitConverter.GetBytes(stop);
        Buffer.BlockCopy(stopBytes, 0, packet, msg.Length + 8, uint32Size);

        Console.WriteLine("Sending command packet: {0}", packet.Length);

        // send command packet to server
        stream.Write(packet, 0, packet.Length);

        // receive the response back from server
        // read in chunk of 2KB
        byte[] res = new byte[2048];
        int bytesRead = 0;
        bytesRead = stream.Read(res, 0, res.Length);
        while (bytesRead > 0) {
            // read payload size
            byte[] psizeBytes = new byte[uint32Size];
            Buffer.BlockCopy(res, 0, psizeBytes, 0, uint32Size);
            // big endian
            Array.Reverse(psizeBytes);
            uint psize = BitConverter.ToUInt32(psizeBytes, 0);

            Console.WriteLine("Reply payload size is {0}", psize);

            // read reply flag
            byte[] flagBytes = new byte[4];
            Buffer.BlockCopy(res, 4, flagBytes, 0, 1);
            int replyFlag = BitConverter.ToInt32(flagBytes, 0);

            Console.WriteLine("Reply flag is {0}", replyFlag);

            // read reply status
            byte[] statusBytes = new byte[4];
            Buffer.BlockCopy(res, 5, statusBytes, 0, 1);
            int status = BitConverter.ToInt32(statusBytes, 0);

            Console.WriteLine("Replay status is {0}", status);

            // read seq
            byte[] rseqBytes = new byte[uint16Size];
            Buffer.BlockCopy(res, 6, rseqBytes, 0, uint16Size);
            // big endian
            Array.Reverse(rseqBytes);
            uint rseq = BitConverter.ToUInt16(rseqBytes, 0);

            Console.WriteLine("Reply seq is {0}", rseq);

            // read payload
            byte[] payloadBytes = new byte[psize];
            Buffer.BlockCopy(res, 8, payloadBytes, 0, Convert.ToInt32(psize));
            //string payload = Encoding.UTF8.GetString(payloadBytes, 0, payloadBytes.Length);

            Console.WriteLine("Reply payload is {0}", Encoding.UTF8.GetString(crypto.Decrypt(payloadBytes)));

            // read magic stop symbol
            byte[] sbytes = new byte[uint32Size];
            Buffer.BlockCopy(res, 8 + Convert.ToInt32(psize), sbytes, 0, uint32Size);
            // big endian
            Array.Reverse(sbytes);
            uint mstop = BitConverter.ToUInt32(sbytes, 0);

            Console.WriteLine("Magic stop symbol is {0}. must be the same as {1}", mstop, stopSymbol);

            if (mstop == stopSymbol) {
                Console.WriteLine("End of replay packet");
                break;
            }

            bytesRead = stream.Read(res, 0, res.Length);
        }

        Console.WriteLine("Done and close connection");

        // close the connection
        //stream.Close();
    }
Пример #39
0
 /// <summary>
 /// Return the decrypted value of the string passed in.
 /// </summary>
 /// <param name="str">The string to decrypt</param>
 /// <returns>The decrypted value of the string.</returns>
 public static string DecryptData(string str)
 {
     if (str == null) return string.Empty;
     Crypto CheckCrypto = new Crypto();
     string result = CheckCrypto.Decrypt(str, false);
     if (result == str || result == null || result == "")
         result = CheckCrypto.Encrypt(str, true);
     return result;
 }
Пример #40
0
 /// <summary>
 /// Return the decrypted value of the string passed in.
 /// </summary>
 /// <param name="str">The string to decrypt</param>
 /// <returns>The decrypted value of the string.</returns>
 public static string Decrypt(string str)
 {
     if (str == null) return string.Empty;
     Crypto CheckCrypto = new Crypto();
     return CheckCrypto.Decrypt(str);
 }
Пример #41
0
    static void Main(string[] args)
    {
        string serverIp;
        int httpPort;
        int serverPort;
        const string STOP = "stop";

        Console.WriteLine("Enter server IP address:");

        serverIp = Console.ReadLine();

        Console.WriteLine("Enter HTTP port number:");

        httpPort = int.Parse(Console.ReadLine());

        Console.WriteLine("Connection to {0}:{1}", serverIp, httpPort);

        var request = (HttpWebRequest)WebRequest.Create("http://" + serverIp + ":" + httpPort + "/auth");
        var postData = "thing1=hello";
        postData += "&thing2=world";
        var data = Encoding.ASCII.GetBytes(postData);
        request.Method = "POST";
        request.ContentType = "application/x-www-form-urlencoded";
        request.ContentLength = data.Length;
        var stream = request.GetRequestStream();
        stream.Write(data, 0, data.Length);
        var response = (HttpWebResponse)request.GetResponse();
        var authRes = new StreamReader(response.GetResponseStream()).ReadToEnd();

        Console.WriteLine("Auth response:{0}", authRes);

        JSONNode auth = JSON.Parse(authRes);

        Console.WriteLine("Session ID is {0}", auth["sessionId"]);
        Console.WriteLine(
            "Cipher Key, Nonce, and MacKey:{0}, {1}, {2}",
            auth["cipherData"]["base64"]["cipherKey"],
            auth["cipherData"]["base64"]["cipherNonce"],
            auth["cipherData"]["base64"]["macKey"]
        );

        Console.WriteLine("Enter UDP server port number:");

        serverPort = int.Parse(Console.ReadLine());

        Console.WriteLine("Connection to {0}:{1}", serverIp, serverPort);

        int myPort = 54061;

        // connect to UDP server and send message
        UdpClient client = new UdpClient(myPort);
        IPEndPoint endPoint = new IPEndPoint(IPAddress.Parse(serverIp), serverPort);
        client.Connect(endPoint);

        Console.WriteLine("Prepare encryption");

        // prepare encryption
        Guid sid = new Guid(auth["sessionId"]);
        byte[] cipherKey = System.Convert.FromBase64String(auth["cipherData"]["base64"]["cipherKey"]);
        byte[] cipherNonce = System.Convert.FromBase64String(auth["cipherData"]["base64"]["cipherNonce"]);
        byte[] macKey = System.Convert.FromBase64String(auth["cipherData"]["base64"]["macKey"]);
        var crypto = new Crypto(sid, cipherKey, cipherNonce, macKey);

        byte[] packet = Encoding.ASCII.GetBytes("{\"command\":1,\"payload\":\"Hello\"}");
        var epacket = crypto.Encrypt(packet);

        client.Send(epacket, epacket.Length);

        Console.WriteLine("UDP message sent: size is {0}", epacket.Length);

        Console.WriteLine("Waiting for server message...");

        byte[] recData = client.Receive(ref endPoint);

        Console.WriteLine("Try decrypting...");

        var dpack = crypto.Decrypt(recData);

        Console.WriteLine("message from server: {0}", Encoding.UTF8.GetString(dpack));
    }
		public void Base64FormatException() {
			Crypto c = new Crypto("my secret key");
			c.Decrypt("hello world");
		}
 public virtual string Decrypt(string Source, bool includeSession)
 {
     Crypto CheckCrypto = new Crypto(Crypto.Providers.DES);
     return CheckCrypto.Decrypt(Source, includeSession);
 }
Пример #44
0
 public static string FastDecrypt(string src)
 {
     try {
         Crypto c = new Crypto(CryptoTypes.encTypeTripleDES);
         return c.Decrypt(src);
     } catch (Exception) {
         return "";
     }
 }
		public void EmptyString() {
			Crypto c = new Crypto();
			string s = c.Encrypt("");
			Assert.AreEqual("", s);
			Assert.AreEqual("", c.Decrypt(s));
		}
		public void UseDefaultKey() {
			Crypto c = new Crypto();
			string s = c.Encrypt("hello world");
			Assert.AreNotEqual("hello world", s);
			Assert.AreEqual("hello world", c.Decrypt(s));
		}
Пример #47
0
        /// <summary>
        /// Runs a command with impersonation (new style)
        /// </summary>
        /// <param name="credentials"></param>
        /// <param name="command"></param>
        /// <param name="logger"></param>
        /// <returns></returns>
        public static RunAsResult RunAs(SecurityCredentials credentials, string command)
        {
            var crypto = new Crypto(_s_k, _s_v);
            var pass = crypto.Decrypt(credentials.EncryptedPassword);
            crypto.Dispose();

            using (new Impersonator(credentials.User, credentials.Domain, pass,
                    LogonType.Logon32LogonNewCredentials, LogonProvider.Logon32ProviderWinnt50))
            {
                try
                {
                    var p = new Process();
                    var si = new ProcessStartInfo();
                    si.WorkingDirectory = System.Environment.CurrentDirectory;
                    si.WindowStyle = ProcessWindowStyle.Hidden;
                    si.FileName = "cmd.exe";
                    si.Arguments = @"/c " + command;
                    p.StartInfo = si;
                    p.Start();
                    p.WaitForExit((int)TimeSpan.FromMinutes(180).TotalMilliseconds);

                    return new RunAsResult
                    {
                        ExitCode = p.ExitCode,
                        ProcessId = p.Id
                    };
                }
                catch (Exception)
                {
                    throw new Win32Exception();
                }
            }
        }
 public virtual string Decrypt(string Source)
 {
     Crypto CheckCrypto = new Crypto(Crypto.Providers.DES);
     return(CheckCrypto.Decrypt(Source));
 }
 public string AESDecryption(string cipher, string key, bool fips) //Decryption for Settings.DAT
 {
     Crypto superSecret = new Crypto(new AesEngine(), _encoding);
     superSecret.SetPadding(_padding);
     return superSecret.Decrypt(cipher, key);
 }
		public void AlgorithmCryptographicException() {
			Crypto c = new Crypto("my secret key");
			c.Decrypt(Convert.ToBase64String(Encoding.UTF8.GetBytes("hello world")));
		}